3

Yes, I know that I should abandon CVS, but it's not my decision to make, and CVS will be around for a while due to 'legacy' support. However, I figure step 1 is to show the repo in a git context. For this reason I'd first like to just sync CVS -> 'readonly' Git.

I can then manually put changes in the git repo back into CVS.

What tools can I use to do this? Which is best? What can't be done (I figure all CVS stuff can be ported into Git, and I don't need to do the reverse systematically).

Thank you!

Dan Bolser
  • 871
  • 1
  • 9
  • 17

1 Answers1

3

There's a few answers for this already: here for instance. I have used git's built in cvsimport for a number of small uncomplicated repositories and this works fine. But you must check carefully (or have your script do so). On one large repository I found errors in the conversion where files had been removed from CVS and this failed to be reflected in the git mirror. It has also proven to fail to correctly import vendor branches from CVS.

In the end I have found cvs2git to be more reliable. This tool does not however support incremental conversions. However, you can work around that by doing a full cvs2git conversion and then pushing the result to your on-going mirror. An advantage of this is your git users can push working branches if needed as long as they do not make commits to the mirrored branches. This has been working well for about a year now on a fairly large repository (10 years worth of work, half million LOC).

Community
  • 1
  • 1
patthoyts
  • 32,320
  • 3
  • 62
  • 93