git svn vs. svn2git (vs. "svn2git")

If you're ever in the position of needing to convert a large (in our case around 32000 revisions) Subversion repository to a Git repository, you should know

  • git svn is agonizingly slow, and falls over at regular intervals (apparently memory problems; symptom is "git svn died with signal 13")

  • The KDE version of "git2svn" is written in C++, requires that QT4 be installed (so you have "qmake"), and requires a local copy of the SVN repository. If you have it, it is apparently blindingly fast - in my case I didn't have direct access to download the whole SVN repository.

So for my conversion I used the "svn2git" Ruby gem. It works very well indeed, and is screamingly fast. My current import has been running for 12 hours and is about halfway done - this may seem slow, but the "git svn" version, even wrapped with a Perl program to restart it when it fell over, ran for over three weeks before hitting a situation where it couldn't continue, with the import imcomplete.

I'll update the post once the import completes - or if it doesn't!

1 Comment

git-svn is Perl code, so we'd all love it getting a little love.

The extent of my experience with it was a temporary hack to allow me to back-date Subversion the commits when doing a "git svn dcommit".

Leave a comment

About Joe McMahon

user-pic Blogging about Perl, wandering off into compatibility issues with other things, like Python and Django.