Using Additional Features
Mercurial has the ability to add new features through the use of
extensions. Extensions may add new commands, add options to
existing commands, change the default behavior of commands, or
implement hooks.
Extensions are not loaded by default for a variety of reasons:
they can increase startup overhead; they may be meant for advanced
usage only; they may provide potentially dangerous abilities (such
as letting you destroy or modify history); they might not be ready
for prime time; or they may alter some usual behaviors of stock
Mercurial. It is thus up to the user to activate extensions as
needed.
To enable the "foo" extension, either shipped with Mercurial or in the
Python search path, create an entry for it in your configuration file,
like this:
[extensions]
foo =
You may also specify the full path to an extension:
[extensions]
myfeature = ~/.hgext/myfeature.py
To explicitly disable an extension enabled in a configuration file of
broader scope, prepend its path with !:
[extensions]
# disabling extension bar residing in /path/to/extension/bar.py
bar = !/path/to/extension/bar.py
# ditto, but no path was supplied for extension baz
baz = !
disabled extensions:
- acl
- hooks for controlling repository access
- blackbox
- log repository events to a blackbox for debugging
- bugzilla
- hooks for integrating with the Bugzilla bug tracker
- children
- command to display child changesets (DEPRECATED)
- churn
- command to display statistics about repository history
- color
- colorize output from some commands
- convert
- import revisions from foreign VCS repositories into Mercurial
- eol
- automatically manage newlines in repository files
- extdiff
- command to allow external programs to compare revisions
- factotum
- http authentication with factotum
- fetch
- pull, update and merge in one command (DEPRECATED)
- gpg
- commands to sign and verify changesets
- graphlog
- command to view revision graphs from a shell
- hgcia
- hooks for integrating with the CIA.vc notification service
- hgk
- browse the repository in a graphical way
- highlight
- syntax highlighting for hgweb (requires Pygments)
- histedit
- interactive history editing
- inotify
- accelerate status report using Linux's inotify service
- interhg
- expand expressions into changelog and summaries
- keyword
- expand keywords in tracked files
- largefiles
- track large binary files
- mq
- manage a stack of patches
- notify
- hooks for sending email push notifications
- pager
- browse command output with an external pager
- patchbomb
- command to send changesets as (a series of) patch emails
- progress
- show progress bars for some actions
- purge
- command to delete untracked files from the working directory
- rebase
- command to move sets of revisions to a different ancestor
- record
- commands to interactively select changes for commit/qrefresh
- relink
- recreates hardlinks between repository clones
- schemes
- extend schemes with shortcuts to repository swarms
- share
- share a common history between several working directories
- transplant
- command to transplant changesets from another branch
- win32mbcs
- allow the use of MBCS paths with problematic encodings
- win32text
- perform automatic newline conversion
- zeroconf
- discover and advertise repositories on the local network