Question

I have a large CVS repository (~ 30 GB), and to convert a single module using cvs2git it seems that all I need is:

  • the CVSROOT directory
  • the module's directory

The module's directory should, of course, be in the same relative location to CVSROOT as it is in the original repo.

I'm interested in this because I have to do the conversion work on a separate box, and I don't want to copy the entire repo if I don't have to.

First question is: Is this all that cvs2git needs for converting a single module?

Second question is: What exactly does cvs2git need from the CVSROOT directory? After many years the CVSROOT directory has accumulated a lot of cruft (it stands at about 2 GB now), and I'd like to copy only the files I need.

Was it helpful?

Solution

All you need is the module directory and a CVSROOT directory. The CVSROOT directory must be present, but it can be empty; e.g., it would be enough to do a "mkdir CVSROOT" at the right place.

It is also not even required that the module directory be in the same relative location to CVSROOT as it is in the original repo. Only the part of the directory structure that you want in the resulting git repository is needed.

OTHER TIPS

Since cvs2git directly works on the file level. It really doesn't need much more than the relevant module itself. As mhagger said, CVSROOT is necessary but can be empty. It is even possible to move module directories and/or subdirecories around, join or split them, to migrate them into a new directory structure.

I used this to join some connected modules to one git project and to move away some big and static lib/ folders (binary data) into a separate git sub-project.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top