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.
June 26th, 2007 at 07:27
[...] Mark J. Wielaard ยป Mercurial versus Subversion mjw on the advantages of Mercurial vs Subversion (tags: mjw Mercurial DSCM SCM Subversion) [...]
June 27th, 2007 at 03:22
[...] Havoc helps explain why. He also links to some other developers thoughts pro and con. Here are two bonus links comparing Mercurial to [...]
July 18th, 2007 at 01:44
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.