Differences between revisions 318 and 319
Revision 318 as of 2013-08-28 12:18:01
Size: 22453
Editor: AugieFackler
Comment:
Revision 319 as of 2013-08-29 19:35:40
Size: 327
Editor: AnnieTroy
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma section-numbers 2
= Using Mercurial Extensions =
Expanding the basic functionality of Mercurial with optional extensions.

<<TableOfContents>>

== Introduction ==
Mercurial is designed to offer a small, safe, and easy to use command set which is powerful enough for most users. Advanced users of Mercurial can be aided with the use of Mercurial extensions. Extensions allow the integration of powerful new features directly into the Mercurial core.

<!> Features in extensions may not conform to Mercurial's usual standards for safety, reliability, and ease of use.

Built-in help on extensions is available with '`hg help extensions`'. To get help about an enabled extension, run '`hg help <extension-name>`'.

== Enabling an extension ==
To enable the "foo" extension, either shipped with Mercurial or in the Python search path, create an entry for it in your hgrc, like this:

{{{
[extensions]
foo =
}}}
You may also specify the full path to an extension (which may be either a .py file or a folder containing {{{__init__.py}}}):

{{{
[extensions]
myfeature = ~/.hgext/myfeature.py
}}}
To get an extension which is not shipped with Mercurial, just download it to any place in your filesystem. In the example above it was downloaded to {{{~/.hgext/}}}.

To explicitly disable an extension enabled in an hgrc 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 = !
}}}
Extensions can often be configured further in an extension specific section in the same configuration file.

