Adium to switch to Mercurial

Friday, February 8th, 2008

In case folks hadn’t heard, Adium’s decided to make the switch to Mercurial, away from Subversion. David Smith wrote up a post to our development mailing list explaining why we chose Mercurial over other distributed version control systems.

Since I have prior Mercurial experience, I’ve been doing a bunch of the tooling for the switchover. In particular, Peter and I have been hacking on a tool to convert Adium’s Subversion repository to a Mercurial one. Due some unusual features of the Adium subversion repository, we weren’t able to use any of the existing conversion tools. While this is unfortunate, there’s always a silver lining: Firstly, it’s a great exercise and it’s always fun to work with Peter. Secondly, our tool is much more flexible, modular and hopefully faster than anything else out there.

There are still a few more little things to figure out before we’re ready to throw the switch, but I think that switching to Mercurial is going to be a big boost for our development process. I’m convinced that making it easier to experiment and to share those experiments with others is going to be a huge win for the project.


  1. Manuzhai replied on February 8th, 2008:

    So, will the conversion tool be published, or is it very specific to the Adium repo? Why did you choose to work from scratch instead of working from, for example, hg’s convert extension?

  2. Colin replied on February 8th, 2008:

    @Manuzhai It’ll be published. hg’s convert extension and tailor both assume that each commit to the svn repository is in one “module”. When people do things like commit to trunk/ and branches/adium-1.1/ in the same changeset, hg convert gets very confused and breaks. We actually did look into modifying convert, but it ended up being easier to write our own.

  3. Jonathan Wight replied on February 8th, 2008:

    Hey Colin,

    Switching from SVN to HG myself… Would love to try this tool out too. Ship it!