This involved moving from Google Code, using SVN, to GitHub which (obviously) uses Git.
There were only two minor hurdles in all of this. The first is that SVN tracks users by their Unix ids, whereas Git tracks users by email addresses. The next (and final) hurdle was that the feedvalidator project contains two subprojects, each in separate subdirectories.
This involved moving from Google Code, using SVN, to GitHub which (obviously) uses Git.
There were only two minor hurdles in all of this. The first is that SVN tracks users by their Unix ids, whereas Git tracks users by email addresses. You provide the mappings using a simple file containing lines of the form:
id = name <address>
The initial conversion is done as follows:
sudo apt-get install git-svn git svn init http://feedvalidator.googlecode.com/svn/ --stdlayout git svn fetch --authors-file=$HOME/tmp/authors.txt
In practice, this runs until it encounters an id that it doesn’t recognize. Adding the id to the authors.txt file and rerunning the last command restarts where it last left off. Repeat until done.
The next (and final) hurdle was that the feedvalidator project contains two subprojects, each in separate subdirectories. Isolating a single subproject is as easy as:
git filter-branch --subdirectory-filter feedvalidator
Uploading is the final step:
git remote add origin git@github.com:rubys/feedvalidator.git git push origin master
That filter-branch trick is pretty cool. Didn’t know you could do it that way.
Thanks for doing this! This should make it a lot easier to manage the forks and contribute back to the main project.