Differences between revisions 49 and 50
Revision 49 as of 2007-08-26 05:34:46
Size: 4235
Editor: 220
Comment:
Revision 50 as of 2007-08-26 05:35:56
Size: 1380
Editor: 220
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Extensions
= Using Mercurial extensions =
Mercurial features an extension mechanism for adding new commands.
== Bundled extensions ==
=== Core extensions ===
 * UsingHgk - how to use the GUI repository and history browser
 * MqExtension - Mercurial Patch Queues - manage changes as series of patches
 * UsingBisect - how to use the bisect extension to find bugs
 * UsingExtdiff - use external programs to compare changes
 * AclExtension - Manage commit access to parts of a repo using control lists
 * BugzillaExtension - Update bugzilla entries when a bug id is referenced in a changeset
 * FetchExtension - Conveniently pull and merge or update to the tip revision
 * GpgExtension - Sign and check changesets using GPG
 * NotifyExtension - Email notifications to subscribed addresses after commits to a repo
 * PatchbombExtension - Send a collection of changesets as a series of patch emails
Line 5: Line 14:
Extensions allow the creation of new features and using them directly from the main hg command line as if they were builtin commands. === Additional extensions ===
 * ChurnExtension - Show statistics for mercurial operations
 * PurgeExtension - Purge all files and dirs in the repository that are not being tracked by Mercurial
Line 7: Line 18:
== Finding existing extensions == == Non bundled extensions ==
 * ForestExtension - manage a bunch of mercurial repos as a meta repository, with snapshot support
 * TransplantExtension - cherry-picks patches and rebases branches
 * KeywordExpansionExtension - use CVS like keyword expansion in tracked files
Line 9: Line 23:
=== Extensions Bundled with Mercurial ===
==== Core extensions ====

|| ''Name'' || ''Page'' || ''Description'' ||
|| '''acl''' || AclExtension || Manage commit access to parts of a repo using control lists ||
|| '''bisect''' || BisectExtension || Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)) ||
|| '''bugzilla''' || BugzillaExtension || Update Bugzilla entries when a bug id is referenced in a changeset ||
|| '''convert''' || ConvertExtension || Convert repositories from other SCMs into Mercurial ||
|| '''extdiff''' || ExtdiffExtension || Compare changes using external programs ||
|| '''fetch''' || FetchExtension || Conveniently pull, merge and update in one step ||
|| '''gpg''' || GpgExtension || Sign changesets and check signatures using GPG ||
|| '''graphlog''' || GraphlogExtension || Show revision history alongside an ASCII revision graph ||
|| '''hgk''' || HgkExtension || Graphical repository and history browser based on gitk ||
|| '''mq''' || MqExtension || Mercurial Patch Queues - manage changes as series of patches ||
|| '''notify''' || NotifyExtension || Send email to subscribed addresses to notify repository changes ||
|| '''patchbomb''' || PatchbombExtension || Send a collection of changesets as a series of patch emails ||
|| '''transplant''' || TransplantExtension || Cherry-picking, rebasing and changeset rewriting ||
|| '''win32text''' || Win32Extension || Manage line ending conversion for Windows repositories ||

==== Additional extensions ====

|| ''Name'' || ''Page'' || ''Description'' ||
|| '''churn''' || ChurnExtension || Show change statistics for mercurial operations per author ||
|| '''purge''' || PurgeExtension || Purge all files and dirs in the repository that are not being tracked by Mercurial ||

=== Extensions provided by others ===

|| ''Name'' || ''Page'' || ''Description'' ||
|| '''alias''' || AliasExtension || user-defined command aliases ||
|| '''digest''' || DigestExtension || Create and use small digest files for outgoing/bundle ||
|| '''diffstat''' || DiffstatExtension || Shortcut commands for displaying diffstat ||
|| '''forest''' || ForestExtension || 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''' || HgciaExtension || Send notifications to [http://cia.navi.cx CIA] ||
|| '''imerge''' || ImergeExtension || Perform interactive, interruptible merges ||
|| '''inotify''' || InotifyExtension || Use linux 2.6 inotify API for instantaneous status updates ||
|| '''keyword expansion''' || KeywordExpansionExtension || use CVS like keyword expansion in tracked files ||
|| '''parentrevspec''' || ParentrevspecExtension || use `foo^` to refer to the parent of revision `foo` ||
|| '''send''' || SendExtension || Automatic send of bundle containing changesets missing on remote, like darcs send ||
|| '''Qct''' || QctExtension || 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.
 See CategoryExtension for a more complete list and ExtensionHowto for a list of bundled extensions.

Bundled extensions

Core extensions

  • UsingHgk - how to use the GUI repository and history browser

  • MqExtension - Mercurial Patch Queues - manage changes as series of patches

  • UsingBisect - how to use the bisect extension to find bugs

  • UsingExtdiff - use external programs to compare changes

  • AclExtension - Manage commit access to parts of a repo using control lists

  • BugzillaExtension - Update bugzilla entries when a bug id is referenced in a changeset

  • FetchExtension - Conveniently pull and merge or update to the tip revision

  • GpgExtension - Sign and check changesets using GPG

  • NotifyExtension - Email notifications to subscribed addresses after commits to a repo

  • PatchbombExtension - Send a collection of changesets as a series of patch emails

Additional extensions

  • ChurnExtension - Show statistics for mercurial operations

  • PurgeExtension - Purge all files and dirs in the repository that are not being tracked by Mercurial

Non bundled extensions

UsingExtensions (last edited 2022-06-28 16:47:05 by ArneBab)