Differences between revisions 1 and 83 (spanning 82 versions)
Revision 1 as of 2006-12-10 23:00:42
Size: 277
Editor: mpm
Comment:
Revision 83 as of 2008-03-25 18:31:17
Size: 4916
Comment: inotify also included now
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
 * UsingHgk - how to use the GUI repository browser
 * MqExtension - Mercurial Patch Queues
 * UsingBisect - how to use the bisect extension to find bugs
 * TransplantExtension - cherry-picks patches and rebases branches
## page was renamed from Extensions
= Using Mercurial extensions =
Mercurial features an extension mechanism for adding new commands.
Line 6: Line 5:
 See CategoryExtension for a more complete list. Extensions allow the creation of new features and using them directly from the main hg command line as if they were builtin commands.

== Extensions Bundled with Mercurial ==

|| ''Name'' || ''Page'' || ''Description'' ||
|| '''acl''' || AclExtension || Manage commit access to parts of a repo using control lists ||
|| '''alias''' || AliasExtension || user-defined command aliases ||
|| '''bisect''' || BisectExtension || Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)). '''Built-in for Mercurial 1.0''' ||
|| '''bugzilla''' || BugzillaExtension || Update Bugzilla entries when a bug id is referenced in a changeset ||
|| '''children''' || ChildrenExtension || Display children revisions ||
|| '''churn''' || ChurnExtension || Show change statistics for mercurial operations per author ||
|| '''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 ||
|| '''imerge''' || ImergeExtension || Perform interactive, interruptible merges ||
|| '''inotify''' || InotifyExtension || Use linux 2.6 inotify API for instantaneous status updates ||
|| '''keyword''' || KeywordExtension || use CVS like keyword expansion in tracked files ||
|| '''mq''' || MqExtension || Mercurial Patch Queues - manage changes as series of patches ||
|| '''notify''' || NotifyExtension || Send email to subscribed addresses to notify repository changes ||
|| '''parentrevspec''' || ParentrevspecExtension || use `foo^` to refer to the parent of revision `foo` ||
|| '''patchbomb''' || PatchbombExtension || Send a collection of changesets as a series of patch emails ||
|| '''purge''' || PurgeExtension || Purge all files and dirs in the repository that are not being tracked by Mercurial ||
|| '''record''' || RecordExtension || Select working directory changes to commit by hunk à la darcs record ||
|| '''transplant''' || TransplantExtension || Cherry-picking, rebasing and changeset rewriting ||
|| '''win32text''' || Win32Extension || Manage line ending conversion for Windows repositories ||


== Extensions provided by others ==

|| ''Name'' || ''Page'' || ''Description'' ||
|| '''cvscommit''' || CvscommitExtension || Push changesets to CVS ||
|| '''config''' || ConfigExtension || Manage hgrc files via dialogs and command line ||
|| '''digest''' || DigestExtension || Create and use small digest files for outgoing/bundle ||
|| '''diffstat''' || DiffstatExtension || Shortcut commands for displaying diffstat ||
|| '''easycommit''' || EasycommitExtension || Command-line GUI for committing changes ||
|| '''easymerge''' || EasymergeExtension || Command-line GUI for merging ||
|| '''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] ||
|| '''localbranch''' || LocalbranchExtension || Create clones inside your working directory ||
|| '''rdiff''' || RdiffExtension || allow diff to work against remote repositories ||
|| '''send''' || SendExtension || Automatic send of bundle containing changesets missing on remote, like darcs send ||
|| '''qct''' || QctExtension || provide access to the Qct commit tool ||
|| '''graphviz''' || GraphvizExtension || generate DOT language source to visualize changeset tree ||


== 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.
----
CategoryExtension

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

AclExtension

Manage commit access to parts of a repo using control lists

alias

AliasExtension

user-defined command aliases

bisect

BisectExtension

Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)). Built-in for Mercurial 1.0

bugzilla

BugzillaExtension

Update Bugzilla entries when a bug id is referenced in a changeset

children

ChildrenExtension

Display children revisions

churn

ChurnExtension

Show change statistics for mercurial operations per author

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

imerge

ImergeExtension

Perform interactive, interruptible merges

inotify

InotifyExtension

Use linux 2.6 inotify API for instantaneous status updates

keyword

KeywordExtension

use CVS like keyword expansion in tracked files

mq

MqExtension

Mercurial Patch Queues - manage changes as series of patches

notify

NotifyExtension

Send email to subscribed addresses to notify repository changes

parentrevspec

ParentrevspecExtension

use foo^ to refer to the parent of revision foo

patchbomb

PatchbombExtension

Send a collection of changesets as a series of patch emails

purge

PurgeExtension

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

record

RecordExtension

Select working directory changes to commit by hunk à la darcs record

transplant

TransplantExtension

Cherry-picking, rebasing and changeset rewriting

win32text

Win32Extension

Manage line ending conversion for Windows repositories

2. Extensions provided by others

Name

Page

Description

cvscommit

CvscommitExtension

Push changesets to CVS

config

ConfigExtension

Manage hgrc files via dialogs and command line

digest

DigestExtension

Create and use small digest files for outgoing/bundle

diffstat

DiffstatExtension

Shortcut commands for displaying diffstat

easycommit

EasycommitExtension

Command-line GUI for committing changes

easymerge

EasymergeExtension

Command-line GUI for merging

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]

localbranch

LocalbranchExtension

Create clones inside your working directory

rdiff

RdiffExtension

allow diff to work against remote repositories

send

SendExtension

Automatic send of bundle containing changesets missing on remote, like darcs send

qct

QctExtension

provide access to the Qct commit tool

graphviz

GraphvizExtension

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.


CategoryExtension

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