Two blog posts in one day!
Distributed revision control systems are all the rage these days and I think the time has come to adopt one. I've always thought they were a good idea, but Subversion worked well and suited my needs well enough. I was also somewhat put off by the number of choices and didn't want to switch to something that would turn out to be a dud. But now there seem to be two main contenders, Git and Mecurial. I think Linus' recent talk on git also helped rekindle my interest.
Despite Linus' protestations of greatness, I was thinking of using Mercurial since it seems to fit better with my Subversion centric view of the world and it appears that Mozilla is going to move to it from CVS. I already have a few CVS and Subversion repositories for various things and I would like to keep that history. So I fired up Tailor and started converting a mail archive I have in an svn repo. The repo is only 1.5G, but Tailor was slow. Surprisingly slow. It then failed right near the end of the conversion. I'm also not sure exactly how much history Tailor is preserving. Does it deal with things like file moves properly?
Disheartened, I took a look at git instead. It seemed to have a tool called git-svnimport that sounded very promising. I ran it against the same svn repo and it proceeded to consume all the memory on my system and cause it to thrash like mad. My machine became so unresponsive that I had to log in remotely to kill the import.
So in the end, dear lazyweb, what tools should one use to convert a Subversion repository to Mercurial and/or Git?
Distributed revision control systems are all the rage these days and I think the time has come to adopt one. I've always thought they were a good idea, but Subversion worked well and suited my needs well enough. I was also somewhat put off by the number of choices and didn't want to switch to something that would turn out to be a dud. But now there seem to be two main contenders, Git and Mecurial. I think Linus' recent talk on git also helped rekindle my interest.
Despite Linus' protestations of greatness, I was thinking of using Mercurial since it seems to fit better with my Subversion centric view of the world and it appears that Mozilla is going to move to it from CVS. I already have a few CVS and Subversion repositories for various things and I would like to keep that history. So I fired up Tailor and started converting a mail archive I have in an svn repo. The repo is only 1.5G, but Tailor was slow. Surprisingly slow. It then failed right near the end of the conversion. I'm also not sure exactly how much history Tailor is preserving. Does it deal with things like file moves properly?
Disheartened, I took a look at git instead. It seemed to have a tool called git-svnimport that sounded very promising. I ran it against the same svn repo and it proceeded to consume all the memory on my system and cause it to thrash like mad. My machine became so unresponsive that I had to log in remotely to kill the import.
So in the end, dear lazyweb, what tools should one use to convert a Subversion repository to Mercurial and/or Git?

git and mercurial
If you want to use mercurial you can benefit from git-svn conversion tools and later convert the git repo to a mercurial one.
I personally find mercurial much easier to work with than git, but both are excellent options.
Re: git and mercurial
Re: git and mercurial
bzr
Of course, you could also try out bzr, and see if you like it better than hg or git, and thus avoid the second conversion. :-)
SVN to Mercurial conversion tools
You can get a list from http://www.selenic.com/mercurial/wiki/in
Converting SVN to Hg
I actually had a very hard time getting most of the conversion tools to work until I tried out hgsvn which worked like a charm. I had similar issues with Tailor, which I found to be pretty broken.
At my page above I posted pretty detailed instructions for converting using hgsvn and then setting up a reasonable SVN-ish Hg replacement (e.g., setting up Hg to serve over HTTP, etc).