I was going to give you a slightly curt answer pointing out that what you want is documented in the cvs2svn
FAQ. But then I realized that that I edited away that part of the FAQ entry years ago (my mistake, sorry!). So I just added it back to the FAQ, for you and for posterity.
The idea is to convert each project to a dumpfile, placing its trunk, branches, and tags directories where you want them to end up:
cvs2svn --dumpfile=/tmp/projectA.dump \
--trunk=projectA/trunk \
--branches=projectA/branches \
--tags=projectA/tags \
and then load the dumpfile into the existing Subversion repository:
svnadmin load /svnroot </tmp/projectA.dump
The advantage of using a dumpfile for subsequent migrations is that the Subversion repository only needs to be taken offline for the duration of the svnadmin load
, rather than for the whole time that cvs2svn
is running.