How to migrate from cvs to git


Something that I've seen with several older projects lately is a desire to upgrade from their aging cvs repositories to something better. Today, if you've read my blog lately at all, you might be able to guess that git has become the r.c.s. du jour, and it's really, really awesome too. So you should use it.

So how to move from cvs to git? Well, amusingly for that I've got a suggestion.

Instead of going straight to git, go to subversion as a stopping off point at the server level. One key reason I recommend this is that many developers (or managers) aren't yet ready to deal with git's command-line tools while there are lots of really great graphical svn tools on Windows, like TortoiseSVN. Then, when there's TortoiseGIT available you could migrate up to git with very little work.

To do this you'll use the excellent cvs2svn, and take a look at O'Reilly's excellent cvs2svn tutorial if you need detailed help.

Then, once you get svn going as your central repository you can use git-svn to locally interact with it and to have all of the usual git gravy - create local branches, use gitosis and gitjour to directly share your code with others, all while keeping the less technically savvy users happy with their point-and-click GUI tools.

So go git yourself into the 21st century!