vcs:cvs2svnconversion
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
vcs:cvs2svnconversion [2008/10/19 23:34] – Compressed some of the passes gwynne | vcs: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 " | I have the CVS repository stored in a directory called " | ||
<code bash> | <code bash> | ||
- | ./cvs2svn --svnrepos=./ | + | ./cvs2svn --svnrepos=./ |
+ | --dry-run --no-cross-branch-commits | ||
+ | --username=svnconvert | ||
+ | --cvs-revnums --use-cvs | ||
+ | --tempdir=/ | ||
</ | </ | ||
Line 102: | Line 111: | ||
Pass 4 worked on the first try: | Pass 4 worked on the first try: | ||
+ | |||
Pass 5 was also a clean sweep: | Pass 5 was also a clean sweep: | ||
+ | |||
Pass 6 was just a beautiful thing, went by without a hitch. Not that I expected any of these " | Pass 6 was just a beautiful thing, went by without a hitch. Not that I expected any of these " | ||
+ | |||
Pass 7 worked without problems too, though it was a much slower pass than the last three. I finally started to feel like I was making progress. Pass 7 done, means pass 8 is up! Halfway there! | Pass 7 worked without problems too, though it was a much slower pass than the last three. I finally started to feel like I was making progress. Pass 7 done, means pass 8 is up! Halfway there! | ||
- | Pass 8 took something along the lines of an hour to run, but it finally finished without errors... I hope the other phases aren't similarly insane with their timing. I'm considering taking the --quiet flag back out, and I think I will for pass 9. It's nice to know // | ||
+ | Pass 8 took something along the lines of an hour to run, but it finally finished without errors... I hope the other phases aren't similarly insane with their timing. I'm considering taking the --quiet flag back out, and I think I will for pass 9. It's nice to know // | ||
< | < | ||
Line 167: | Line 179: | ||
10: Pass 10 was what my Warcraft friends would call " | 10: Pass 10 was what my Warcraft friends would call " | ||
+ | |||
11: Well, pass 11 was faster than 8 and 9, if not as fast as 10... | 11: Well, pass 11 was faster than 8 and 9, if not as fast as 10... | ||
+ | |||
12: Another one bites the dust! | 12: Another one bites the dust! | ||
+ | |||
13: Pass 13 certainly was interesting. Generating all the SVN commits... | 13: Pass 13 certainly was interesting. Generating all the SVN commits... | ||
+ | |||
14: Nice short easy one. | 14: Nice short easy one. | ||
+ | |||
15: 15 down, 1 to go! | 15: 15 down, 1 to go! | ||
+ | |||
16: Pop the champagne cork! | 16: Pop the champagne cork! | ||
Line 371: | Line 389: | ||
</ | </ | ||
- | 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(// | + | 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(// |
We came up with this rather handy little bit of code: | We came up with this rather handy little bit of code: | ||
Line 903: | Line 921: | ||
Next step: Decide on a repository structure. Ooops... lots of differing opinions on that. | Next step: Decide on a repository structure. Ooops... lots of differing opinions on that. | ||
+ | |||
+ | Well, this was getting complicated. It was time to step back and automate some of the process. So I popped open a new PHP file and came up with automation for the svn create, cvs2svn, and svn rm commands already discussed. Then I went back and added some nice command-line-y-ness to it using PEAR's Console_CommandLine (a VERY nice package, kudos to its author(s)!). The script can be viewed at [[http:// | ||
+ | |||
+ | That done, I looked back at the reorganization mess. It looked like there would in fact be a few separate repositories for things like PEAR and GTK. I needed advice on this one, so I went to the mailing list. They wanted to know, "why separate repositories?" | ||
+ | |||
+ | So I rewrote the conversion script completely to support this premise, and contacted various people to find out what to do with the " | ||
+ | |||
+ | ===== Hook scripts ===== | ||
+ | |||
+ | At a glance it might seem that would be the end of it. But unfortunately, | ||
+ | * Access Control Lists - replaced by the SVN authz database | ||
+ | * commitinfo.pl - I couldn' | ||
+ | * cvswrappers - Replaced by SVN's autoprops | ||
+ | * loginfo.pl - Sends the e-mails to various mailing lists when commits happen | ||
+ | * modules - Replaced by svn: | ||
+ | * readers - Replaced by SVN's authz database | ||
===== Available for the curious ===== | ===== Available for the curious ===== | ||
Line 910: | Line 944: | ||
</ | </ | ||
- | This will check out all the projects in the repository; it's suggested to specify a particular module like < | + | This will check out all the projects in the repository; it's suggested to specify a particular module like [[http:// |
vcs/cvs2svnconversion.1224459270.txt.gz · Last modified: 2017/09/22 13:28 (external edit)