|Mercurial actually did something useful for once
||[Thursday 7th April 2011 at 10:24 pm]
|||||The Weasley Stomp ~ Harry Potter and the Half-Blood Prince||]|
Given how much I've ranted about it, it's only fair that I praise Mercurial when it actually does something useful.
I was working on a bit of Java recently which I had cloned on both Windows and Linux (the code is intended to be built on Linux, but with my environment it's more convenient to run Eclipse on Windows). I'd made some changes and built a test jar under Windows, but now needed to try the build on Linux. So... commit my changes, run
hg serve which starts a mini http server, and then on Linux run
hg pull pointing it at my Windows PC. Hey presto, my locally-committed changes are now on my Linux system as well as my Windows one, and I can push from either of those to the master repository without horribly confusing the other copy. With CVS or SVN I'd have had to either check in my changes (polluting the master repository with untested changes), or copy the files across resulting in my checkout losing synchronisation with the metadata.
Of course, then I wanted to get the history of a file with all tags, not just those tags that happened to be on changesets including changes to that file, and couldn't find a way to get that information from Mercurial. Status quo restored!