My own hit list:
The simple ones you must have:
color
: colorize output from commands like diff
and status
, which makes it easier to assess.
pager
: browse long output a page at a time.
fetch
: pull, update and merge from another repo in one step.
graphlog
: display revision graphs in your shell, incredibly useful for looking at the branches in your log history.
hgk
: browse the repository with a graphical interface (see also TortoiseHg and Murky)
If you enable pager
, you should configure it to not interfere with certain commands:
[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record
The intermediate extensions I highly recommend (and use frequently):
bookmarks
: track a line of development with movable markers, much like git's lightweight branches.
record
: lets you interactively select hunks of files to commit - perfect for when you are in the middle of one set of changes, and you end up fixing something that should have its own commit.
extdiff
: configure an external diff tool (such as meld)
share
: have multiple clones use the same repo history
The Advanced extensions I would not be without:
mq
: manage a stack of patches. Very powerful, allows layering of patches on top of the tree.
transplant
: apply changesets from another branch. Useful for linearising history.
notify
: send email notifications when a repo is changed.
rebase
: reapply local changes on top of a new parent revision.
inotify
: Linux-only, uses filesystem notifications to make status
super-fast
All the above are bundled with Mercurial, and are stable and well-tested. I highly recommend all of them.
Non-core extensions worth investigating:
shelve
: selectively put aside changes (at the granularity of hunks) and restore them.
attic
: similar to shelve, not sure how it is different
acl
: selectively allow access to different parts of the repository tree
histedit
: manipulate, reorder and fold changesets (like git's interactive rebase)
bigfiles
: work with large binary files outside the hg store
I would not recommend the forest
extension, as it has been superseded by the subrepo
support introduced in v1.3.