vcs:cvs2svnconversion

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
vcs:cvs2svnconversion [2008/11/07 05:31] – conversion script and hooks gwynnevcs:cvs2svnconversion [2019/08/26 16:54] (current) gwynne
Line 1: Line 1:
 +====== Complete ======
 +
 +The SVN migration was completed in July 2009. This document has been retained for historical purposes.
 +
 +
 ====== CVS to SVN Migration Path ====== ====== CVS to SVN Migration Path ======
  
Line 32: Line 37:
 I have the CVS repository stored in a directory called "realroot" (why not?) and stored the temporary data files on a separate mount point because of drive space issues. My initial commandline, based purely on the documentation, before any kind of testing was this: I have the CVS repository stored in a directory called "realroot" (why not?) and stored the temporary data files on a separate mount point because of drive space issues. My initial commandline, based purely on the documentation, before any kind of testing was this:
 <code bash> <code bash>
-./cvs2svn --svnrepos=./svnroot --fs-type=fsfs --dry-run --no-cross-branch-commits --username=svnconvert --cvs-revnums --use-cvs --tempdir=/Volumes/External/private/tmp/cvs2svn-tmp ./realroot+./cvs2svn --svnrepos=./svnroot --fs-type=fsfs 
 +--dry-run --no-cross-branch-commits 
 +--username=svnconvert 
 +--cvs-revnums --use-cvs 
 +--tempdir=/Volumes/External/private/tmp/cvs2svn-tmp ./realroot
 </code> </code>
  
Line 380: Line 389:
 </code> </code>
  
-Whew. That was going to make for a //very// long options file where it was very easy to make copypasta errors. I needed to add a little Python code. How does one do foreach (array(//blah blah blah//) as $item) { /* etc */ } in Python? So I went to my wife Sarah, who **does** know Python.+Whew. That was going to make for a //very// long options file where it was very easy to make copypasta errors. I needed to add a little Python code. How does one do foreach (array(//blah blah blah//) as $item) { /* etc */ } in Python? So I went to a close friend who **does** know Python.
  
 We came up with this rather handy little bit of code: We came up with this rather handy little bit of code:
Line 923: Line 932:
 At a glance it might seem that would be the end of it. But unfortunately, no. There are a lot of administrative tasks done by scripts in CVSROOT, all of which need to be ported to SVN equivelants. I decided it would be astute to make a list of what needed to be ported before actually getting into it! To do that, I grabbed a copy of CVSROOT itself and had a looksee. It turned out the following things needed conversion: At a glance it might seem that would be the end of it. But unfortunately, no. There are a lot of administrative tasks done by scripts in CVSROOT, all of which need to be ported to SVN equivelants. I decided it would be astute to make a list of what needed to be ported before actually getting into it! To do that, I grabbed a copy of CVSROOT itself and had a looksee. It turned out the following things needed conversion:
   * Access Control Lists - replaced by the SVN authz database   * Access Control Lists - replaced by the SVN authz database
-  * commitinfo.pl - I couldn't quite figure out what this was for. It seemed to write the name of the committed directory to a file. Maybe some automation uses it.+  * commitinfo.pl - I couldn't quite figure out what this was for. It seemed to write the name of the committed directory to a file. A little more investigation showed it to be part of the loginfo.pl automation
   * cvswrappers - Replaced by SVN's autoprops   * cvswrappers - Replaced by SVN's autoprops
   * loginfo.pl - Sends the e-mails to various mailing lists when commits happen   * loginfo.pl - Sends the e-mails to various mailing lists when commits happen
vcs/cvs2svnconversion.1226035882.txt.gz · Last modified: 2017/09/22 13:28 (external edit)