Mercurial > pt1
Help: extensions
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.
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
See 'hg help config' for more information on configuration files.
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 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 = !
enabled extensions:
- mq
- manage a stack of patches
- strip
- strip changesets and their descendants from history
disabled extensions:
- absorb
- apply working directory changes to changesets (EXPERIMENTAL)
- acl
- hooks for controlling repository access
- alias
- allow user-defined command aliases
- amend
- provide the amend command (EXPERIMENTAL)
- automv
- check for unrecorded moves at commit time (EXPERIMENTAL)
- beautifygraph
- beautify log -G output by using Unicode characters (EXPERIMENTAL)
- blackbox
- log repository events to a blackbox for debugging
- bookflow
- implements bookmark-based branching (EXPERIMENTAL)
- bookmarks
- track a line of development with movable markers
- bugzilla
- hooks for integrating with the Bugzilla bug tracker
- censor
- erase file content at a given revision
- chgserver
- command server extension for cHg (EXPERIMENTAL)
- children
- command to display child changesets (DEPRECATED)
- churn
- command to display statistics about repository history
- clonebundles
- advertise pre-generated bundles to seed clones
- closehead
- close arbitrary heads without checking them out first
- color
- colorize output from some commands
- commitextras
- adds a new flag extras to commit (ADVANCED)
- 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
- fastannotate
- yet another annotate implementation that might be faster (EXPERIMENTAL)
- fetch
- pull, update and merge in one command (DEPRECATED)
- fix
- rewrite file content in changesets or working copy (EXPERIMENTAL)
- fsmonitor
- Faster status operations with the Watchman file monitor (EXPERIMENTAL)
- githelp
- try mapping git commands to Mercurial commands
- gpg
- commands to sign and verify changesets
- graphlog
- command to view revision graphs from a shell (DEPRECATED)
- hbisect
- (no help text available)
- 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
- imerge
- infinitepush
- store some pushes in a remote blob store on the server (EXPERIMENTAL)
- interhg
- expand expressions into changelog and summaries
- journal
- track previous positions of bookmarks (EXPERIMENTAL)
- keyword
- expand keywords in tracked files
- largefiles
- track large binary files
- lfs
- lfs - large file support (EXPERIMENTAL)
- logtoprocess
- send ui.log() data to a subprocess (EXPERIMENTAL)
- narrow
- create clones which fetch history data for subset of files (EXPERIMENTAL)
- notify
- hooks for sending email push notifications
- pager
- browse command output with an external pager (DEPRECATED)
- parentrevspec
- interpret suffixes to refer to ancestor revisions
- patchbomb
- command to send changesets as (a series of) patch emails
- phabricator
- simple Phabricator integration (EXPERIMENTAL)
- progress
- show progress bars for some actions (DEPRECATED)
- 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 (DEPRECATED)
- releasenotes
- generate release notes from commit messages (EXPERIMENTAL)
- relink
- recreates hardlinks between repository clones
- remotefilelog
- remotefilelog causes Mercurial to lazilly fetch file contents (EXPERIMENTAL)
- remotenames
- showing remotebookmarks and remotebranches in UI (EXPERIMENTAL)
- schemes
- extend schemes with shortcuts to repository swarms
- share
- share a common history between several working directories
- shelve
- save and restore changes to the working directory
- show
- unified command to show various repository information (EXPERIMENTAL)
- sparse
- allow sparse checkouts of the working directory (EXPERIMENTAL)
- split
- command to split a changeset into smaller ones (EXPERIMENTAL)
- sqlitestore
- store repository data in SQLite (EXPERIMENTAL)
- transplant
- command to transplant changesets from another branch
- uncommit
- uncommit part or all of a local changeset (EXPERIMENTAL)
- win32mbcs
- allow the use of MBCS paths with problematic encodings
- win32text
- perform automatic newline conversion (DEPRECATED)
- zeroconf
- discover and advertise repositories on the local network