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.
1. Extensions Bundled with Mercurial
Name |
Page |
Description |
acl |
Manage commit access to parts of a repo using control lists |
|
alias |
user-defined command aliases |
|
bisect |
Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)). Built-in for Mercurial 1.0 |
|
bugzilla |
Update Bugzilla entries when a bug id is referenced in a changeset |
|
children |
Display children revisions |
|
churn |
Show change statistics for mercurial operations per author |
|
convert |
Convert repositories from other SCMs into Mercurial |
|
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 |
|
imerge |
Perform interactive, interruptible merges |
|
inotify |
Use linux 2.6 inotify API for instantaneous status updates |
|
keyword |
use CVS like keyword expansion in tracked files |
|
mq |
Mercurial Patch Queues - manage changes as series of patches |
|
notify |
Send email to subscribed addresses to notify repository changes |
|
parentrevspec |
use foo^ to refer to the parent of revision foo |
|
patchbomb |
Send a collection of changesets as a series of patch emails |
|
purge |
Purge all files and dirs in the repository that are not being tracked by Mercurial |
|
record |
Select working directory changes to commit by hunk à la darcs record |
|
transplant |
Cherry-picking, rebasing and changeset rewriting |
|
win32text |
Manage line ending conversion for Windows repositories |
2. Extensions provided by others
Name |
Page |
Description |
cvscommit |
Push changesets to CVS |
|
config |
Manage hgrc files via dialogs and command line |
|
commits |
Commit modified files as multiple changesets at once |
|
digest |
Create and use small digest files for outgoing/bundle |
|
diffstat |
Shortcut commands for displaying diffstat |
|
easycommit |
Command-line GUI for committing changes |
|
easymerge |
Command-line GUI for merging |
|
foreign |
Interactively register or delete foreign/unknown files |
|
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] |
|
localbranch |
Create clones inside your working directory |
|
rdiff |
Allow diff to work against remote repositories |
|
send |
Automatic send of bundle containing changesets missing on remote, like darcs send |
|
qct |
Provide access to the Qct commit tool |
|
graphviz |
Generate DOT language source to visualize changeset tree |
3. 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.