I started playing with cvs2svn, a tool for migrating a CVS repository to Subversion. cvs2svn does more than just Subversion. It also handles git and Bazaar.
Why am I moving from cvs? I couldn’t get my existing cvsupd server to run on a new server. Attempts to start cvsupd gave:
$ sudo /usr/local/etc/rc.d/cvsupd onestart Starting cvsupd. 2013.06.10 15:35:22 UTC [35995]: CVSup server started 2013.06.10 15:35:22 UTC [35995]: Software version: SNAP_16_1h 2013.06.10 15:35:22 UTC [35995]: Protocol version: 17.0 2013.06.10 15:35:22 UTC [35995]: Ready to service requests
Pressing ctrl-C gives:
^C2013.06.10 15:38:39 UTC [35995]: Going down /usr/local/etc/rc.d/cvsupd: WARNING: failed to start cvsupd
So… I’m converting. But with FreeBSD no longer using cvs for it’s own repo, I can’t see a reason not to move to svn.
The conversion
It’s early days yet, but I tried one conversion, which after a few failed attempts, gave me this:
cvs2svn Statistics: ------------------ Total CVS Files: 8341 Total CVS Revisions: 15924 Total CVS Branches: 6237 Total CVS Tags: 5951 Total Unique Tags: 60 Total Unique Branches: 20 CVS Repos Size in KB: 6682304 Total SVN Commits: 3394 First Revision Date: Sun Oct 7 19:08:29 2001 Last Revision Date: Fri May 31 18:17:21 2013 ------------------ Timings (seconds): ------------------ 79 pass1 CollectRevsPass 0 pass2 CleanMetadataPass 0 pass3 CollateSymbolsPass 533 pass4 FilterSymbolsPass 0 pass5 SortRevisionsPass 0 pass6 SortSymbolsPass 1 pass7 InitializeChangesetsPass 1 pass8 BreakRevisionChangesetCyclesPass 1 pass9 RevisionTopologicalSortPass 1 pass10 BreakSymbolChangesetCyclesPass 1 pass11 BreakAllChangesetCyclesPass 1 pass12 TopologicalSortPass 2 pass13 CreateRevsPass 0 pass14 SortSymbolOpeningsClosingsPass 0 pass15 IndexSymbolsPass 864 pass16 OutputPass 1485 total
I have not tried the results yet.