As you may have noticed, the year is almost over. I like the name Trenton is using for it: Space Christmas. This is usually a time when people aren’t working on their day-time jobs, so they are left with some free time to do other stuff. For example, go to the beach or the swimming pool, enjoy the sunshine, etc.
What? You don’t do that? Yeah, I guess it’s my Southern-hemisphere-centric view talking. It’s 32°C in São Paulo right now, so I can only imagine how warm it is at the beach (75 km away and 800 m down).
Anyways, like I was saying, this is a time of the year people start working on other stuff. That is true as well for me. I have decided to actually start working on the Subversion-to-Git conversion tools I’ve been talking about for months. So you can expect a few blog entries from me in the upcoming weeks how the progress is going.
But I’d like to explain first of all why I chose Git. And the short version is: because I’m lazy. Yes, the reasons are entirely personal and not technical, so please don’t post a comment accusing me of that. I already know.
The funny thing is… I didn’t choose Git. I chose Mercurial at first. For two reasons, all of them showing my laziness and stubbornness:
- it was installed already on my laptop, because I had had to use it to pull the Em2880 v4l-dvb driver for my USB TV tuner.
- because everyone was talking about Git, I wanted to be different
So, sometime in May this year, I decided to convert my local SVK tree of the Qt snapshots. SVK is a good program, written entirely in Perl on top of the Subversion libraries. I suspect that Perl compiling all of that code on-the-fly is a bottleneck, because after a while SVK was too slow for me. Therefore, I chose Mercurial to convert to.
Besides, I figured that, since everyone was talking about Git and using it, I might as well provide another point of view.
Unfortunately, my laziness reared its ugly head again: I failed to make heads or tails of the conversion tool that Mercurial uses. And people say it’s an easy tool, so I must be really lazy.
At the urging of a fellow Troll working on WebKit (though technically I wasn’t a Troll at that date) and a fellow KDE developer trying to convert the entire KDE repository, I decided to give it a try. And after a few fixes on Chris Lee’s svn-fast-export, I managed to convert my SVK local repository to Git! [Note: I now know that tool to be extremely limited and will produce erroneous conversions in some cases]
Since then, I have found more reasons to stick with Git, including the fact that I’m using Git inside Trolltech to avoid using Perforce. I won’t enumerate them here because they are technical. [Who cares about technical reasons backed by numbers? We should all make decisions based on personal feelings! The bikeshed is always blue!]
So last week I started working on a rewrite of svn-fast-export, which I called svn-all-fast-export because it creates multiple Git repositories. It’s a very powerful tool, but not very easy to use. It took me 2 days to finish writing the rule file for the import of the KDE main modules.
But I’m happy to say I’ve reached the third milestone in the conversion process. For those lazy to click the previous link: I managed to convert the KDE modules “arts”, “kdesupport”, “koffice” and “KDE/*“, with all official branches, to Git. For the details, click the link.
PS: have you noticed how I managed to link to 5 different revision control systems in this blog?










