Mercurial versus Subversion

Since I wanted to look a bit at the history and changes made to OpenJDK over time, but was going to be offline for a while (and the subversion server of openjdk seems a little slow even if I were online) I decided to create a read-only openjdk mercurial mirror so I could carry the whole project history with me on a laptop and do quick diffs.

Creating a mercurial mirror of a subversion repo (and keeping it up to date with a little cronjob) is pretty easy with hgsvn.

The benefits are really huge. Not only is making diffs between any two versions of any files instant once you have a local mercurial clone, it also gives you an easy way to experiment with your local patches and have them under version control, creating, merging and generating meaningful diffs between branches is much nicer than with subversion, and it is much, much more space efficient than subversion. A checkout of 1 revision of openjdk with subversion is 1.2GB, the whole mercurial repo, which includes all revisions, takes just 740MB disk space. Amazing.

Update: Saw gcc has an experimental mercurial mirror that is also amazingly small.

7 Comments

  1. […] Mark J. Wielaard » Mercurial versus Subversion mjw on the advantages of Mercurial vs Subversion (tags: mjw Mercurial DSCM SCM Subversion) […]

  2. […] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to […]

  3. […] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to […]

  4. […] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to […]

  5. […] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to […]

  6. […] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to […]

  7. Yeah, I was surprised by the difference in sizes, too. I think the most surprising thing was that the working copy of Svn is generally larger than Hg’s repository. And in probably half the cases the Svn repository is also larger than Hg’s working-dir/repository. I guess it’s all in how Hg compresses the data. Not having a complete copy of every working file helps, too. Size, along with the other benefits of distributed SCM, have made me migrate from Subversion to Mercurial.