Re: [PROBLEM] cvs2svn for git
Michael Haggerty <[email protected]> Wed, 16 Sep 2015 10:15:26 +0200
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.user |
|---|---|
| Message-ID | <[email protected]> |
On 09/14/2015 05:33 PM, Guilherme Andrade de Magalh=C3=A3es wrote: > [...] > I am doing the migration of the SCM tool, from CVS to Git, and there are > many projects that is under this migration, I'm using cvs2git scripts to > make this migration, as I can see it's the perfect solution to my problem= . >=20 > The problem that I'm facing is about CVS, I don't have many skills with > this tool, and when I try to run the command for the script: >=20 > python dev/myproject -- options=3Dcvs2svn.options >=20 > It runs, but when it tries to run this command: >=20 > cvs -Q -R -f -d dev/myproject co -r1.8.2.1 -p -kb > dev/projecttobemigratted/.classpath >=20 > Give this error: >=20 > ERROR: The command 'cvs -Q -R -f -d dev/myproject co -r1.8.2.1 -p -kb > dev/projecttobemigratted/.classpath' failed with exit status=3D1 and the > following output: > cvs [checkout aborted]: Couldn't open default trigger library: No such > file or directory Was your repository created using CVSNT or standard CVS? If your repository was created with standard CVS, then you should be able to run the conversion using any standard version of CVS (i.e., not CVSNT). If your repository was created using CVSNT, read on. CVSNT and CVS are not quite the same thing: * CVS is an open-source project, developed in the open, and free to everybody. * CVSNT is a fork of CVS that is enhanced by a greedy company that is doing everything it can to earn money from it: developing it in secret, making it almost impossible for the community to use the full software for free even though a large part of it was developed by volunteers, and doing the absolute bare minimum required to comply with the letter of the GPL license (or maybe not even that) without adhering to its spirit. CVS and CVSNT are almost, but not quite, compatible in their data formats. See [1] for how to use cvs2git if you have a CVSNT repository. Please note that you need to use the "CVSNT" version of cvs to extract the data from your repo. It's hard to tell, but it appears that the greedy company has stripped the ":local:" protocol out of CVSNT, so current versions cannot read from a local repository any more. This is a very nasty development. My guess is that they made this change for two reasons: (1) to force you to use their server product, and (2) to making it harder for you to get your data out of their proprietary software. So if the information above is true, then you have to work around the obstacles that the greedy company has put in your way. I can think of the following possibilities: 1. Get an older version of CVSNT (one that still supports the ":local:" protocol) and use that with cvs2git to extract your data. I think this would be by far the easiest approach. 2. Use a tool to extract data from a remote CVS repository into a local CVS repository, then convert the copy. People have mentioned "cvsclone" and "cvssuck" as tools that can possibly do this. This will only work if these tools work with a remote *CVSNT* repository and produce a local *CVS* repository; I have no idea if that is the case. 3. Use a different conversion tool than "cvs2git" that can use a remote CVSNT repository as its source. I don't know if there is such a thing. 4. Change (or find somebody who can change) cvs2git to work with CVSNT repositories directly. I suppose this shouldn't be too hard. The main problem is that the CVSNT file format is poorly documented. 5. Change (or find somebody who can change) cvs2git to use the local CVSNT repository for reading the metadata and history (it can mostly do that already), but to use a remote cvs command to read the file contents. I suppose this also shouldn't be too hard, but for testing you would have to find somebody with a copy of CVSNT. > [...] > I need to remember that I'm running the script on a windows machine and > I don't know if this can be a problem, Should I run on the server > machine that is a Linux based OS? Linux support is better for most of these tools, but modern Linux distributions don't support CVSNT anymore because of the problems listed above. It might be possible to get an old version of CVSNT running under Linux, maybe by compiling from source. I'm sorry the answer is not easier. This is an unfortunate consequence of trusting your valuable data to proprietary software. Please let us know how it works out. Michael [1] http://cvs2svn.tigris.org/faq.html#cvsnt --=20 Michael Haggerty [email protected] ------------------------------------------------------ http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=3D1670&dsMessageId=3D= 3137893 To unsubscribe from this discussion, e-mail: [[email protected]= ris.org].