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):
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.
notify
: send email notifications when a repo is changed.
rebase
: reapply local changes on top of a new parent revision.
largefiles
: work with large binary files outside the hg store
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.
acl
: selectively allow access to different parts of the repository tree
Superseded extensions and migrated to core (info from @durin42):
forest
was been superseded by the subrepo
support introduced in v1.3
bookmarks
is in core and always enabled
transplant
is superseded by graft
, a core command
histedit
is in core as of v2.3, but is disabled by default
inotify
is not recommended, as there is apparently a bug due to a race condition