mhagger / cvs2svn Goto Github PK
View Code? Open in Web Editor NEWMigrate CVS repositories to Subversion or Git. This site supersedes the old tigris.org site, which has shut down.
License: Other
Migrate CVS repositories to Subversion or Git. This site supersedes the old tigris.org site, which has shut down.
License: Other
The new project name would be there git.code.sf.net/p/mxpcms/git
10x
It's doing the thing where anywhere theres text e.g. $Name$
it will convert that to something like $Name: $
. This will make the binary file unusable/report corrupted when using it for compiling e.t.c.
Is there any workaround?
http://cvs2svn.tigris.org/ has a big, fat banner:
2020-04-07: This site is going to be decommissioned and shut down on 2020-07-01. Please copy and archive any data you wish to keep before that date.
Have you moved all information (documentation, discussions, source, etc.) out?
Where?
using the latest release 2.4.0
as described on http://stackoverflow.com/questions/881158/is-there-a-migration-tool-from-cvs-to-git
$ cvs -d:pserver:[email protected]:/cvsroot/pearpc login
$ cvs -z3 -d:pserver:[email protected]:/cvsroot/pearpc co -P pearpc
# ... downloads stuff...
$ cp /opt/cvs2svn/share/cvs2svn/cvs2git-example.options .
# ... edit run_options.set_project r'dirname' to point to pearpc
$ cvs2git --options=cvs2git-example.options --fallback-encoding utf-8
ERROR: the path 'pearpc' is not a CVS repository, nor a path within a CVS repository. A CVS repository contains a CVSROOT directory within its root directory.
# as decribed in the stackoverflow answer:
$ mkdir pearpc/CVSROOT
$ cvs2git --options=cvs2git-example.options --fallback-encoding utf-8
ERROR: No RCS files found under 'pearpc'!
Are you absolutely certain you are pointing cvs2svn
at a CVS repository?
There are no git tags or GitHub releases in this repo. I would expect to see a tag for each version mentioned in the CHANGES file and an attached GitHub release offering the original tarball for that version (at least for the most recent version).
The tigris.org service shut down in 2020 (as previously reported in #8, #13, #14) but numerous references to this domain remain within the cvs2svn codebase, for example:
Lines 6 to 7 in 8cd4323
Lines 23 to 34 in 8cd4323
cvs2svn/doc/making-releases.txt
Lines 12 to 17 in 8cd4323
Please remove all remaining references to this domain from your project, except where it is specifically to point out where the project used to be hosted.
Hello,
tigris is not reachable : http://cvs2svn.tigris.org/svn/cvs2svn/trunk/, what is the alternative ?
The next Debian will release without Python, only with py3k.
Freeze should be around beginning of January 2021, so we’ll need a stable release not requiring Python any more this year.
Cc: @gcsideal
There are at least 2 files with invalid filenames according to Windows filesystem.
Partial workaround is here: https://stackoverflow.com/a/63742773/393672.
But then it produces:
$ git checkout
D "test-data/main-cvsrepos/single-files/\"double-double-quotes\",v"
D "test-data/main-cvsrepos/single-files/single-double-quote\",v"
README hasn't been modified in 18 years and still links to http://cvs2svn.tigris.org/cvs2svn.html which no longer exists.
Originally reported in Debian.
Package: cvs2svn
Version: 2.4.0-4
Severity: important
I regularily convert some CVS repositories of mine to push-only
git mirrors. Today I noticed a problem for the second time: a
push was rejected because it needs a force.
I’m attaching:
• the diff between “git log” output of the previous conversion
and the next one
• the current ,v file of where I think the problem is
• a previous ,v file which I think matches the before state
Console output of pushing to my local mirror:
To /git/jupp
The remote mirror then rejected it. I did commit the jupprc file
in several branches simultaneously, but, of course, the “second”
part of the timestamp differs (this happens when your CVS server
is a Pentium 233 MMX ☺).
-- System Information:
Debian Release: buster/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'buildd-unstable'), (500, 'unstable')
Architecture: x32 (x86_64)
Foreign Architectures: i386, amd64
Kernel: Linux 4.11.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/lksh
Init: sysvinit (via /sbin/init)
Versions of packages cvs2svn depends on:
ii python 2.7.13-2
ii rcs 5.9.4-3
ii subversion 1.9.6-1+b1
Versions of packages cvs2svn recommends:
ii mime-support 3.60
Versions of packages cvs2svn suggests:
pn bzr
ii cvs 2:1.12.13+real-23
ii git [git-core] 1:2.14.0-1
-- no debconf information
Hi I am a newbie to GIT. I have a CVS repository on m local computer and i am trying to migrate it to GIT.
I am using the following command.
C:\Users\testuser\Downloads\CVS2SVN\dist\cvs2svn-2.4.0> python cvs2git
--blobfile=C:\Demos\cvsmigration\git-shoping-blob.dat
--dumpfile=C:\Demos\cvsmigration\git-shoping-dump.dat
--username=cvs2git
C:\Demos\cvsrepo
Above command exit with the following error.
Filtering out excluded symbols and summarizing items...
ERROR: The command 'cvs -Q -f -d :local:C:\Demos\cvsrepo co -r1.1 -p -kb CVSRO
OT/checkoutlist' failed with exit status=0
and the following output:
cvs checkout: cwd=C:\Users\testuser\Downloads\CVS2SVN\dist\cvs2svn-2.4.0 ,curren
t=C:\Users\testuser\Downloads\CVS2SVN\dist\cvs2svn-2.4.0
Any help please ..!!
(This was reported by @jun66j5 on twitter, in Japanese language, with larger example.)
It seems cvs2svn cannot handle some RCS files which contains "a" command with in complete (not end with '\n') line before the last line in the target file.
Here is an example file irregular.txt,v
:
head 1.5;
access;
symbols;
locks; strict;
comment @# @;
1.5
date 2021.11.26.04.16.45; author futatuki; state Exp;
branches;
next 1.4;
1.4
date 2021.11.26.04.14.23; author futatuki; state Exp;
branches;
next 1.3;
1.3
date 2021.11.26.03.46.06; author futatuki; state Exp;
branches;
next 1.2;
1.2
date 2021.11.26.03.41.39; author futatuki; state Exp;
branches;
next 1.1;
1.1
date 2021.11.26.03.34.28; author futatuki; state Exp;
branches;
next ;
desc
@create a new file irregular.txt
@
1.5
log
@r1.5:
@
text
@aaa
bbb
ccc
hhh@
1.4
log
@r1.4:
@
text
@d4 1
a4 1
ggg@
1.3
log
@r1.3: s/eee/fff/
@
text
@d3 1
a3 1
fff@
1.2
log
@r1.2: s/ddd/eee/
@
text
@d3 1
a3 1
eee@
1.1
log
@r1.1
@
text
@d3 1
a3 1
ddd@
For each revision diff text, the last 'a' command adds incomplete line. Especially in r1.3 from r1.4, this diff text replaces an existing comlete line into an incomplete line, and as a result, this line connect the next existing line (although I don't believe CVS/RCS can produce such a curious diff, but there exists other than this in a real use case, and CVS/RCS can handle it).
With a sample CVS repository contains this irregular.txt,v
only (except RCSROOT), cvs2svn produces an error:
$ cvs2svn -s irregular-rcs-test-broken.svn /home/cvs/irregular-rcs-test
Writing temporary files to '/tmp/cvs2svn-Tlxzju'
Be sure to use --tmpdir='/tmp/cvs2svn-Tlxzju' if you need to resume this conversion.
----- pass 1 (CollectRevsPass) -----
Examining all CVS ',v' files...
/home/cvs/irregular-rcs-test/irregular.txt,v
/home/cvs/irregular-rcs-test/CVSROOT/checkoutlist,v
...
Starting Subversion r7 / 7
ERROR: Malformed RCS delta in /home/cvs/irregular-rcs-test/irregular.txt,v, revision 1.5: Deletion beyond file end
With the incomplete Subversion repository irregular-rcs-test-broken.svn
, r1.1 to r1.4 revision files of irregular.txt exactly equal to ones of original CVS repo's.
Although I also think those RCS delta was malformed, I think it is better to continue to build new revisions for Subversion repo, because newer revision files before mailformed delta are correct files.
I'll submit a PR for the issue.
When I ran 'python2.7 ./run-test.py
' I always got:
W: Couldn't find node 'transaction...' in expected output tree
W: * Node name: transaction...
Path: __SVN_ROOT_NODE/transaction...
Contents: None
Properties: {}
Attributes: {'verb': 'Committing'}
Children: None (node is probably a file)
W: ERROR: output of import command is unexpected.
W: EXPECTED OUTPUT TREE:
W: ROOT
+-- svn-test-work
+-- local_tmp
+-- greekfiles
|-- A
| |-- B
| | |-- E
| | | |-- alpha
| | | +-- beta
| | |-- F
| | +-- lambda
| |-- C
| |-- D
| | |-- G
| | | |-- pi
| | | |-- rho
| | | +-- tau
| | |-- H
| | | |-- chi
| | | |-- omega
| | | +-- psi
| | +-- gamma
| +-- mu
+-- iota
W: ACTUAL OUTPUT TREE:
W: ROOT
|-- svn-test-work
| +-- local_tmp
| +-- greekfiles
| |-- A
| | |-- B
| | | |-- E
| | | | |-- alpha
| | | | +-- beta
| | | |-- F
| | | +-- lambda
| | |-- C
| | |-- D
| | | |-- G
| | | | |-- pi
| | | | |-- rho
| | | | +-- tau
| | | |-- H
| | | | |-- chi
| | | | |-- omega
| | | | +-- psi
| | | +-- gamma
| | +-- mu
| +-- iota
+-- transaction...
on FreeBSD 13 with Subversion 1.14.1, CentOS 7 with Subversion 1.14.1 and Scientific Linux with Subversion 1.9.7.
Even after I modified run-test.py with patch below, the behaiviour is not changed.
diff --git a/run-tests.py b/run-tests.py
index 7eaee08..cf9536f 100755
--- a/run-tests.py
+++ b/run-tests.py
@@ -935,6 +935,7 @@ class Cvs2SvnPropertiesTestCase(Cvs2SvnTestCase):
@Cvs2SvnTestFunction
def show_usage():
"cvs2svn with no arguments shows usage"
+ raise Failure('Dummy failure.')
out = run_script(cvs2svn, None)
if (len(out) > 2 and out[0].find('ERROR:') == 0
and out[1].find('DBM module')):
@@ -4310,7 +4311,8 @@ if __name__ == '__main__':
svntest.main.svnadmin_binary = svnadmin_binary
svntest.main.svnversion_binary = svnversion_binary
- svntest.main.run_tests(test_list)
+ #svntest.main.run_tests(test_list)
+ svntest.main.run_tests([None, show_usage,])
# NOTREACHED
Are there something wrong in my usage of run-test.py? Or is run-test.py itself broken now?
Hi mhagger
I am running into an issue with cvs2git migration. Following are the steps that I am following:
I have a Local snapshot of the repository that has CVSROOT and the projects
Then I ran the following command to get the .dat file generated but the files are not generating and I am getting the following error at the Pass 4
Command
python cvs2git.bat --blobfile=C:\files\git-blob.dat --dumpfile=C:\files\git-dump.dat --username= --encoding=utf8
ERROR: Filtering out excluded symbols and summarizing items... ERROR: The command 'cvs -Q -R -f -d :local:C:\ABC\Work\Migration\FH\Fuzon co -r1.1 -p -kb CVSROOT/checkoutlist' failed with exit status=1 and the following output: cvs checkout: connect to 127.0.0.1(127.0.0.1:2402):2402 failed: No connection could be made because the target machine actively refused it. cvs [checkout aborted]: Couldn't connect to lock server
I tried to connect to the actual cvs server also and then run the command but it still failed. I am using Windows 7 box.
Anyway I can overcome this issue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.