== Extensions bundled with Mercurial ==
These extensions are maintained by the Mercurial project and are distributed together with Mercurial.
||''Name'' ||''Page'' ||''Description'' ||
||'''acl''' ||AclExtension ||Manage commit access to parts of a repo using control lists ||
||'''alias''' ||AliasExtension ||User-defined command aliases ('''built-in since Mercurial 1.3''') ||
||'''bisect''' ||BisectExtension ||Quickly find the revision that introduces a bug or feature bisecting the history tree (O(log(n)) ('''built-in since Mercurial 1.0''') ||
||'''blackbox''' ||BlackboxExtension ||Log events to .hg/blackbox.log for post-mortem debugging ||
||'''bookmarks''' ||BookmarksExtension ||Markers on commits that move on commit ('''built-in since Mercurial 1.8''') ||
||'''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 ||
||'''color''' ||ColorExtension ||Color output for the diff, status and qseries commands ||
||'''eol''' ||EolExtension ||Translate line-ending characters between working copy and repository ||
||'''extdiff''' ||ExtdiffExtension ||Compare changes using external programs ||
||'''factotum''' ||FactotumExtension ||HTTP authentication with factotum ||
||'''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 ||
||'''hgcia''' ||HgciaExtension ||Send notifications to [[http://cia.navi.cx|CIA]] ||
||'''hgk''' ||HgkExtension ||Graphical repository and history browser based on gitk ||
||'''highlight''' ||HighlightExtension ||Highlight syntax in the file revision view of hgweb ||
||'''histedit''' ||HisteditExtension ||Edit, fold, drop changesets in the style of {{{git rebase --interactive}}} ||
||'''inotify''' ||InotifyExtension ||Use linux 2.6 inotify API for instantaneous status updates ||
||'''interhg''' ||InterhgExtension ||This extension allows you to change changelog and summary text just like InterWiki way ||
||'''keyword''' ||KeywordExtension ||Use CVS like keyword expansion in tracked files ||
||'''largefiles''' ||LargefilesExtension ||Track large binary files (new in 2.0) ||
||'''mq''' ||MqExtension ||Mercurial Patch Queues - manage changes as series of patches ||
||'''notify''' ||NotifyExtension ||Send email to subscribed addresses to notify repository changes ||
||'''pager''' ||PagerExtension ||Allows you to choose a pager ||
||'''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 ||
||'''progress''' ||ProgressExtension ||Show progress bars for some actions (new in 1.5) ||
||'''purge''' ||PurgeExtension ||Purge all files and dirs in the repository that are not being tracked by Mercurial ||
||'''rebase''' ||RebaseExtension ||Move revisions from a point to another ||
||'''record''' ||RecordExtension ||Select working directory changes to commit by hunk à la darcs record ||
||'''relink''' ||RelinkExtension ||Recreates hardlinks between repository clones ||
||'''schemes''' ||SchemesExtension ||Add shortcuts to urls as url schemes ||
||'''share''' ||ShareExtension ||Share repository history between multiple repos ||
||'''transplant''' ||TransplantExtension ||Cherry-picking, rebasing and changeset rewriting ||
||'''win32mbcs''' ||Win32mbcsExtension ||Allow to use shift_jis/big5 filenames on Windows. ||
||'''win32text''' ||Win32TextExtension ||Manage line ending conversion for Windows repositories ||
||'''zeroconf''' ||ZeroconfExtension ||Announce and browse respositories via zeroconf/bonjour ||


== Extensions provided by others ==
These extensions are '''not''' distributed together with Mercurial. The Mercurial project provides no guarantees about these and does '''not''' maintain or test them.

Note that Mercurial explicitly does '''not''' provide a ''stable API'' for extension programmers, so it is up to their respective providers/maintainers to adapt them to [[ApiChanges|API changes]].
||''Name'' ||''Page'' ||''Description'' ||
||'''actionlog''' ||ActionLogExtension ||Provides hook intended to help keep track of a remote repository's state that multiple people have access to update ||
||'''activity''' ||ActivityExtension ||Create an image representing the activity of the repository ||
||'''allpaths''' ||AllPathsExtension ||Run commands like ```push``` on multiple paths ||
||'''artemis''' ||ArtemisExtension ||Simple and light-weight issue tracker ||
||'''attic''' ||AtticExtension ||Easily deal with individual patches ||
||'''autopager''' ||AutopagerExtension ||Invoke pager when output is longer than one screen ||
||'''autosync''' ||AutoSyncExtension ||Automated duplex synchronization with another repository ||
||'''b''' ||[[bExtension]] ||Distributed bug tracker based off the lightweight task manager [[http://stevelosh.com/projects/t/|t]] ||
||'''bfiles''' ||BfilesExtension ||Handle large binary files ||
||'''bigfiles''' ||BigfilesExtension ||Support versions of big files with storage outside hg repo ||
||'''boundmode''' ||BoundModeExtension ||Enables a bound mode (commit command auto-pushes) ||
||'''branchhead''' ||BranchHeadExtension ||Show head(s) of the branch the working directory or given revision is on ||
||'''buglink''' ||BugLinkExtension ||Allow to link changesets and Issue IDs ||
||'''bugtracker''' ||BugtrackerExtension ||A tiny distributed bugtracking extension for Mercurial ||
||'''casefold''' ||CaseFoldExtension ||Successful unjams case-folding conflicts ||
||'''caseguard''' ||CaseGuardExtension ||Prevents users from adding files to a repository if that could cause a CaseFolding collision ||
||'''casestop''' ||CasestopExtension ||Stops case-folding conflicts on commit ||
||'''cedit''' ||CeditExtension ||Command line editor for configuration files, never manually edit hgrc files again ||
||'''changelog''' ||ChangelogExtension ||Auto-generate commit message from changelog entry ||
||'''chart''' ||ChartExtension ||Display activity graphs (see also ActivityExtension and ChurnExtension) ||
||'''checkfiles''' ||CheckFilesExtension ||Commit hook and command to check for and fix tabs and trailing whitespace ||
||'''cifiles''' ||CifilesExtension ||Print the names of all checked-in files ||
||'''cloc''' ||ClocExtension ||Count lines of source code ||
||'''codesmell''' ||CodesmellExtension ||Ask before committing "smelly" changes ||
||'''commits''' ||CommitsExtension ||Commit modified files as multiple changesets at once ||
||'''commitsigs''' ||CommitsigsExtension ||Embed GnuPG and OpenSSL signatures directly into changesets ||
||'''committer''' ||CommitterExtension ||Record the committer when you are not the author of a changeset. ||
||'''compass''' ||CompassExtension ||Find your way in repositories with multiple heads, branches and bookmarks. ||
||'''collapse''' ||CollapseExtension ||Collapse consecutive changesets into one ||
||'''config''' ||ConfigExtensionCommandLine ||Manage config files via command line only ||
||'''config''' ||ConfigExtension ||Manage hgrc files via dialogs and command line ||
||'''contains''' ||ContainsExtension ||Test whether a changset is contained in a branch ||
||'''crecord''' ||CrecordExtension ||Select graphically which files/hunk/lines to commit ||
||'''cutehg''' ||CuteHgExtension ||A growing set of easy to install and use dialogs for mercurial commands ||
||'''cvscommit''' ||CvscommitExtension ||Push changesets to CVS ||
||'''defpasswd''' ||DefpasswdExtension ||Automatically provide credentials (username/passwords) read from a file. ||
||'''deps''' ||DepsExtension ||Create and manage versioned repository dependencies ||
||'''digest''' ||DigestExtension ||Create and use small digest files for outgoing/bundle ||
||'''dotlog''' ||DotLogExtension ||Yet Another DOT grapher ||
||'''duckcharset''' ||DuckcharsetExtension ||Detect/convert character encoding when displaying ||
||'''easycommit''' ||EasycommitExtension ||Command-line GUI for committing changes ||
||'''easymerge''' ||EasymergeExtension ||Command-line GUI for merging ||
||'''editcommitmsgs''' ||EditcommitmsgsExtension ||Change commit messages for all applied mq patches in one go ||
||'''exportfiles''' ||[[http://bitbucket.org/albert_brand/hgexportfiles/wiki|ExportFilesExtension]] ||Export all files changed in a revision or revision range to a directory. ||
||'''exclude''' ||ExcludeExtension ||Exclude some modified files by default (e.g., config files that are always modified) ||
||'''excludechangesets''' ||ExcludeChangesetsExtension ||Exclude "bad" changesets from being re-added to a central repository ||
||'''fastimport''' ||FastImportExtension ||Read a git "fast import" stream and turn it into changesets in a Mercurial repository ||
||'''filereview''' ||FileReviewExtension ||Perform code review for any project using mercurial ||
||'''fixcase''' ||FixcaseExtension ||Fix problems where an external tool has changed the case of a filename ||
||'''fixfrozenexts''' ||FixfrozenextsExtension ||Fix extensions.disabled() to work on frozen package ||
||'''fixrenames''' ||FixrenamesExtension ||Replay old history to add rename information ||
||'''fixutf8''' ||FixUtf8Extension ||Fix problems on non-utf8 systems with filenames (Windows never supports utf8 filenames) ||
||'''foreign''' ||ForeignExtension ||Interactively register or delete foreign/unknown files ||
||'''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]] ||
||'''flow''' ||FlowExtension ||Support for the generalized Driessen's model ||
||'''ftp''' ||[[FTPExtension]] ||Manage uploaded snapshots on FTP server ||
||'''graphviz''' ||GraphvizExtension ||Generate DOT language source to visualize changeset tree ||
||'''group''' ||GroupExtension ||Allow to ''visually'' regroup a set of changesets ||
||'''grepfile''' ||GrepfileExtension || Search files for a regular expression ||
||'''guestrepo''' ||GuestrepoExtension ||Handle nested repositories ||
||'''hgban''' ||BanChangesetsExtension ||Ban specific changesets from being reintroduced to a repository after being stripped / removed. ||
||'''hg-git''' ||HgGit ||Push to and pull from a [[http://git-scm.com/|Git]] server ||
||'''hg-github'''||HgGithubExtension ||Allow mirroring Mercurial repositories in Bitbucket to Github ||
||'''hg-kerberos''' ||[[http://bitbucket.org/hstuart/hg-kerberos|hg-kerberos]] ||Kerberos authentication extension by Henrik Stuart ||
||'''hg-remotebranches''' ||[[https://bitbucket.org/durin42/hg-remotebranches|hg-remotebranches]] ||Keeps track of remote branch heads for each entry in [paths] and exposes them as tags. ||
||'''hgbb''' ||BitbucketExtension ||Several helpers for working with bitbucket.org repositories ||
||'''hgexternals''' ||HgExternals ||Pull external repositories into a Mercurial repository ||
||'''hgext.markdown''' ||MarkdownExtension || Markdown Extension for hgweb ||
||'''hgflowdock''' ||FlowdockExtension ||Send notifications to flowdock.com ||
||'''hglist''' ||[[http://alastairs-place.net/projects/hglist|hglist]] ||An `ls` command for Mercurial ||
||'''hglock-le''' ||[[HgLockLEExtension]] ||Allow users to inform each other in case of parallel file modification in one local repository ||
||'''hgnested''' ||HgNestedExtension ||Manage nested repositories ||
||'''hgopenurl''' ||[[HgOpenURLExtension]] ||Quickly show repository URLs in the browser ||
||'''hgreview''' ||HgReviewExtension ||Upload / refresh and fetch patches from rietveld codereview instances ||
||'''hgsftp''' ||[[http://os.ghalkes.nl/hgsftp.html|hgsftp]] ||Use Mercurial over SFTP ||
||'''hgsite''' ||HgSiteExtension ||Serve a web site straight out of a Mercurial repository ||
||'''hgssoauthentication''' ||[[https://bitbucket.org/domruf/hgssoauthentication|hgssoauthentication]] ||Allows you to use single sign-on authenticate with web servers that use NTLM or kerberos authentication. ||
||'''hgsubversion''' ||HgSubversion ||Use Mercurial as a [[http://subversion.tigris.org/|Subversion]] client ||
||'''hgview''' ||[[http://www.logilab.org/project/hgview|hgview]] ||Tool for visually navigating a repository history and comparing multiple revisions ||
||'''hg-textauth''' ||[[https://bitbucket.org/hstuart/hg-textauth|hg-textauth]] ||Plaintext file authentication ||
||'''hgtrac''' ||HgTracExtension ||Mercurial/Trac Integration Hook (pre/post hooks for Trac/Mercurial) ||
||'''hgxmpp''' ||HgJabberExtension ||Mercurial Jabber Notification Hook (pre/post hooks for Jabber/Mercurial) ||
||'''histpush''' ||HistpushExtension ||Record locally which revisions have been pushed ||
||'''hotfiles''' ||HotFilesExtension ||Designates the files the most susceptible to contain issues ||
||'''importfs''' ||ImportfsExtension ||Imports a set of files from a given file-system into a Mercurial repository as a changeset ||
||'''info''' ||InfoExtension ||Display basic information about a repository ||
||'''infocalypse''' ||[[Infocalypse]] ||Share code efficiently, decentrally, anonymous and encrypted over Freenet ||
||'''kerberos''' ||KerberosExtension ||Kerberos Authentication over HTTP support ||
||'''keyring''' ||KeyringExtension ||Securely save HTTP passwords in os-specific keyring (Gnome Keyring, KWallet, OSXKeyChain, encrypted file) ||
||'''lighttags''' ||LightTagsExtension ||Make local tags behave like lightweight tags (shared over clone and pull, not version controlled) ||
||'''localbranch''' ||LocalbranchExtension ||Create clones inside your working directory ||
||'''lock''' ||LockExtension ||Take locks on resources ||
||'''makewritable''' ||MakewritableExtension ||Interactively removes read-only flags from files ||
||'''mbox''' ||MboxExtension ||Import patches from unix mailboxes in MQ ||
||'''mergediff''' ||MergediffExtension ||Show only the changes introduced by a merge ||
||'''mergeutil''' ||MergeUtilExtension ||Useful utilities for merging branches ||
||'''moinport''' ||MoinportExtension ||Fetch changes from MoinMoin Wiki ||
||'''mqcollab''' ||MqCollabExtension ||Manage patches in several parallel queues when working with others ||
||'''multirepo''' ||MultirepoExtension ||Allow commands to affect multiple repositories simultaneously ||
||'''mutable-branches''' ||MutableBranches ||Rename named branches ||
||'''nearest''' ||NearestExtension ||Display the nearest tag from a given changeset ||
||'''onsub''' ||OnsubExtension ||Recursively execute a command in each subrepository ||
||'''pack''' ||[[https://sites.google.com/site/alessandronegrin/pack-mercurial-extension|PackExtension]] ||Pack all files involved in the give revision (if your customer does not know what a diff file is) ||
||'''paste''' ||PasteExtension ||Paste changes to pastebin ||
||'''pastebin''' ||PastebinExtension ||Paste changes to public and private pastebins ||
||'''patience''' ||PatienceExtension ||Generate diffs using Bram Cohen's patience diff algorithm ||
||'''pbranch''' ||PatchBranchExtension ||Collaborative and/or long-term patch development and maintenance ||
||'''perfarce''' ||PerfarceExtension ||Allow Hg to pull from and push to a Perforce depot ||
||'''projrc''' ||ProjrcExtension ||Parse project specific config from .hg/projrc ||
||'''prompt''' ||PromptExtension ||Put information about the current repository into a shell prompt ||
||'''publishall''' ||PublishAllExtension ||Publish to all your set repositories (ie: paths) ||
||'''punchcard''' ||PunchcardExtension ||Generate a "punch card" graph of your commit habits ||
||'''pushlog''' ||MozillaPushlogExtension ||Tracks who pushed what to a repository ||
||'''release''' ||ReleaseExtension ||Automatize tasks to deal with release management (tag creation, archiving, ...) ||
||'''remote-bookmarks''' ||[[http://solovyov.net/remote-bookmarks/|RemoteBookmarksExtension]] ||Implementation of git-like bookmark tracking ||
||'''reviewboard''' ||ReviewboardExtension ||Post changesets for review to a [[http://www.review-board.org/|Review Board]] server ||
||'''qct''' ||QctExtension ||Provide access to the Qct commit tool ||
||'''qtimes''' ||QtimesExtension ||Save or restore modification times of files affected by patch queue ||
||'''qup''' ||QupExtension ||Move MQ patches to top of unapplied part of series ||
||'''rcpath''' ||RcpathExtension ||Displays Mercurial configuration file paths and names ||
||'''rebaseif''' ||RebaseIfExtension ||Command that rebases only if there are no conflicts, otherwise does a merge ||
||'''rdiff''' ||RdiffExtension ||Allow diff to work against remote repositories ||
||'''reposettings''' ||ReposettingsExtension ||Allow repo specific configuration from central configuration files ||
||'''rsync''' ||RemoteSyncExtension ||Keep your working directory in sync with remote files, that exist outside of the repository ||
||'''rupdate''' ||RemoteUpdateExtension ||Update a remote repository to a specified revision if the remote repository is hosted via ssh ||
||'''send''' ||SendExtension ||Automatic send of bundle containing changesets missing on remote, like darcs send ||
||'''shared_mq''' ||SharedMQExtension ||Allow shared repositories have same MQ queues ||
||'''shelve''' ||ShelveExtension ||Interactively select changes to set aside ||
||'''snap''' ||SnapExtension ||Version (big) file snapshots with storage outside a Mercurial repository ||
||'''softrebase''' ||SoftRebaseExtension ||Turn possibly complicated rebase calls into multiple simpler ones ||
||'''sonichg''' ||SonicHgExtension ||Record pushlog data, web interfaces to view pushlog & shortlog with slider, advanced search for pushlog, new file log page, full side-by-side diffs, regex filter, commit syntax warning and more! ||
||'''spellcheck''' ||SpellcheckExtension ||Interactively correct spelling errors in commit messages; also includes a hook to reject changesets with spelling errors in their commit messages ||
||'''subpaths''' ||SubpathsExtension ||Manage subpath remappings using a central file, distributed on clone and pull ||
||'''sync''' ||SyncExtension ||Perform pull, update/merge and push in a single click ||
||'''talaria''' ||TalariaExtension ||Manage simple hierarchical trees of HTML-documents, such as web-sites, documentation, etc ||
||'''tasks''' ||TasksExtension ||Manage tasks as collections of contiguous changesets ||
||'''textful''' ||TextfulExtension ||Convert binary file to text or handle character encoding when displaying ||
||'''tfs''' ||TfsExtension ||Update Team Foundation Server work items when bug ids are referenced in a changeset ||
||'''timestamp''' ||TimestampExtension ||Saves and restores file timestamps ||
||'''timestamp_mod''' ||TimestampModExtension ||Automatically Saves and restores file timestamps for all files in the repository. ||
||'''timetracker''' ||[[https://bitbucket.org/edulix/timetracker/wiki/Home|TimetrackerExtension]] ||Tracks the time spent on a project ||
||'''tpager''' ||TpagerExtension ||Mercurial pager with color support on Windows ||
||'''untouch''' ||UntouchExtension ||Save or restore modification times of files ||
||'''versions''' ||VersionsExtension ||Display the version information for Mercurial and all installed extensions. ||
||'''webuserdir''' ||WebUserDirExtension ||Host users' repositories under /~username/ on hgwebdir ||
||'''win32chcp''' ||Win32ChCpExtension ||Switches the Windows console into an encoding actually used by Mercurial on output. ||
||'''win32lfn''' ||Win32LongFileNamesExtension ||Allow manipulating files with names longer than 260 characters on Windows. ||
||'''win32xattrs''' ||Win32xattrsExtension ||handle windows-specific file attributes like "hidden" ||
||'''wincolor''' ||WinColorExtension ||Support colors on Windows consoles. ||
||'''zipdoc''' ||ZipdocExtension ||Version control zipped document formats like docx or odt as uncompressed zip archives to improve delta compression. ||




== See also ==
 * WritingExtensions and PublishingExtensions for information on creating new extensions

----
CategoryBundledExtension CategoryExtensionsByOthers

[[FrenchUsingExtensions|French]], [[JapaneseUsingExtensions|Japanese]], [[GermanUsingExtensions|German]]
Oleta Sartor is what you can call her and she feels at ease when people today use the comprehensive identify. Minnesota is the only area she's been residing in. Procuring is where her principal income comes from. To draw 3d graphics is the factor she enjoys most. You can often obtain her website here: http://crsi.pl/s/hzygr

Oleta Sartor is what you can call her and she feels at ease when people today use the comprehensive identify. Minnesota is the only area she's been residing in. Procuring is where her principal income comes from. To draw 3d graphics is the factor she enjoys most. You can often obtain her website here: http://crsi.pl/s/hzygr

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