I’ve started using Mercurial several months ago. During the development of a previous release at work, I even managed to keep a local Mercurial “branch” synchronized with Perforce commits happening several timezones away.
A little shell script hackery, and I had an off-line, clonable repository with all the history I needed, plus all the cool features of Mercurial: cheap branching, accountability of changes, the ability to roll back quickly from any commit to any other commit, merging capabilities between arbitrary “remote” changesets and any number of local patches, and the amazing “Mercurial Queues” patch-manager for stacking personal patchsets on top of an existing repo clone.
Months later, I used Mercurial again as an off-line mirror of a Subversion tree. A little more shell hackery, and I had yet again a fully distributed copy of things happening in a centralized Subversion branch. Workspace cloning (what centralized SCM systems call “branching”) and MQ patch queues helped me work both at work and home, entirely disregarding the fact that it’s quite impossible to work in “offline mode” with Subversion (or any other centralized SCM, for that matter).
Now, after using Mercurial for a much longer time than when I was first dabbling with a distributed SCM and the concepts behind repository cloning, and after seeing several of my own changesets pushed by Mercurial Crew people to the official “Crew Repository”, I feel that it’s about time to say to everyone involved in making Mercurial the fantastic SCM tool that it is:
Thank you, everyone! Keep the good work :-)