Using Mercurial extensions
Mercurial features an extension mechanism for adding new commands.
Extensions allow the creation of new features and using them directly from the main hg command line as if they were builtin commands.
Finding existing extensions
Extensions Bundled with Mercurial
Core extensions
Name |
Page |
Description |
acl |
Manage commit access to parts of a repo using control lists |
|
bisect |
Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)) |
|
bugzilla |
Update Bugzilla entries when a bug id is referenced in a changeset |
|
extdiff |
Compare changes using external programs |
|
fetch |
Conveniently pull, merge and update in one step |
|
gpg |
Sign changesets and check signatures using GPG |
|
graphlog |
Show revision history alongside an ASCII revision graph |
|
hgk |
Graphical repository and history browser based on gitk |
|
mq |
Mercurial Patch Queues - manage changes as series of patches |
|
notify |
Send email to subscribed addresses to notify repository changes |
|
patchbomb |
Send a collection of changesets as a series of patch emails |
|
transplant |
Cherry-picking, rebasing and changeset rewriting |
|
win32text |
Manage line ending conversion for Windows repositories |
Additional extensions
Name |
Page |
Description |
churn |
Show change statistics for mercurial operations per author |
|
purge |
Purge all files and dirs in the repository that are not being tracked by Mercurial |
Extensions provided by others
Name |
Page |
Description |
forest |
Manage a bunch of mercurial repos as a meta repository, with snapshot support [http://www.selenic.com/pipermail/mercurial/2006-July/009336.html thread] |
|
hgcia |
Send notifications to [http://cia.navi.cx CIA] |
|
inotify |
Use linux 2.6 inotify API for instantaneous status updates |
|
keyword expansion |
use CVS like keyword expansion in tracked files |
|
send |
Automatic send of bundle containing changesets missing on remote, like darcs send |
|
Qct |
provide access to the Qct commit tool |
Enabling an extension
To load an extension, you add it to the "extensions" section of your [http://www.selenic.com/mercurial/hgrc.5.html .hgrc] file.
Mercurial will scan the default python library path for a file named hgk.py if you set hgk empty:
[extensions] hgk=
Extensions are usually located in the hgext directory, and that is the recommended directory to place them. In this case you can load them like:
[extensions] hgext.hgk=
You can also specify an absolute path:
[extensions] hgk=/usr/local/lib/hgk.py
Extensions can often be configured further in an extension specific section in the same configuration file.
See CategoryExtension for a more complete list and WritingExtensions for more information about the installation and writing of new extensions.