Lately I've been using mercurial queues to do two things:
Mercurial queues are great if you find yourself working on multiple small things at a time (i.e. a small fix that dovetails into two small, but ordinarily unrelated fixes) or if you find that you're working on something productive and then suddenly have to fork your attention to some random, completely unrelated bugfix.
They're also great if you happen to think that mercurial needs to be more gitlike, i would probably suggest you look at them rather than giving up on hg altogether. For a good, visual high-level intro to how mercurial queues work, check out Steve Losh's blog post "A Git User's Guide to Mercurial Queues".
The folks at Mozilla actually have a great MQ Reference. Their motivation is sort of twofold: it allows you to have a cleaner dag and it allows you to discretize your work (while still committing) before you actually push it into stable. For the most part, their tutorial is amazing and i can't really suggest much above it, except the following points:
This will always be a problem and it's particularly noticeable if you happen to be doing work that concurrently touches both the subrepo and the main repo. My only suggestion is to ignore the
By default, mercurial queues will not prompt you to set a commit message when you finish a patch. Instead, i added the following to my
The first lets me set my email address and also pops open vi so i can set a commit message whenever i run
This is pretty straightforward, but you can just do a
You may not actually need the
which will output something like this:
$ python deploy/deploy.py -c -d
The inimitable Steve Losh created a fantastic zsh theme that allows you to see a variety of fascinating things about your work. Using his extension, my terminal now outputs something like this whenever i enter a directory: