- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
- <title>hgrc</title>
- <meta name="author" content="Bryan O'Sullivan <bos@serpentine.com>" />
- <meta name="organization" content="Mercurial" />
- <link rel="stylesheet" href="style.css" type="text/css" />
- </head>
- <body>
- <div class="document" id="hgrc">
- <span id="hgrc-5"></span>
- <h1 class="title">hgrc</h1>
- <h2 class="subtitle" id="configuration-files-for-mercurial">configuration files for Mercurial</h2>
- <table class="docinfo" frame="void" rules="none">
- <col class="docinfo-name" />
- <col class="docinfo-content" />
- <tbody valign="top">
- <tr><th class="docinfo-name">Author:</th>
- <td>Bryan O'Sullivan <<a class="reference external" href="mailto:bos@serpentine.com">bos@serpentine.com</a>></td></tr>
- <tr><th class="docinfo-name">Organization:</th>
- <td>Mercurial</td></tr>
- <tr class="field"><th class="docinfo-name">Manual section:</th><td class="field-body">5</td>
- </tr>
- <tr class="field"><th class="docinfo-name">Manual group:</th><td class="field-body">Mercurial Manual</td>
- </tr>
- </tbody>
- </table>
- <div class="contents htmlonly topic" id="contents">
- <p class="topic-title first">Contents</p>
- <ul class="simple">
- <li><a class="reference internal" href="#description" id="id2">Description</a></li>
- <li><a class="reference internal" href="#files" id="id3">Files</a></li>
- <li><a class="reference internal" href="#syntax" id="id4">Syntax</a></li>
- <li><a class="reference internal" href="#sections" id="id5">Sections</a><ul>
- <li><a class="reference internal" href="#alias" id="id6"><tt class="docutils literal">alias</tt></a></li>
- <li><a class="reference internal" href="#annotate" id="id7"><tt class="docutils literal">annotate</tt></a></li>
- <li><a class="reference internal" href="#auth" id="id8"><tt class="docutils literal">auth</tt></a></li>
- <li><a class="reference internal" href="#committemplate" id="id9"><tt class="docutils literal">committemplate</tt></a></li>
- <li><a class="reference internal" href="#decode-encode" id="id10"><tt class="docutils literal">decode/encode</tt></a></li>
- <li><a class="reference internal" href="#defaults" id="id11"><tt class="docutils literal">defaults</tt></a></li>
- <li><a class="reference internal" href="#diff" id="id12"><tt class="docutils literal">diff</tt></a></li>
- <li><a class="reference internal" href="#email" id="id13"><tt class="docutils literal">email</tt></a></li>
- <li><a class="reference internal" href="#extensions" id="id14"><tt class="docutils literal">extensions</tt></a></li>
- <li><a class="reference internal" href="#format" id="id15"><tt class="docutils literal">format</tt></a></li>
- <li><a class="reference internal" href="#graph" id="id16"><tt class="docutils literal">graph</tt></a></li>
- <li><a class="reference internal" href="#hooks" id="id17"><tt class="docutils literal">hooks</tt></a></li>
- <li><a class="reference internal" href="#hostfingerprints" id="id18"><tt class="docutils literal">hostfingerprints</tt></a></li>
- <li><a class="reference internal" href="#http-proxy" id="id19"><tt class="docutils literal">http_proxy</tt></a></li>
- <li><a class="reference internal" href="#merge-patterns" id="id20"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></li>
- <li><a class="reference internal" href="#merge-tools" id="id21"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></li>
- <li><a class="reference internal" href="#patch" id="id22"><tt class="docutils literal">patch</tt></a></li>
- <li><a class="reference internal" href="#paths" id="id23"><tt class="docutils literal">paths</tt></a></li>
- <li><a class="reference internal" href="#phases" id="id24"><tt class="docutils literal">phases</tt></a></li>
- <li><a class="reference internal" href="#profiling" id="id25"><tt class="docutils literal">profiling</tt></a></li>
- <li><a class="reference internal" href="#progress" id="id26"><tt class="docutils literal">progress</tt></a></li>
- <li><a class="reference internal" href="#revsetalias" id="id27"><tt class="docutils literal">revsetalias</tt></a></li>
- <li><a class="reference internal" href="#server" id="id28"><tt class="docutils literal">server</tt></a></li>
- <li><a class="reference internal" href="#smtp" id="id29"><tt class="docutils literal">smtp</tt></a></li>
- <li><a class="reference internal" href="#subpaths" id="id30"><tt class="docutils literal">subpaths</tt></a></li>
- <li><a class="reference internal" href="#trusted" id="id31"><tt class="docutils literal">trusted</tt></a></li>
- <li><a class="reference internal" href="#ui" id="id32"><tt class="docutils literal">ui</tt></a></li>
- <li><a class="reference internal" href="#web" id="id33"><tt class="docutils literal">web</tt></a></li>
- <li><a class="reference internal" href="#websub" id="id34"><tt class="docutils literal">websub</tt></a></li>
- <li><a class="reference internal" href="#worker" id="id35"><tt class="docutils literal">worker</tt></a></li>
- </ul>
- </li>
- <li><a class="reference internal" href="#author" id="id36">Author</a></li>
- <li><a class="reference internal" href="#see-also" id="id37">See Also</a></li>
- <li><a class="reference internal" href="#copying" id="id38">Copying</a></li>
- </ul>
- </div>
- <div class="section" id="description">
- <h1><a class="toc-backref" href="#contents">Description</a></h1>
- <p id="hgrc-5-gendoc">The Mercurial system uses a set of configuration files to control
- aspects of its behavior.</p>
- <p>The configuration files use a simple ini-file format. A configuration
- file consists of sections, led by a <tt class="docutils literal">[section]</tt> header and followed
- by <tt class="docutils literal">name = value</tt> entries:</p>
- <pre class="literal-block">
- [ui]
- username = Firstname Lastname <firstname.lastname@example.net>
- verbose = True
- </pre>
- <p>The above entries will be referred to as <tt class="docutils literal">ui.username</tt> and
- <tt class="docutils literal">ui.verbose</tt>, respectively. See the Syntax section below.</p>
- </div>
- <div class="section" id="files">
- <h1><a class="toc-backref" href="#contents">Files</a></h1>
- <p>Mercurial reads configuration data from several files, if they exist.
- These files do not exist by default and you will have to create the
- appropriate configuration files yourself: global configuration like
- the username setting is typically put into
- <tt class="docutils literal"><span class="pre">%USERPROFILE%\mercurial.ini</span></tt> or <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt> and local
- configuration is put into the per-repository <tt class="docutils literal"><span class="pre"><repo>/.hg/hgrc</span></tt> file.</p>
- <p>The names of these files depend on the system on which Mercurial is
- installed. <tt class="docutils literal">*.rc</tt> files from a single directory are read in
- alphabetical order, later ones overriding earlier ones. Where multiple
- paths are given below, settings from earlier paths override later
- ones.</p>
- <div class="verbose-unix container">
- <p>On Unix, the following files are consulted:</p>
- <ul class="simple">
- <li><tt class="docutils literal"><span class="pre"><repo>/.hg/hgrc</span></tt> (per-repository)</li>
- <li><tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre"><install-root>/etc/mercurial/hgrc</span></tt> (per-installation)</li>
- <li><tt class="docutils literal"><span class="pre"><install-root>/etc/mercurial/hgrc.d/*.rc</span></tt> (per-installation)</li>
- <li><tt class="docutils literal">/etc/mercurial/hgrc</tt> (per-system)</li>
- <li><tt class="docutils literal"><span class="pre">/etc/mercurial/hgrc.d/*.rc</span></tt> (per-system)</li>
- <li><tt class="docutils literal"><span class="pre"><internal>/default.d/*.rc</span></tt> (defaults)</li>
- </ul>
- </div>
- <div class="verbose-windows container">
- <p>On Windows, the following files are consulted:</p>
- <ul class="simple">
- <li><tt class="docutils literal"><span class="pre"><repo>/.hg/hgrc</span></tt> (per-repository)</li>
- <li><tt class="docutils literal"><span class="pre">%USERPROFILE%\.hgrc</span></tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre">%USERPROFILE%\Mercurial.ini</span></tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre">%HOME%\.hgrc</span></tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre">%HOME%\Mercurial.ini</span></tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre"><install-dir>\Mercurial.ini</span></tt> (per-installation)</li>
- <li><tt class="docutils literal"><span class="pre"><install-dir>\hgrc.d\*.rc</span></tt> (per-installation)</li>
- <li><tt class="docutils literal">HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial</tt> (per-installation)</li>
- <li><tt class="docutils literal"><span class="pre"><internal>/default.d/*.rc</span></tt> (defaults)</li>
- </ul>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">The registry key <tt class="docutils literal">HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial</tt>
- is used when running 32-bit Python on 64-bit Windows.</p>
- </div>
- </div>
- <div class="verbose-plan9 container">
- <p>On Plan9, the following files are consulted:</p>
- <ul class="simple">
- <li><tt class="docutils literal"><span class="pre"><repo>/.hg/hgrc</span></tt> (per-repository)</li>
- <li><tt class="docutils literal">$home/lib/hgrc</tt> (per-user)</li>
- <li><tt class="docutils literal"><span class="pre"><install-root>/lib/mercurial/hgrc</span></tt> (per-installation)</li>
- <li><tt class="docutils literal"><span class="pre"><install-root>/lib/mercurial/hgrc.d/*.rc</span></tt> (per-installation)</li>
- <li><tt class="docutils literal">/lib/mercurial/hgrc</tt> (per-system)</li>
- <li><tt class="docutils literal"><span class="pre">/lib/mercurial/hgrc.d/*.rc</span></tt> (per-system)</li>
- <li><tt class="docutils literal"><span class="pre"><internal>/default.d/*.rc</span></tt> (defaults)</li>
- </ul>
- </div>
- <p>Per-repository configuration options only apply in a
- particular repository. This file is not version-controlled, and
- will not get transferred during a "clone" operation. Options in
- this file override options in all other configuration files. On
- Plan 9 and Unix, most of this file will be ignored if it doesn't
- belong to a trusted user or to a trusted group. See the documentation
- for the <tt class="docutils literal">[trusted]</tt> section below for more details.</p>
- <p>Per-user configuration file(s) are for the user running Mercurial. On
- Windows 9x, <tt class="docutils literal">%HOME%</tt> is replaced by <tt class="docutils literal">%APPDATA%</tt>. Options in these
- files apply to all Mercurial commands executed by this user in any
- directory. Options in these files override per-system and per-installation
- options.</p>
- <p>Per-installation configuration files are searched for in the
- directory where Mercurial is installed. <tt class="docutils literal"><span class="pre"><install-root></span></tt> is the
- parent directory of the <strong>hg</strong> executable (or symlink) being run. For
- example, if installed in <tt class="docutils literal">/shared/tools/bin/hg</tt>, Mercurial will look
- in <tt class="docutils literal">/shared/tools/etc/mercurial/hgrc</tt>. Options in these files apply
- to all Mercurial commands executed by any user in any directory.</p>
- <p>Per-installation configuration files are for the system on
- which Mercurial is running. Options in these files apply to all
- Mercurial commands executed by any user in any directory. Registry
- keys contain PATH-like strings, every part of which must reference
- a <tt class="docutils literal">Mercurial.ini</tt> file or be a directory where <tt class="docutils literal">*.rc</tt> files will
- be read. Mercurial checks each of these locations in the specified
- order until one or more configuration files are detected.</p>
- <p>Per-system configuration files are for the system on which Mercurial
- is running. Options in these files apply to all Mercurial commands
- executed by any user in any directory. Options in these files
- override per-installation options.</p>
- <p>Mercurial comes with some default configuration. The default configuration
- files are installed with Mercurial and will be overwritten on upgrades. Default
- configuration files should never be edited by users or administrators but can
- be overridden in other configuration files. So far the directory only contains
- merge tool configuration but packagers can also put other default configuration
- there.</p>
- </div>
- <div class="section" id="syntax">
- <h1><a class="toc-backref" href="#contents">Syntax</a></h1>
- <p>A configuration file consists of sections, led by a <tt class="docutils literal">[section]</tt> header
- and followed by <tt class="docutils literal">name = value</tt> entries (sometimes called
- <tt class="docutils literal">configuration keys</tt>):</p>
- <pre class="literal-block">
- [spam]
- eggs=ham
- green=
- eggs
- </pre>
- <p>Each line contains one entry. If the lines that follow are indented,
- they are treated as continuations of that entry. Leading whitespace is
- removed from values. Empty lines are skipped. Lines beginning with
- <tt class="docutils literal">#</tt> or <tt class="docutils literal">;</tt> are ignored and may be used to provide comments.</p>
- <p>Configuration keys can be set multiple times, in which case Mercurial
- will use the value that was configured last. As an example:</p>
- <pre class="literal-block">
- [spam]
- eggs=large
- ham=serrano
- eggs=small
- </pre>
- <p>This would set the configuration key named <tt class="docutils literal">eggs</tt> to <tt class="docutils literal">small</tt>.</p>
- <p>It is also possible to define a section multiple times. A section can
- be redefined on the same and/or on different configuration files. For
- example:</p>
- <pre class="literal-block">
- [foo]
- eggs=large
- ham=serrano
- eggs=small
- [bar]
- eggs=ham
- green=
- eggs
- [foo]
- ham=prosciutto
- eggs=medium
- bread=toasted
- </pre>
- <p>This would set the <tt class="docutils literal">eggs</tt>, <tt class="docutils literal">ham</tt>, and <tt class="docutils literal">bread</tt> configuration keys
- of the <tt class="docutils literal">foo</tt> section to <tt class="docutils literal">medium</tt>, <tt class="docutils literal">prosciutto</tt>, and <tt class="docutils literal">toasted</tt>,
- respectively. As you can see there only thing that matters is the last
- value that was set for each of the configuration keys.</p>
- <p>If a configuration key is set multiple times in different
- configuration files the final value will depend on the order in which
- the different configuration files are read, with settings from earlier
- paths overriding later ones as described on the <tt class="docutils literal">Files</tt> section
- above.</p>
- <p>A line of the form <tt class="docutils literal">%include file</tt> will include <tt class="docutils literal">file</tt> into the
- current configuration file. The inclusion is recursive, which means
- that included files can include other files. Filenames are relative to
- the configuration file in which the <tt class="docutils literal">%include</tt> directive is found.
- Environment variables and <tt class="docutils literal">~user</tt> constructs are expanded in
- <tt class="docutils literal">file</tt>. This lets you do something like:</p>
- <pre class="literal-block">
- %include ~/.hgrc.d/$HOST.rc
- </pre>
- <p>to include a different configuration file on each computer you use.</p>
- <p>A line with <tt class="docutils literal">%unset name</tt> will remove <tt class="docutils literal">name</tt> from the current
- section, if it has been set previously.</p>
- <p>The values are either free-form text strings, lists of text strings,
- or Boolean values. Boolean values can be set to true using any of "1",
- "yes", "true", or "on" and to false using "0", "no", "false", or "off"
- (all case insensitive).</p>
- <p>List values are separated by whitespace or comma, except when values are
- placed in double quotation marks:</p>
- <pre class="literal-block">
- allow_read = "John Doe, PhD", brian, betty
- </pre>
- <p>Quotation marks can be escaped by prefixing them with a backslash. Only
- quotation marks at the beginning of a word is counted as a quotation
- (e.g., <tt class="docutils literal">foo"bar baz</tt> is the list of <tt class="docutils literal">foo"bar</tt> and <tt class="docutils literal">baz</tt>).</p>
- </div>
- <div class="section" id="sections">
- <h1><a class="toc-backref" href="#contents">Sections</a></h1>
- <p>This section describes the different sections that may appear in a
- Mercurial configuration file, the purpose of each section, its possible
- keys, and their possible values.</p>
- <div class="section" id="alias">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">alias</tt></a></h2>
- <p>Defines command aliases.
- Aliases allow you to define your own commands in terms of other
- commands (or aliases), optionally including arguments. Positional
- arguments in the form of <tt class="docutils literal">$1</tt>, <tt class="docutils literal">$2</tt>, etc in the alias definition
- are expanded by Mercurial before execution. Positional arguments not
- already used by <tt class="docutils literal">$N</tt> in the definition are put at the end of the
- command to be executed.</p>
- <p>Alias definitions consist of lines of the form:</p>
- <pre class="literal-block">
- <alias> = <command> [<argument>]...
- </pre>
- <p>For example, this definition:</p>
- <pre class="literal-block">
- latest = log --limit 5
- </pre>
- <p>creates a new command <tt class="docutils literal">latest</tt> that shows only the five most recent
- changesets. You can define subsequent aliases using earlier ones:</p>
- <pre class="literal-block">
- stable5 = latest -b stable
- </pre>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">It is possible to create aliases with the same names as
- existing commands, which will then override the original
- definitions. This is almost always a bad idea!</p>
- </div>
- <p>An alias can start with an exclamation point (<tt class="docutils literal">!</tt>) to make it a
- shell alias. A shell alias is executed with the shell and will let you
- run arbitrary commands. As an example,</p>
- <pre class="literal-block">
- echo = !echo $@
- </pre>
- <p>will let you do <tt class="docutils literal">hg echo foo</tt> to have <tt class="docutils literal">foo</tt> printed in your
- terminal. A better example might be:</p>
- <pre class="literal-block">
- purge = !$HG status --no-status --unknown -0 | xargs -0 rm
- </pre>
- <p>which will make <tt class="docutils literal">hg purge</tt> delete all unknown files in the
- repository in the same manner as the purge extension.</p>
- <p>Positional arguments like <tt class="docutils literal">$1</tt>, <tt class="docutils literal">$2</tt>, etc. in the alias definition
- expand to the command arguments. Unmatched arguments are
- removed. <tt class="docutils literal">$0</tt> expands to the alias name and <tt class="docutils literal">$@</tt> expands to all
- arguments separated by a space. <tt class="docutils literal"><span class="pre">"$@"</span></tt> (with quotes) expands to all
- arguments quoted individually and separated by a space. These expansions
- happen before the command is passed to the shell.</p>
- <p>Shell aliases are executed in an environment where <tt class="docutils literal">$HG</tt> expands to
- the path of the Mercurial that was used to execute the alias. This is
- useful when you want to call further Mercurial commands in a shell
- alias, as was done above for the purge alias. In addition,
- <tt class="docutils literal">$HG_ARGS</tt> expands to the arguments given to Mercurial. In the <tt class="docutils literal">hg
- echo foo</tt> call above, <tt class="docutils literal">$HG_ARGS</tt> would expand to <tt class="docutils literal">echo foo</tt>.</p>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">Some global configuration options such as <tt class="docutils literal"><span class="pre">-R</span></tt> are
- processed before shell aliases and will thus not be passed to
- aliases.</p>
- </div>
- </div>
- <div class="section" id="annotate">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">annotate</tt></a></h2>
- <p>Settings used when displaying file annotations. All values are
- Booleans and default to False. See <tt class="docutils literal">diff</tt> section for related
- options for the diff command.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">ignorews</tt></dt>
- <dd>Ignore white space when comparing lines.</dd>
- <dt><tt class="docutils literal">ignorewsamount</tt></dt>
- <dd>Ignore changes in the amount of white space.</dd>
- <dt><tt class="docutils literal">ignoreblanklines</tt></dt>
- <dd>Ignore changes whose lines are all blank.</dd>
- </dl>
- </div>
- <div class="section" id="auth">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">auth</tt></a></h2>
- <p>Authentication credentials for HTTP authentication. This section
- allows you to store usernames and passwords for use when logging
- <em>into</em> HTTP servers. See the <tt class="docutils literal">[web]</tt> configuration section if
- you want to configure <em>who</em> can login to your HTTP server.</p>
- <p>Each line has the following format:</p>
- <pre class="literal-block">
- <name>.<argument> = <value>
- </pre>
- <p>where <tt class="docutils literal"><name></tt> is used to group arguments into authentication
- entries. Example:</p>
- <pre class="literal-block">
- foo.prefix = hg.intevation.org/mercurial
- foo.username = foo
- foo.password = bar
- foo.schemes = http https
- bar.prefix = secure.example.org
- bar.key = path/to/file.key
- bar.cert = path/to/file.cert
- bar.schemes = https
- </pre>
- <p>Supported arguments:</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">prefix</tt></dt>
- <dd>Either <tt class="docutils literal">*</tt> or a URI prefix with or without the scheme part.
- The authentication entry with the longest matching prefix is used
- (where <tt class="docutils literal">*</tt> matches everything and counts as a match of length
- 1). If the prefix doesn't include a scheme, the match is performed
- against the URI with its scheme stripped as well, and the schemes
- argument, q.v., is then subsequently consulted.</dd>
- <dt><tt class="docutils literal">username</tt></dt>
- <dd>Optional. Username to authenticate with. If not given, and the
- remote site requires basic or digest authentication, the user will
- be prompted for it. Environment variables are expanded in the
- username letting you do <tt class="docutils literal">foo.username = $USER</tt>. If the URI
- includes a username, only <tt class="docutils literal">[auth]</tt> entries with a matching
- username or without a username will be considered.</dd>
- <dt><tt class="docutils literal">password</tt></dt>
- <dd>Optional. Password to authenticate with. If not given, and the
- remote site requires basic or digest authentication, the user
- will be prompted for it.</dd>
- <dt><tt class="docutils literal">key</tt></dt>
- <dd>Optional. PEM encoded client certificate key file. Environment
- variables are expanded in the filename.</dd>
- <dt><tt class="docutils literal">cert</tt></dt>
- <dd>Optional. PEM encoded client certificate chain file. Environment
- variables are expanded in the filename.</dd>
- <dt><tt class="docutils literal">schemes</tt></dt>
- <dd>Optional. Space separated list of URI schemes to use this
- authentication entry with. Only used if the prefix doesn't include
- a scheme. Supported schemes are http and https. They will match
- static-http and static-https respectively, as well.
- Default: https.</dd>
- </dl>
- <p>If no suitable authentication entry is found, the user is prompted
- for credentials as usual if required by the remote.</p>
- </div>
- <div class="section" id="committemplate">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">committemplate</tt></a></h2>
- <p><tt class="docutils literal">changeset</tt> configuration in this section is used as the template to
- customize the text shown in the editor when committing.</p>
- <p>In addition to pre-defined template keywords, commit log specific one
- below can be used for customization:</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">extramsg</tt></dt>
- <dd>String: Extra message (typically 'Leave message empty to abort
- commit.'). This may be changed by some commands or extensions.</dd>
- </dl>
- <p>For example, the template configuration below shows as same text as
- one shown by default:</p>
- <pre class="literal-block">
- [committemplate]
- changeset = {desc}\n\n
- HG: Enter commit message. Lines beginning with 'HG:' are removed.
- HG: {extramsg}
- HG: --
- HG: user: {author}\n{ifeq(p2rev, "-1", "",
- "HG: branch merge\n")
- }HG: branch '{branch}'\n{if(activebookmark,
- "HG: bookmark '{activebookmark}'\n") }{subrepos %
- "HG: subrepo {subrepo}\n" }{file_adds %
- "HG: added {file}\n" }{file_mods %
- "HG: changed {file}\n" }{file_dels %
- "HG: removed {file}\n" }{if(files, "",
- "HG: no files changed\n")}
- </pre>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p>For some problematic encodings (see <a class="reference external" href="hg.1.html#win32mbcs"><tt class="docutils literal">hg help win32mbcs</tt></a> for
- detail), this customization should be configured carefully, to
- avoid showing broken characters.</p>
- <p class="last">For example, if multibyte character ending with backslash (0x5c) is
- followed by ASCII character 'n' in the customized template,
- sequence of backslash and 'n' is treated as line-feed unexpectedly
- (and multibyte character is broken, too).</p>
- </div>
- <p>Customized template is used for commands below (<tt class="docutils literal"><span class="pre">--edit</span></tt> may be
- required):</p>
- <ul class="simple">
- <li><a class="reference external" href="hg.1.html#backout"><tt class="docutils literal">hg backout</tt></a></li>
- <li><a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit</tt></a></li>
- <li><a class="reference external" href="hg.1.html#fetch"><tt class="docutils literal">hg fetch</tt></a> (for merge commit only)</li>
- <li><a class="reference external" href="hg.1.html#graft"><tt class="docutils literal">hg graft</tt></a></li>
- <li><a class="reference external" href="hg.1.html#histedit"><tt class="docutils literal">hg histedit</tt></a></li>
- <li><a class="reference external" href="hg.1.html#import"><tt class="docutils literal">hg import</tt></a></li>
- <li><a class="reference external" href="hg.1.html#qfold"><tt class="docutils literal">hg qfold</tt></a>, <a class="reference external" href="hg.1.html#qnew"><tt class="docutils literal">hg qnew</tt></a> and <a class="reference external" href="hg.1.html#qrefresh"><tt class="docutils literal">hg qrefresh</tt></a></li>
- <li><a class="reference external" href="hg.1.html#rebase"><tt class="docutils literal">hg rebase</tt></a></li>
- <li><a class="reference external" href="hg.1.html#shelve"><tt class="docutils literal">hg shelve</tt></a></li>
- <li><a class="reference external" href="hg.1.html#sign"><tt class="docutils literal">hg sign</tt></a></li>
- <li><a class="reference external" href="hg.1.html#tag"><tt class="docutils literal">hg tag</tt></a></li>
- <li><a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant</tt></a></li>
- </ul>
- <p>Configuring items below instead of <tt class="docutils literal">changeset</tt> allows showing
- customized message only for specific actions, or showing different
- messages for each action.</p>
- <ul class="simple">
- <li><tt class="docutils literal">changeset.backout</tt> for <a class="reference external" href="hg.1.html#backout"><tt class="docutils literal">hg backout</tt></a></li>
- <li><tt class="docutils literal">changeset.commit.amend.merge</tt> for <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit <span class="pre">--amend</span></tt></a> on merges</li>
- <li><tt class="docutils literal">changeset.commit.amend.normal</tt> for <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit <span class="pre">--amend</span></tt></a> on other</li>
- <li><tt class="docutils literal">changeset.commit.normal.merge</tt> for <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit</tt></a> on merges</li>
- <li><tt class="docutils literal">changeset.commit.normal.normal</tt> for <a class="reference external" href="hg.1.html#commit"><tt class="docutils literal">hg commit</tt></a> on other</li>
- <li><tt class="docutils literal">changeset.fetch</tt> for <a class="reference external" href="hg.1.html#fetch"><tt class="docutils literal">hg fetch</tt></a> (impling merge commit)</li>
- <li><tt class="docutils literal">changeset.gpg.sign</tt> for <a class="reference external" href="hg.1.html#sign"><tt class="docutils literal">hg sign</tt></a></li>
- <li><tt class="docutils literal">changeset.graft</tt> for <a class="reference external" href="hg.1.html#graft"><tt class="docutils literal">hg graft</tt></a></li>
- <li><tt class="docutils literal">changeset.histedit.edit</tt> for <tt class="docutils literal">edit</tt> of <a class="reference external" href="hg.1.html#histedit"><tt class="docutils literal">hg histedit</tt></a></li>
- <li><tt class="docutils literal">changeset.histedit.fold</tt> for <tt class="docutils literal">fold</tt> of <a class="reference external" href="hg.1.html#histedit"><tt class="docutils literal">hg histedit</tt></a></li>
- <li><tt class="docutils literal">changeset.histedit.mess</tt> for <tt class="docutils literal">mess</tt> of <a class="reference external" href="hg.1.html#histedit"><tt class="docutils literal">hg histedit</tt></a></li>
- <li><tt class="docutils literal">changeset.histedit.pick</tt> for <tt class="docutils literal">pick</tt> of <a class="reference external" href="hg.1.html#histedit"><tt class="docutils literal">hg histedit</tt></a></li>
- <li><tt class="docutils literal">changeset.import.bypass</tt> for <a class="reference external" href="hg.1.html#import"><tt class="docutils literal">hg import <span class="pre">--bypass</span></tt></a></li>
- <li><tt class="docutils literal">changeset.import.normal.merge</tt> for <a class="reference external" href="hg.1.html#import"><tt class="docutils literal">hg import</tt></a> on merges</li>
- <li><tt class="docutils literal">changeset.import.normal.normal</tt> for <a class="reference external" href="hg.1.html#import"><tt class="docutils literal">hg import</tt></a> on other</li>
- <li><tt class="docutils literal">changeset.mq.qnew</tt> for <a class="reference external" href="hg.1.html#qnew"><tt class="docutils literal">hg qnew</tt></a></li>
- <li><tt class="docutils literal">changeset.mq.qfold</tt> for <a class="reference external" href="hg.1.html#qfold"><tt class="docutils literal">hg qfold</tt></a></li>
- <li><tt class="docutils literal">changeset.mq.qrefresh</tt> for <a class="reference external" href="hg.1.html#qrefresh"><tt class="docutils literal">hg qrefresh</tt></a></li>
- <li><tt class="docutils literal">changeset.rebase.collapse</tt> for <a class="reference external" href="hg.1.html#rebase"><tt class="docutils literal">hg rebase <span class="pre">--collapse</span></tt></a></li>
- <li><tt class="docutils literal">changeset.rebase.merge</tt> for <a class="reference external" href="hg.1.html#rebase"><tt class="docutils literal">hg rebase</tt></a> on merges</li>
- <li><tt class="docutils literal">changeset.rebase.normal</tt> for <a class="reference external" href="hg.1.html#rebase"><tt class="docutils literal">hg rebase</tt></a> on other</li>
- <li><tt class="docutils literal">changeset.shelve.shelve</tt> for <a class="reference external" href="hg.1.html#shelve"><tt class="docutils literal">hg shelve</tt></a></li>
- <li><tt class="docutils literal">changeset.tag.add</tt> for <a class="reference external" href="hg.1.html#tag"><tt class="docutils literal">hg tag</tt></a> without <tt class="docutils literal"><span class="pre">--remove</span></tt></li>
- <li><tt class="docutils literal">changeset.tag.remove</tt> for <a class="reference external" href="hg.1.html#tag"><tt class="docutils literal">hg tag <span class="pre">--remove</span></tt></a></li>
- <li><tt class="docutils literal">changeset.transplant.merge</tt> for <a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant</tt></a> on merges</li>
- <li><tt class="docutils literal">changeset.transplant.normal</tt> for <a class="reference external" href="hg.1.html#transplant"><tt class="docutils literal">hg transplant</tt></a> on other</li>
- </ul>
- <p>These dot-separated lists of names are treated as hierarchical ones.
- For example, <tt class="docutils literal">changeset.tag.remove</tt> customizes the commit message
- only for <a class="reference external" href="hg.1.html#tag"><tt class="docutils literal">hg tag <span class="pre">--remove</span></tt></a>, but <tt class="docutils literal">changeset.tag</tt> customizes the
- commit message for <a class="reference external" href="hg.1.html#tag"><tt class="docutils literal">hg tag</tt></a> regardless of <tt class="docutils literal"><span class="pre">--remove</span></tt> option.</p>
- <p>At the external editor invocation for committing, corresponding
- dot-separated list of names without <tt class="docutils literal">changeset.</tt> prefix
- (e.g. <tt class="docutils literal">commit.normal.normal</tt>) is in <tt class="docutils literal">HGEDITFORM</tt> environment variable.</p>
- <p>In this section, items other than <tt class="docutils literal">changeset</tt> can be referred from
- others. For example, the configuration to list committed files up
- below can be referred as <tt class="docutils literal">{listupfiles}</tt>:</p>
- <pre class="literal-block">
- [committemplate]
- listupfiles = {file_adds %
- "HG: added {file}\n" }{file_mods %
- "HG: changed {file}\n" }{file_dels %
- "HG: removed {file}\n" }{if(files, "",
- "HG: no files changed\n")}
- </pre>
- </div>
- <div class="section" id="decode-encode">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">decode/encode</tt></a></h2>
- <p>Filters for transforming files on checkout/checkin. This would
- typically be used for newline processing or other
- localization/canonicalization of files.</p>
- <p>Filters consist of a filter pattern followed by a filter command.
- Filter patterns are globs by default, rooted at the repository root.
- For example, to match any file ending in <tt class="docutils literal">.txt</tt> in the root
- directory only, use the pattern <tt class="docutils literal">*.txt</tt>. To match any file ending
- in <tt class="docutils literal">.c</tt> anywhere in the repository, use the pattern <tt class="docutils literal"><span class="pre">**.c</span></tt>.
- For each file only the first matching filter applies.</p>
- <p>The filter command can start with a specifier, either <tt class="docutils literal">pipe:</tt> or
- <tt class="docutils literal">tempfile:</tt>. If no specifier is given, <tt class="docutils literal">pipe:</tt> is used by default.</p>
- <p>A <tt class="docutils literal">pipe:</tt> command must accept data on stdin and return the transformed
- data on stdout.</p>
- <p>Pipe example:</p>
- <pre class="literal-block">
- [encode]
- # uncompress gzip files on checkin to improve delta compression
- # note: not necessarily a good idea, just an example
- *.gz = pipe: gunzip
- [decode]
- # recompress gzip files when writing them to the working dir (we
- # can safely omit "pipe:", because it's the default)
- *.gz = gzip
- </pre>
- <p>A <tt class="docutils literal">tempfile:</tt> command is a template. The string <tt class="docutils literal">INFILE</tt> is replaced
- with the name of a temporary file that contains the data to be
- filtered by the command. The string <tt class="docutils literal">OUTFILE</tt> is replaced with the name
- of an empty temporary file, where the filtered data must be written by
- the command.</p>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">The tempfile mechanism is recommended for Windows systems,
- where the standard shell I/O redirection operators often have
- strange effects and may corrupt the contents of your files.</p>
- </div>
- <p>This filter mechanism is used internally by the <tt class="docutils literal">eol</tt> extension to
- translate line ending characters between Windows (CRLF) and Unix (LF)
- format. We suggest you use the <tt class="docutils literal">eol</tt> extension for convenience.</p>
- </div>
- <div class="section" id="defaults">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">defaults</tt></a></h2>
- <p>(defaults are deprecated. Don't use them. Use aliases instead)</p>
- <p>Use the <tt class="docutils literal">[defaults]</tt> section to define command defaults, i.e. the
- default options/arguments to pass to the specified commands.</p>
- <p>The following example makes <a class="reference external" href="hg.1.html#log"><tt class="docutils literal">hg log</tt></a> run in verbose mode, and
- <a class="reference external" href="hg.1.html#status"><tt class="docutils literal">hg status</tt></a> show only the modified files, by default:</p>
- <pre class="literal-block">
- [defaults]
- log = -v
- status = -m
- </pre>
- <p>The actual commands, instead of their aliases, must be used when
- defining command defaults. The command defaults will also be applied
- to the aliases of the commands defined.</p>
- </div>
- <div class="section" id="diff">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">diff</tt></a></h2>
- <p>Settings used when displaying diffs. Everything except for <tt class="docutils literal">unified</tt>
- is a Boolean and defaults to False. See <tt class="docutils literal">annotate</tt> section for
- related options for the annotate command.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">git</tt></dt>
- <dd>Use git extended diff format.</dd>
- <dt><tt class="docutils literal">nobinary</tt></dt>
- <dd>Omit git binary patches.</dd>
- <dt><tt class="docutils literal">nodates</tt></dt>
- <dd>Don't include dates in diff headers.</dd>
- <dt><tt class="docutils literal">noprefix</tt></dt>
- <dd>Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.</dd>
- <dt><tt class="docutils literal">showfunc</tt></dt>
- <dd>Show which function each change is in.</dd>
- <dt><tt class="docutils literal">ignorews</tt></dt>
- <dd>Ignore white space when comparing lines.</dd>
- <dt><tt class="docutils literal">ignorewsamount</tt></dt>
- <dd>Ignore changes in the amount of white space.</dd>
- <dt><tt class="docutils literal">ignoreblanklines</tt></dt>
- <dd>Ignore changes whose lines are all blank.</dd>
- <dt><tt class="docutils literal">unified</tt></dt>
- <dd>Number of lines of context to show.</dd>
- </dl>
- </div>
- <div class="section" id="email">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">email</tt></a></h2>
- <p>Settings for extensions that send email messages.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">from</tt></dt>
- <dd>Optional. Email address to use in "From" header and SMTP envelope
- of outgoing messages.</dd>
- <dt><tt class="docutils literal">to</tt></dt>
- <dd>Optional. Comma-separated list of recipients' email addresses.</dd>
- <dt><tt class="docutils literal">cc</tt></dt>
- <dd>Optional. Comma-separated list of carbon copy recipients'
- email addresses.</dd>
- <dt><tt class="docutils literal">bcc</tt></dt>
- <dd>Optional. Comma-separated list of blind carbon copy recipients'
- email addresses.</dd>
- <dt><tt class="docutils literal">method</tt></dt>
- <dd>Optional. Method to use to send email messages. If value is <tt class="docutils literal">smtp</tt>
- (default), use SMTP (see the <tt class="docutils literal">[smtp]</tt> section for configuration).
- Otherwise, use as name of program to run that acts like sendmail
- (takes <tt class="docutils literal"><span class="pre">-f</span></tt> option for sender, list of recipients on command line,
- message on stdin). Normally, setting this to <tt class="docutils literal">sendmail</tt> or
- <tt class="docutils literal">/usr/sbin/sendmail</tt> is enough to use sendmail to send messages.</dd>
- <dt><tt class="docutils literal">charsets</tt></dt>
- <dd><p class="first">Optional. Comma-separated list of character sets considered
- convenient for recipients. Addresses, headers, and parts not
- containing patches of outgoing messages will be encoded in the
- first character set to which conversion from local encoding
- (<tt class="docutils literal">$HGENCODING</tt>, <tt class="docutils literal">ui.fallbackencoding</tt>) succeeds. If correct
- conversion fails, the text in question is sent as is. Defaults to
- empty (explicit) list.</p>
- <p>Order of outgoing email character sets:</p>
- <ol class="last arabic simple">
- <li><tt class="docutils literal"><span class="pre">us-ascii</span></tt>: always first, regardless of settings</li>
- <li><tt class="docutils literal">email.charsets</tt>: in order given by user</li>
- <li><tt class="docutils literal">ui.fallbackencoding</tt>: if not in email.charsets</li>
- <li><tt class="docutils literal">$HGENCODING</tt>: if not in email.charsets</li>
- <li><tt class="docutils literal"><span class="pre">utf-8</span></tt>: always last, regardless of settings</li>
- </ol>
- </dd>
- </dl>
- <p>Email example:</p>
- <pre class="literal-block">
- [email]
- from = Joseph User <joe.user@example.com>
- method = /usr/sbin/sendmail
- # charsets for western Europeans
- # us-ascii, utf-8 omitted, as they are tried first and last
- charsets = iso-8859-1, iso-8859-15, windows-1252
- </pre>
- </div>
- <div class="section" id="extensions">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">extensions</tt></a></h2>
- <p>Mercurial has an extension mechanism for adding new features. To
- enable an extension, create an entry for it in this section.</p>
- <p>If you know that the extension is already in Python's search path,
- you can give the name of the module, followed by <tt class="docutils literal">=</tt>, with nothing
- after the <tt class="docutils literal">=</tt>.</p>
- <p>Otherwise, give a name that you choose, followed by <tt class="docutils literal">=</tt>, followed by
- the path to the <tt class="docutils literal">.py</tt> file (including the file name extension) that
- defines the extension.</p>
- <p>To explicitly disable an extension that is enabled in an hgrc of
- broader scope, prepend its path with <tt class="docutils literal">!</tt>, as in <tt class="docutils literal">foo = !/ext/path</tt>
- or <tt class="docutils literal">foo = !</tt> when path is not supplied.</p>
- <p>Example for <tt class="docutils literal"><span class="pre">~/.hgrc</span></tt>:</p>
- <pre class="literal-block">
- [extensions]
- # (the color extension will get loaded from Mercurial's path)
- color =
- # (this extension will get loaded from the file specified)
- myfeature = ~/.hgext/myfeature.py
- </pre>
- </div>
- <div class="section" id="format">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">format</tt></a></h2>
- <dl class="docutils">
- <dt><tt class="docutils literal">usestore</tt></dt>
- <dd>Enable or disable the "store" repository format which improves
- compatibility with systems that fold case or otherwise mangle
- filenames. Enabled by default. Disabling this option will allow
- you to store longer filenames in some situations at the expense of
- compatibility and ensures that the on-disk format of newly created
- repositories will be compatible with Mercurial before version 0.9.4.</dd>
- <dt><tt class="docutils literal">usefncache</tt></dt>
- <dd>Enable or disable the "fncache" repository format which enhances
- the "store" repository format (which has to be enabled to use
- fncache) to allow longer filenames and avoids using Windows
- reserved names, e.g. "nul". Enabled by default. Disabling this
- option ensures that the on-disk format of newly created
- repositories will be compatible with Mercurial before version 1.1.</dd>
- <dt><tt class="docutils literal">dotencode</tt></dt>
- <dd>Enable or disable the "dotencode" repository format which enhances
- the "fncache" repository format (which has to be enabled to use
- dotencode) to avoid issues with filenames starting with ._ on
- Mac OS X and spaces on Windows. Enabled by default. Disabling this
- option ensures that the on-disk format of newly created
- repositories will be compatible with Mercurial before version 1.7.</dd>
- </dl>
- </div>
- <div class="section" id="graph">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">graph</tt></a></h2>
- <p>Web graph view configuration. This section let you change graph
- elements display properties by branches, for instance to make the
- <tt class="docutils literal">default</tt> branch stand out.</p>
- <p>Each line has the following format:</p>
- <pre class="literal-block">
- <branch>.<argument> = <value>
- </pre>
- <p>where <tt class="docutils literal"><branch></tt> is the name of the branch being
- customized. Example:</p>
- <pre class="literal-block">
- [graph]
- # 2px width
- default.width = 2
- # red color
- default.color = FF0000
- </pre>
- <p>Supported arguments:</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">width</tt></dt>
- <dd>Set branch edges width in pixels.</dd>
- <dt><tt class="docutils literal">color</tt></dt>
- <dd>Set branch edges color in hexadecimal RGB notation.</dd>
- </dl>
- </div>
- <div class="section" id="hooks">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">hooks</tt></a></h2>
- <p>Commands or Python functions that get automatically executed by
- various actions such as starting or finishing a commit. Multiple
- hooks can be run for the same action by appending a suffix to the
- action. Overriding a site-wide hook can be done by changing its
- value or setting it to an empty string. Hooks can be prioritized
- by adding a prefix of <tt class="docutils literal">priority</tt> to the hook name on a new line
- and setting the priority. The default priority is 0 if
- not specified.</p>
- <p>Example <tt class="docutils literal">.hg/hgrc</tt>:</p>
- <pre class="literal-block">
- [hooks]
- # update working directory after adding changesets
- changegroup.update = hg update
- # do not use the site-wide hook
- incoming =
- incoming.email = /my/email/hook
- incoming.autobuild = /my/build/hook
- # force autobuild hook to run before other incoming hooks
- priority.incoming.autobuild = 1
- </pre>
- <p>Most hooks are run with environment variables set that give useful
- additional information. For each hook below, the environment
- variables it is passed are listed with names of the form <tt class="docutils literal">$HG_foo</tt>.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">changegroup</tt></dt>
- <dd>Run after a changegroup has been added via push, pull or unbundle.
- ID of the first new changeset is in <tt class="docutils literal">$HG_NODE</tt>. URL from which
- changes came is in <tt class="docutils literal">$HG_URL</tt>.</dd>
- <dt><tt class="docutils literal">commit</tt></dt>
- <dd>Run after a changeset has been created in the local repository. ID
- of the newly created changeset is in <tt class="docutils literal">$HG_NODE</tt>. Parent changeset
- IDs are in <tt class="docutils literal">$HG_PARENT1</tt> and <tt class="docutils literal">$HG_PARENT2</tt>.</dd>
- <dt><tt class="docutils literal">incoming</tt></dt>
- <dd>Run after a changeset has been pulled, pushed, or unbundled into
- the local repository. The ID of the newly arrived changeset is in
- <tt class="docutils literal">$HG_NODE</tt>. URL that was source of changes came is in <tt class="docutils literal">$HG_URL</tt>.</dd>
- <dt><tt class="docutils literal">outgoing</tt></dt>
- <dd>Run after sending changes from local repository to another. ID of
- first changeset sent is in <tt class="docutils literal">$HG_NODE</tt>. Source of operation is in
- <tt class="docutils literal">$HG_SOURCE</tt>; see "preoutgoing" hook for description.</dd>
- <dt><tt class="docutils literal"><span class="pre">post-<command></span></tt></dt>
- <dd>Run after successful invocations of the associated command. The
- contents of the command line are passed as <tt class="docutils literal">$HG_ARGS</tt> and the result
- code in <tt class="docutils literal">$HG_RESULT</tt>. Parsed command line arguments are passed as
- <tt class="docutils literal">$HG_PATS</tt> and <tt class="docutils literal">$HG_OPTS</tt>. These contain string representations of
- the python data internally passed to <command>. <tt class="docutils literal">$HG_OPTS</tt> is a
- dictionary of options (with unspecified options set to their defaults).
- <tt class="docutils literal">$HG_PATS</tt> is a list of arguments. Hook failure is ignored.</dd>
- <dt><tt class="docutils literal"><span class="pre">pre-<command></span></tt></dt>
- <dd>Run before executing the associated command. The contents of the
- command line are passed as <tt class="docutils literal">$HG_ARGS</tt>. Parsed command line arguments
- are passed as <tt class="docutils literal">$HG_PATS</tt> and <tt class="docutils literal">$HG_OPTS</tt>. These contain string
- representations of the data internally passed to <command>. <tt class="docutils literal">$HG_OPTS</tt>
- is a dictionary of options (with unspecified options set to their
- defaults). <tt class="docutils literal">$HG_PATS</tt> is a list of arguments. If the hook returns
- failure, the command doesn't execute and Mercurial returns the failure
- code.</dd>
- <dt><tt class="docutils literal">prechangegroup</tt></dt>
- <dd>Run before a changegroup is added via push, pull or unbundle. Exit
- status 0 allows the changegroup to proceed. Non-zero status will
- cause the push, pull or unbundle to fail. URL from which changes
- will come is in <tt class="docutils literal">$HG_URL</tt>.</dd>
- <dt><tt class="docutils literal">precommit</tt></dt>
- <dd>Run before starting a local commit. Exit status 0 allows the
- commit to proceed. Non-zero status will cause the commit to fail.
- Parent changeset IDs are in <tt class="docutils literal">$HG_PARENT1</tt> and <tt class="docutils literal">$HG_PARENT2</tt>.</dd>
- <dt><tt class="docutils literal">prelistkeys</tt></dt>
- <dd>Run before listing pushkeys (like bookmarks) in the
- repository. Non-zero status will cause failure. The key namespace is
- in <tt class="docutils literal">$HG_NAMESPACE</tt>.</dd>
- <dt><tt class="docutils literal">preoutgoing</tt></dt>
- <dd>Run before collecting changes to send from the local repository to
- another. Non-zero status will cause failure. This lets you prevent
- pull over HTTP or SSH. Also prevents against local pull, push
- (outbound) or bundle commands, but not effective, since you can
- just copy files instead then. Source of operation is in
- <tt class="docutils literal">$HG_SOURCE</tt>. If "serve", operation is happening on behalf of remote
- SSH or HTTP repository. If "push", "pull" or "bundle", operation
- is happening on behalf of repository on same system.</dd>
- <dt><tt class="docutils literal">prepushkey</tt></dt>
- <dd>Run before a pushkey (like a bookmark) is added to the
- repository. Non-zero status will cause the key to be rejected. The
- key namespace is in <tt class="docutils literal">$HG_NAMESPACE</tt>, the key is in <tt class="docutils literal">$HG_KEY</tt>,
- the old value (if any) is in <tt class="docutils literal">$HG_OLD</tt>, and the new value is in
- <tt class="docutils literal">$HG_NEW</tt>.</dd>
- <dt><tt class="docutils literal">pretag</tt></dt>
- <dd>Run before creating a tag. Exit status 0 allows the tag to be
- created. Non-zero status will cause the tag to fail. ID of
- changeset to tag is in <tt class="docutils literal">$HG_NODE</tt>. Name of tag is in <tt class="docutils literal">$HG_TAG</tt>. Tag is
- local if <tt class="docutils literal">$HG_LOCAL=1</tt>, in repository if <tt class="docutils literal">$HG_LOCAL=0</tt>.</dd>
- <dt><tt class="docutils literal">pretxnopen</tt></dt>
- <dd>Run before any new repository transaction is open. The reason for the
- transaction will be in <tt class="docutils literal">$HG_TXNNAME</tt> and a unique identifier for the
- transaction will be in <tt class="docutils literal">HG_TXNID</tt>. A non-zero status will prevent the
- transaction from being opened.</dd>
- <dt><tt class="docutils literal">pretxnclose</tt></dt>
- <dd>Run right before the transaction is actually finalized. Any
- repository change will be visible to the hook program. This lets you
- validate the transaction content or change it. Exit status 0 allows
- the commit to proceed. Non-zero status will cause the transaction to
- be rolled back. The reason for the transaction opening will be in
- <tt class="docutils literal">$HG_TXNNAME</tt> and a unique identifier for the transaction will be in
- <tt class="docutils literal">HG_TXNID</tt>. The rest of the available data will vary according the
- transaction type. New changesets will add <tt class="docutils literal">$HG_NODE</tt> (id of the
- first added changeset), <tt class="docutils literal">$HG_URL</tt> and <tt class="docutils literal">$HG_SOURCE</tt> variables,
- bookmarks and phases changes will set <tt class="docutils literal">HG_BOOKMARK_MOVED</tt> and
- <tt class="docutils literal">HG_PHASES_MOVED</tt> to <tt class="docutils literal">1</tt>, etc.</dd>
- <dt><tt class="docutils literal">txnclose</tt></dt>
- <dd>Run after any repository transaction has been committed. At this
- point, the transaction can no longer be rolled back. The hook will run
- after the lock is released. See <tt class="docutils literal">pretxnclose</tt> docs for details about
- available variables.</dd>
- <dt><tt class="docutils literal">txnabort</tt></dt>
- <dd>Run when a transaction is aborted. See <tt class="docutils literal">pretxnclose</tt> docs for details about
- available variables.</dd>
- <dt><tt class="docutils literal">pretxnchangegroup</tt></dt>
- <dd>Run after a changegroup has been added via push, pull or unbundle,
- but before the transaction has been committed. Changegroup is
- visible to hook program. This lets you validate incoming changes
- before accepting them. Passed the ID of the first new changeset in
- <tt class="docutils literal">$HG_NODE</tt>. Exit status 0 allows the transaction to commit. Non-zero
- status will cause the transaction to be rolled back and the push,
- pull or unbundle will fail. URL that was source of changes is in
- <tt class="docutils literal">$HG_URL</tt>.</dd>
- <dt><tt class="docutils literal">pretxncommit</tt></dt>
- <dd>Run after a changeset has been created but the transaction not yet
- committed. Changeset is visible to hook program. This lets you
- validate commit message and changes. Exit status 0 allows the
- commit to proceed. Non-zero status will cause the transaction to
- be rolled back. ID of changeset is in <tt class="docutils literal">$HG_NODE</tt>. Parent changeset
- IDs are in <tt class="docutils literal">$HG_PARENT1</tt> and <tt class="docutils literal">$HG_PARENT2</tt>.</dd>
- <dt><tt class="docutils literal">preupdate</tt></dt>
- <dd>Run before updating the working directory. Exit status 0 allows
- the update to proceed. Non-zero status will prevent the update.
- Changeset ID of first new parent is in <tt class="docutils literal">$HG_PARENT1</tt>. If merge, ID
- of second new parent is in <tt class="docutils literal">$HG_PARENT2</tt>.</dd>
- <dt><tt class="docutils literal">listkeys</tt></dt>
- <dd>Run after listing pushkeys (like bookmarks) in the repository. The
- key namespace is in <tt class="docutils literal">$HG_NAMESPACE</tt>. <tt class="docutils literal">$HG_VALUES</tt> is a
- dictionary containing the keys and values.</dd>
- <dt><tt class="docutils literal">pushkey</tt></dt>
- <dd>Run after a pushkey (like a bookmark) is added to the
- repository. The key namespace is in <tt class="docutils literal">$HG_NAMESPACE</tt>, the key is in
- <tt class="docutils literal">$HG_KEY</tt>, the old value (if any) is in <tt class="docutils literal">$HG_OLD</tt>, and the new
- value is in <tt class="docutils literal">$HG_NEW</tt>.</dd>
- <dt><tt class="docutils literal">tag</tt></dt>
- <dd>Run after a tag is created. ID of tagged changeset is in <tt class="docutils literal">$HG_NODE</tt>.
- Name of tag is in <tt class="docutils literal">$HG_TAG</tt>. Tag is local if <tt class="docutils literal">$HG_LOCAL=1</tt>, in
- repository if <tt class="docutils literal">$HG_LOCAL=0</tt>.</dd>
- <dt><tt class="docutils literal">update</tt></dt>
- <dd>Run after updating the working directory. Changeset ID of first
- new parent is in <tt class="docutils literal">$HG_PARENT1</tt>. If merge, ID of second new parent is
- in <tt class="docutils literal">$HG_PARENT2</tt>. If the update succeeded, <tt class="docutils literal">$HG_ERROR=0</tt>. If the
- update failed (e.g. because conflicts not resolved), <tt class="docutils literal">$HG_ERROR=1</tt>.</dd>
- </dl>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">It is generally better to use standard hooks rather than the
- generic pre- and post- command hooks as they are guaranteed to be
- called in the appropriate contexts for influencing transactions.
- Also, hooks like "commit" will be called in all contexts that
- generate a commit (e.g. tag) and not just the commit command.</p>
- </div>
- <div class="note">
- <p class="first admonition-title">Note</p>
- <p class="last">Environment variables with empty values may not be passed to
- hooks on platforms such as Windows. As an example, <tt class="docutils literal">$HG_PARENT2</tt>
- will have an empty value under Unix-like platforms for non-merge
- changesets, while it will not be available at all under Windows.</p>
- </div>
- <p>The syntax for Python hooks is as follows:</p>
- <pre class="literal-block">
- hookname = python:modulename.submodule.callable
- hookname = python:/path/to/python/module.py:callable
- </pre>
- <p>Python hooks are run within the Mercurial process. Each hook is
- called with at least three keyword arguments: a ui object (keyword
- <tt class="docutils literal">ui</tt>), a repository object (keyword <tt class="docutils literal">repo</tt>), and a <tt class="docutils literal">hooktype</tt>
- keyword that tells what kind of hook is used. Arguments listed as
- environment variables above are passed as keyword arguments, with no
- <tt class="docutils literal">HG_</tt> prefix, and names in lower case.</p>
- <p>If a Python hook returns a "true" value or raises an exception, this
- is treated as a failure.</p>
- </div>
- <div class="section" id="hostfingerprints">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">hostfingerprints</tt></a></h2>
- <p>Fingerprints of the certificates of known HTTPS servers.
- A HTTPS connection to a server with a fingerprint configured here will
- only succeed if the servers certificate matches the fingerprint.
- This is very similar to how ssh known hosts works.
- The fingerprint is the SHA-1 hash value of the DER encoded certificate.
- The CA chain and web.cacerts is not used for servers with a fingerprint.</p>
- <p>For example:</p>
- <pre class="literal-block">
- [hostfingerprints]
- hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
- </pre>
- <p>This feature is only supported when using Python 2.6 or later.</p>
- </div>
- <div class="section" id="http-proxy">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">http_proxy</tt></a></h2>
- <p>Used to access web-based Mercurial repositories through a HTTP
- proxy.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">host</tt></dt>
- <dd>Host name and (optional) port of the proxy server, for example
- "myproxy:8000".</dd>
- <dt><tt class="docutils literal">no</tt></dt>
- <dd>Optional. Comma-separated list of host names that should bypass
- the proxy.</dd>
- <dt><tt class="docutils literal">passwd</tt></dt>
- <dd>Optional. Password to authenticate with at the proxy server.</dd>
- <dt><tt class="docutils literal">user</tt></dt>
- <dd>Optional. User name to authenticate with at the proxy server.</dd>
- <dt><tt class="docutils literal">always</tt></dt>
- <dd>Optional. Always use the proxy, even for localhost and any entries
- in <tt class="docutils literal">http_proxy.no</tt>. True or False. Default: False.</dd>
- </dl>
- </div>
- <div class="section" id="merge-patterns">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-patterns</span></tt></a></h2>
- <p>This section specifies merge tools to associate with particular file
- patterns. Tools matched here will take precedence over the default
- merge tool. Patterns are globs by default, rooted at the repository
- root.</p>
- <p>Example:</p>
- <pre class="literal-block">
- [merge-patterns]
- **.c = kdiff3
- **.jpg = myimgmerge
- </pre>
- </div>
- <div class="section" id="merge-tools">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal"><span class="pre">merge-tools</span></tt></a></h2>
- <p>This section configures external merge tools to use for file-level
- merges. This section has likely been preconfigured at install time.
- Use <a class="reference external" href="hg.1.html#config"><tt class="docutils literal">hg config <span class="pre">merge-tools</span></tt></a> to check the existing configuration.
- Also see <a class="reference external" href="hg.1.html#merge-tools"><tt class="docutils literal">hg help <span class="pre">merge-tools</span></tt></a> for more details.</p>
- <p>Example <tt class="docutils literal"><span class="pre">~/.hgrc</span></tt>:</p>
- <pre class="literal-block">
- [merge-tools]
- # Override stock tool location
- kdiff3.executable = ~/bin/kdiff3
- # Specify command line
- kdiff3.args = $base $local $other -o $output
- # Give higher priority
- kdiff3.priority = 1
- # Changing the priority of preconfigured tool
- vimdiff.priority = 0
- # Define new tool
- myHtmlTool.args = -m $local $other $base $output
- myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
- myHtmlTool.priority = 1
- </pre>
- <p>Supported arguments:</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">priority</tt></dt>
- <dd>The priority in which to evaluate this tool.
- Default: 0.</dd>
- <dt><tt class="docutils literal">executable</tt></dt>
- <dd>Either just the name of the executable or its pathname. On Windows,
- the path can use environment variables with ${ProgramFiles} syntax.
- Default: the tool name.</dd>
- <dt><tt class="docutils literal">args</tt></dt>
- <dd>The arguments to pass to the tool executable. You can refer to the
- files being merged as well as the output file through these
- variables: <tt class="docutils literal">$base</tt>, <tt class="docutils literal">$local</tt>, <tt class="docutils literal">$other</tt>, <tt class="docutils literal">$output</tt>. The meaning
- of <tt class="docutils literal">$local</tt> and <tt class="docutils literal">$other</tt> can vary depending on which action is being
- performed. During and update or merge, <tt class="docutils literal">$local</tt> represents the original
- state of the file, while <tt class="docutils literal">$other</tt> represents the commit you are updating
- to or the commit you are merging with. During a rebase <tt class="docutils literal">$local</tt>
- represents the destination of the rebase, and <tt class="docutils literal">$other</tt> represents the
- commit being rebased.
- Default: <tt class="docutils literal">$local $base $other</tt></dd>
- <dt><tt class="docutils literal">premerge</tt></dt>
- <dd>Attempt to run internal non-interactive 3-way merge tool before
- launching external tool. Options are <tt class="docutils literal">true</tt>, <tt class="docutils literal">false</tt>, <tt class="docutils literal">keep</tt> or
- <tt class="docutils literal"><span class="pre">keep-merge3</span></tt>. The <tt class="docutils literal">keep</tt> option will leave markers in the file if the
- premerge fails. The <tt class="docutils literal"><span class="pre">keep-merge3</span></tt> will do the same but include information
- about the base of the merge in the marker (see internal :merge3 in
- <a class="reference external" href="hg.1.html#merge-tools"><tt class="docutils literal">hg help <span class="pre">merge-tools</span></tt></a>).
- Default: True</dd>
- <dt><tt class="docutils literal">binary</tt></dt>
- <dd>This tool can merge binary files. Defaults to False, unless tool
- was selected by file pattern match.</dd>
- <dt><tt class="docutils literal">symlink</tt></dt>
- <dd>This tool can merge symlinks. Defaults to False, even if tool was
- selected by file pattern match.</dd>
- <dt><tt class="docutils literal">check</tt></dt>
- <dd><p class="first">A list of merge success-checking options:</p>
- <dl class="last docutils">
- <dt><tt class="docutils literal">changed</tt></dt>
- <dd>Ask whether merge was successful when the merged file shows no changes.</dd>
- <dt><tt class="docutils literal">conflicts</tt></dt>
- <dd>Check whether there are conflicts even though the tool reported success.</dd>
- <dt><tt class="docutils literal">prompt</tt></dt>
- <dd>Always prompt for merge success, regardless of success reported by tool.</dd>
- </dl>
- </dd>
- <dt><tt class="docutils literal">fixeol</tt></dt>
- <dd>Attempt to fix up EOL changes caused by the merge tool.
- Default: False</dd>
- <dt><tt class="docutils literal">gui</tt></dt>
- <dd>This tool requires a graphical interface to run. Default: False</dd>
- <dt><tt class="docutils literal">regkey</tt></dt>
- <dd>Windows registry key which describes install location of this
- tool. Mercurial will search for this key first under
- <tt class="docutils literal">HKEY_CURRENT_USER</tt> and then under <tt class="docutils literal">HKEY_LOCAL_MACHINE</tt>.
- Default: None</dd>
- <dt><tt class="docutils literal">regkeyalt</tt></dt>
- <dd>An alternate Windows registry key to try if the first key is not
- found. The alternate key uses the same <tt class="docutils literal">regname</tt> and <tt class="docutils literal">regappend</tt>
- semantics of the primary key. The most common use for this key
- is to search for 32bit applications on 64bit operating systems.
- Default: None</dd>
- <dt><tt class="docutils literal">regname</tt></dt>
- <dd>Name of value to read from specified registry key. Defaults to the
- unnamed (default) value.</dd>
- <dt><tt class="docutils literal">regappend</tt></dt>
- <dd>String to append to the value read from the registry, typically
- the executable name of the tool.
- Default: None</dd>
- </dl>
- </div>
- <div class="section" id="patch">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">patch</tt></a></h2>
- <p>Settings used when applying patches, for instance through the 'import'
- command or with Mercurial Queues extension.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">eol</tt></dt>
- <dd>When set to 'strict' patch content and patched files end of lines
- are preserved. When set to <tt class="docutils literal">lf</tt> or <tt class="docutils literal">crlf</tt>, both files end of
- lines are ignored when patching and the result line endings are
- normalized to either LF (Unix) or CRLF (Windows). When set to
- <tt class="docutils literal">auto</tt>, end of lines are again ignored while patching but line
- endings in patched files are normalized to their original setting
- on a per-file basis. If target file does not exist or has no end
- of line, patch line endings are preserved.
- Default: strict.</dd>
- <dt><tt class="docutils literal">fuzz</tt></dt>
- <dd>The number of lines of 'fuzz' to allow when applying patches. This
- controls how much context the patcher is allowed to ignore when
- trying to apply a patch.
- Default: 2</dd>
- </dl>
- </div>
- <div class="section" id="paths">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">paths</tt></a></h2>
- <p>Assigns symbolic names to repositories. The left side is the
- symbolic name, and the right gives the directory or URL that is the
- location of the repository. Default paths can be declared by setting
- the following entries.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">default</tt></dt>
- <dd>Directory or URL to use when pulling if no source is specified.
- Default is set to repository from which the current repository was
- cloned.</dd>
- <dt><tt class="docutils literal"><span class="pre">default-push</span></tt></dt>
- <dd>Optional. Directory or URL to use when pushing if no destination
- is specified.</dd>
- </dl>
- <p>Custom paths can be defined by assigning the path to a name that later can be
- used from the command line. Example:</p>
- <pre class="literal-block">
- [paths]
- my_path = http://example.com/path
- </pre>
- <p>To push to the path defined in <tt class="docutils literal">my_path</tt> run the command:</p>
- <pre class="literal-block">
- hg push my_path
- </pre>
- </div>
- <div class="section" id="phases">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">phases</tt></a></h2>
- <p>Specifies default handling of phases. See <a class="reference external" href="hg.1.html#phases"><tt class="docutils literal">hg help phases</tt></a> for more
- information about working with phases.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">publish</tt></dt>
- <dd>Controls draft phase behavior when working as a server. When true,
- pushed changesets are set to public in both client and server and
- pulled or cloned changesets are set to public in the client.
- Default: True</dd>
- <dt><tt class="docutils literal"><span class="pre">new-commit</span></tt></dt>
- <dd>Phase of newly-created commits.
- Default: draft</dd>
- <dt><tt class="docutils literal">checksubrepos</tt></dt>
- <dd>Check the phase of the current revision of each subrepository. Allowed
- values are "ignore", "follow" and "abort". For settings other than
- "ignore", the phase of the current revision of each subrepository is
- checked before committing the parent repository. If any of those phases is
- greater than the phase of the parent repository (e.g. if a subrepo is in a
- "secret" phase while the parent repo is in "draft" phase), the commit is
- either aborted (if checksubrepos is set to "abort") or the higher phase is
- used for the parent repository commit (if set to "follow").
- Default: "follow"</dd>
- </dl>
- </div>
- <div class="section" id="profiling">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">profiling</tt></a></h2>
- <p>Specifies profiling type, format, and file output. Two profilers are
- supported: an instrumenting profiler (named <tt class="docutils literal">ls</tt>), and a sampling
- profiler (named <tt class="docutils literal">stat</tt>).</p>
- <p>In this section description, 'profiling data' stands for the raw data
- collected during profiling, while 'profiling report' stands for a
- statistical text report generated from the profiling data. The
- profiling is done using lsprof.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">type</tt></dt>
- <dd><p class="first">The type of profiler to use.
- Default: ls.</p>
- <dl class="last docutils">
- <dt><tt class="docutils literal">ls</tt></dt>
- <dd>Use Python's built-in instrumenting profiler. This profiler
- works on all platforms, but each line number it reports is the
- first line of a function. This restriction makes it difficult to
- identify the expensive parts of a non-trivial function.</dd>
- <dt><tt class="docutils literal">stat</tt></dt>
- <dd>Use a third-party statistical profiler, statprof. This profiler
- currently runs only on Unix systems, and is most useful for
- profiling commands that run for longer than about 0.1 seconds.</dd>
- </dl>
- </dd>
- <dt><tt class="docutils literal">format</tt></dt>
- <dd><p class="first">Profiling format. Specific to the <tt class="docutils literal">ls</tt> instrumenting profiler.
- Default: text.</p>
- <dl class="last docutils">
- <dt><tt class="docutils literal">text</tt></dt>
- <dd>Generate a profiling report. When saving to a file, it should be
- noted that only the report is saved, and the profiling data is
- not kept.</dd>
- <dt><tt class="docutils literal">kcachegrind</tt></dt>
- <dd>Format profiling data for kcachegrind use: when saving to a
- file, the generated file can directly be loaded into
- kcachegrind.</dd>
- </dl>
- </dd>
- <dt><tt class="docutils literal">frequency</tt></dt>
- <dd>Sampling frequency. Specific to the <tt class="docutils literal">stat</tt> sampling profiler.
- Default: 1000.</dd>
- <dt><tt class="docutils literal">output</tt></dt>
- <dd>File path where profiling data or report should be saved. If the
- file exists, it is replaced. Default: None, data is printed on
- stderr</dd>
- <dt><tt class="docutils literal">sort</tt></dt>
- <dd>Sort field. Specific to the <tt class="docutils literal">ls</tt> instrumenting profiler.
- One of <tt class="docutils literal">callcount</tt>, <tt class="docutils literal">reccallcount</tt>, <tt class="docutils literal">totaltime</tt> and
- <tt class="docutils literal">inlinetime</tt>.
- Default: inlinetime.</dd>
- <dt><tt class="docutils literal">limit</tt></dt>
- <dd>Number of lines to show. Specific to the <tt class="docutils literal">ls</tt> instrumenting profiler.
- Default: 30.</dd>
- <dt><tt class="docutils literal">nested</tt></dt>
- <dd>Show at most this number of lines of drill-down info after each main entry.
- This can help explain the difference between Total and Inline.
- Specific to the <tt class="docutils literal">ls</tt> instrumenting profiler.
- Default: 5.</dd>
- </dl>
- </div>
- <div class="section" id="progress">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">progress</tt></a></h2>
- <p>Mercurial commands can draw progress bars that are as informative as
- possible. Some progress bars only offer indeterminate information, while others
- have a definite end point.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">delay</tt></dt>
- <dd>Number of seconds (float) before showing the progress bar. (default: 3)</dd>
- <dt><tt class="docutils literal">changedelay</tt></dt>
- <dd>Minimum delay before showing a new topic. When set to less than 3 * refresh,
- that value will be used instead. (default: 1)</dd>
- <dt><tt class="docutils literal">refresh</tt></dt>
- <dd>Time in seconds between refreshes of the progress bar. (default: 0.1)</dd>
- <dt><tt class="docutils literal">format</tt></dt>
- <dd><p class="first">Format of the progress bar.</p>
- <p>Valid entries for the format field are <tt class="docutils literal">topic</tt>, <tt class="docutils literal">bar</tt>, <tt class="docutils literal">number</tt>,
- <tt class="docutils literal">unit</tt>, <tt class="docutils literal">estimate</tt>, speed, and item. item defaults to the last 20
- characters of the item, but this can be changed by adding either <tt class="docutils literal"><span class="pre">-<num></span></tt>
- which would take the last num characters, or <tt class="docutils literal">+<num></tt> for the first num
- characters.</p>
- <p class="last">(default: Topic bar number estimate)</p>
- </dd>
- <dt><tt class="docutils literal">width</tt></dt>
- <dd>If set, the maximum width of the progress information (that is, min(width,
- term width) will be used)</dd>
- <dt><tt class="docutils literal"><span class="pre">clear-complete</span></tt></dt>
- <dd>clear the progress bar after it's done (default to True)</dd>
- <dt><tt class="docutils literal">disable</tt></dt>
- <dd>If true, don't show a progress bar</dd>
- <dt><tt class="docutils literal"><span class="pre">assume-tty</span></tt></dt>
- <dd>If true, ALWAYS show a progress bar, unless disable is given</dd>
- </dl>
- </div>
- <div class="section" id="revsetalias">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">revsetalias</tt></a></h2>
- <p>Alias definitions for revsets. See <a class="reference external" href="hg.1.html#revsets"><tt class="docutils literal">hg help revsets</tt></a> for details.</p>
- </div>
- <div class="section" id="server">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">server</tt></a></h2>
- <p>Controls generic server settings.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">uncompressed</tt></dt>
- <dd>Whether to allow clients to clone a repository using the
- uncompressed streaming protocol. This transfers about 40% more
- data than a regular clone, but uses less memory and CPU on both
- server and client. Over a LAN (100 Mbps or better) or a very fast
- WAN, an uncompressed streaming clone is a lot faster (~10x) than a
- regular clone. Over most WAN connections (anything slower than
- about 6 Mbps), uncompressed streaming is slower, because of the
- extra data transfer overhead. This mode will also temporarily hold
- the write lock while determining what data to transfer.
- Default is True.</dd>
- <dt><tt class="docutils literal">preferuncompressed</tt></dt>
- <dd>When set, clients will try to use the uncompressed streaming
- protocol. Default is False.</dd>
- <dt><tt class="docutils literal">validate</tt></dt>
- <dd>Whether to validate the completeness of pushed changesets by
- checking that all new file revisions specified in manifests are
- present. Default is False.</dd>
- <dt><tt class="docutils literal">maxhttpheaderlen</tt></dt>
- <dd>Instruct HTTP clients not to send request headers longer than this
- many bytes. Default is 1024.</dd>
- </dl>
- </div>
- <div class="section" id="smtp">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">smtp</tt></a></h2>
- <p>Configuration for extensions that need to send email messages.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">host</tt></dt>
- <dd>Host name of mail server, e.g. "mail.example.com".</dd>
- <dt><tt class="docutils literal">port</tt></dt>
- <dd>Optional. Port to connect to on mail server. Default: 465 (if
- <tt class="docutils literal">tls</tt> is smtps) or 25 (otherwise).</dd>
- <dt><tt class="docutils literal">tls</tt></dt>
- <dd>Optional. Method to enable TLS when connecting to mail server: starttls,
- smtps or none. Default: none.</dd>
- <dt><tt class="docutils literal">verifycert</tt></dt>
- <dd>Optional. Verification for the certificate of mail server, when
- <tt class="docutils literal">tls</tt> is starttls or smtps. "strict", "loose" or False. For
- "strict" or "loose", the certificate is verified as same as the
- verification for HTTPS connections (see <tt class="docutils literal">[hostfingerprints]</tt> and
- <tt class="docutils literal">[web] cacerts</tt> also). For "strict", sending email is also
- aborted, if there is no configuration for mail server in
- <tt class="docutils literal">[hostfingerprints]</tt> and <tt class="docutils literal">[web] cacerts</tt>. --insecure for
- <a class="reference external" href="hg.1.html#email"><tt class="docutils literal">hg email</tt></a> overwrites this as "loose". Default: "strict".</dd>
- <dt><tt class="docutils literal">username</tt></dt>
- <dd>Optional. User name for authenticating with the SMTP server.
- Default: none.</dd>
- <dt><tt class="docutils literal">password</tt></dt>
- <dd>Optional. Password for authenticating with the SMTP server. If not
- specified, interactive sessions will prompt the user for a
- password; non-interactive sessions will fail. Default: none.</dd>
- <dt><tt class="docutils literal">local_hostname</tt></dt>
- <dd>Optional. It's the hostname that the sender can use to identify
- itself to the MTA.</dd>
- </dl>
- </div>
- <div class="section" id="subpaths">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">subpaths</tt></a></h2>
- <p>Subrepository source URLs can go stale if a remote server changes name
- or becomes temporarily unavailable. This section lets you define
- rewrite rules of the form:</p>
- <pre class="literal-block">
- <pattern> = <replacement>
- </pre>
- <p>where <tt class="docutils literal">pattern</tt> is a regular expression matching a subrepository
- source URL and <tt class="docutils literal">replacement</tt> is the replacement string used to
- rewrite it. Groups can be matched in <tt class="docutils literal">pattern</tt> and referenced in
- <tt class="docutils literal">replacements</tt>. For instance:</p>
- <pre class="literal-block">
- http://server/(.*)-hg/ = http://hg.server/\1/
- </pre>
- <p>rewrites <tt class="docutils literal"><span class="pre">http://server/foo-hg/</span></tt> into <tt class="docutils literal"><span class="pre">http://hg.server/foo/</span></tt>.</p>
- <p>Relative subrepository paths are first made absolute, and the
- rewrite rules are then applied on the full (absolute) path. The rules
- are applied in definition order.</p>
- </div>
- <div class="section" id="trusted">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">trusted</tt></a></h2>
- <p>Mercurial will not use the settings in the
- <tt class="docutils literal">.hg/hgrc</tt> file from a repository if it doesn't belong to a trusted
- user or to a trusted group, as various hgrc features allow arbitrary
- commands to be run. This issue is often encountered when configuring
- hooks or extensions for shared repositories or servers. However,
- the web interface will use some safe settings from the <tt class="docutils literal">[web]</tt>
- section.</p>
- <p>This section specifies what users and groups are trusted. The
- current user is always trusted. To trust everybody, list a user or a
- group with name <tt class="docutils literal">*</tt>. These settings must be placed in an
- <em>already-trusted file</em> to take effect, such as <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt> of the
- user or service running Mercurial.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">users</tt></dt>
- <dd>Comma-separated list of trusted users.</dd>
- <dt><tt class="docutils literal">groups</tt></dt>
- <dd>Comma-separated list of trusted groups.</dd>
- </dl>
- </div>
- <div class="section" id="ui">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">ui</tt></a></h2>
- <p>User interface controls.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">archivemeta</tt></dt>
- <dd>Whether to include the .hg_archival.txt file containing meta data
- (hashes for the repository base and for tip) in archives created
- by the <a class="reference external" href="hg.1.html#archive"><tt class="docutils literal">hg archive</tt></a> command or downloaded via hgweb.
- Default is True.</dd>
- <dt><tt class="docutils literal">askusername</tt></dt>
- <dd>Whether to prompt for a username when committing. If True, and
- neither <tt class="docutils literal">$HGUSER</tt> nor <tt class="docutils literal">$EMAIL</tt> has been specified, then the user will
- be prompted to enter a username. If no username is entered, the
- default <tt class="docutils literal">USER@HOST</tt> is used instead.
- Default is False.</dd>
- <dt><tt class="docutils literal">commitsubrepos</tt></dt>
- <dd>Whether to commit modified subrepositories when committing the
- parent repository. If False and one subrepository has uncommitted
- changes, abort the commit.
- Default is False.</dd>
- <dt><tt class="docutils literal">debug</tt></dt>
- <dd>Print debugging information. True or False. Default is False.</dd>
- <dt><tt class="docutils literal">editor</tt></dt>
- <dd>The editor to use during a commit. Default is <tt class="docutils literal">$EDITOR</tt> or <tt class="docutils literal">vi</tt>.</dd>
- <dt><tt class="docutils literal">fallbackencoding</tt></dt>
- <dd>Encoding to try if it's not possible to decode the changelog using
- UTF-8. Default is ISO-8859-1.</dd>
- <dt><tt class="docutils literal">ignore</tt></dt>
- <dd>A file to read per-user ignore patterns from. This file should be
- in the same format as a repository-wide .hgignore file. Filenames
- are relative to the repository root. This option supports hook syntax,
- so if you want to specify multiple ignore files, you can do so by
- setting something like <tt class="docutils literal">ignore.other = <span class="pre">~/.hgignore2</span></tt>. For details
- of the ignore file format, see the <tt class="docutils literal">hgignore(5)</tt> man page.</dd>
- <dt><tt class="docutils literal">interactive</tt></dt>
- <dd>Allow to prompt the user. True or False. Default is True.</dd>
- <dt><tt class="docutils literal">logtemplate</tt></dt>
- <dd>Template string for commands that print changesets.</dd>
- <dt><tt class="docutils literal">merge</tt></dt>
- <dd>The conflict resolution program to use during a manual merge.
- For more information on merge tools see <a class="reference external" href="hg.1.html#merge-tools"><tt class="docutils literal">hg help <span class="pre">merge-tools</span></tt></a>.
- For configuring merge tools see the <tt class="docutils literal"><span class="pre">[merge-tools]</span></tt> section.</dd>
- <dt><tt class="docutils literal">mergemarkers</tt></dt>
- <dd>Sets the merge conflict marker label styling. The <tt class="docutils literal">detailed</tt>
- style uses the <tt class="docutils literal">mergemarkertemplate</tt> setting to style the labels.
- The <tt class="docutils literal">basic</tt> style just uses 'local' and 'other' as the marker label.
- One of <tt class="docutils literal">basic</tt> or <tt class="docutils literal">detailed</tt>.
- Default is <tt class="docutils literal">basic</tt>.</dd>
- <dt><tt class="docutils literal">mergemarkertemplate</tt></dt>
- <dd>The template used to print the commit description next to each conflict
- marker during merge conflicts. See <a class="reference external" href="hg.1.html#templates"><tt class="docutils literal">hg help templates</tt></a> for the template
- format.
- Defaults to showing the hash, tags, branches, bookmarks, author, and
- the first line of the commit description.
- If you use non-ASCII characters in names for tags, branches, bookmarks,
- authors, and/or commit descriptions, you must pay attention to encodings of
- managed files. At template expansion, non-ASCII characters use the encoding
- specified by the <tt class="docutils literal"><span class="pre">--encoding</span></tt> global option, <tt class="docutils literal">HGENCODING</tt> or other
- environment variables that govern your locale. If the encoding of the merge
- markers is different from the encoding of the merged files,
- serious problems may occur.</dd>
- <dt><tt class="docutils literal">patch</tt></dt>
- <dd><p class="first">An optional external tool that <tt class="docutils literal">hg import</tt> and some extensions
- will use for applying patches. By default Mercurial uses an
- internal patch utility. The external tool must work as the common
- Unix <tt class="docutils literal">patch</tt> program. In particular, it must accept a <tt class="docutils literal"><span class="pre">-p</span></tt>
- argument to strip patch headers, a <tt class="docutils literal"><span class="pre">-d</span></tt> argument to specify the
- current directory, a file name to patch, and a patch file to take
- from stdin.</p>
- <p class="last">It is possible to specify a patch tool together with extra
- arguments. For example, setting this option to <tt class="docutils literal">patch <span class="pre">--merge</span></tt>
- will use the <tt class="docutils literal">patch</tt> program with its 2-way merge option.</p>
- </dd>
- <dt><tt class="docutils literal">portablefilenames</tt></dt>
- <dd>Check for portable filenames. Can be <tt class="docutils literal">warn</tt>, <tt class="docutils literal">ignore</tt> or <tt class="docutils literal">abort</tt>.
- Default is <tt class="docutils literal">warn</tt>.
- If set to <tt class="docutils literal">warn</tt> (or <tt class="docutils literal">true</tt>), a warning message is printed on POSIX
- platforms, if a file with a non-portable filename is added (e.g. a file
- with a name that can't be created on Windows because it contains reserved
- parts like <tt class="docutils literal">AUX</tt>, reserved characters like <tt class="docutils literal">:</tt>, or would cause a case
- collision with an existing file).
- If set to <tt class="docutils literal">ignore</tt> (or <tt class="docutils literal">false</tt>), no warning is printed.
- If set to <tt class="docutils literal">abort</tt>, the command is aborted.
- On Windows, this configuration option is ignored and the command aborted.</dd>
- <dt><tt class="docutils literal">quiet</tt></dt>
- <dd>Reduce the amount of output printed. True or False. Default is False.</dd>
- <dt><tt class="docutils literal">remotecmd</tt></dt>
- <dd>remote command to use for clone/push/pull operations. Default is <tt class="docutils literal">hg</tt>.</dd>
- <dt><tt class="docutils literal">report_untrusted</tt></dt>
- <dd>Warn if a <tt class="docutils literal">.hg/hgrc</tt> file is ignored due to not being owned by a
- trusted user or group. True or False. Default is True.</dd>
- <dt><tt class="docutils literal">slash</tt></dt>
- <dd>Display paths using a slash (<tt class="docutils literal">/</tt>) as the path separator. This
- only makes a difference on systems where the default path
- separator is not the slash character (e.g. Windows uses the
- backslash character (<tt class="docutils literal">\</tt>)).
- Default is False.</dd>
- <dt><tt class="docutils literal">statuscopies</tt></dt>
- <dd>Display copies in the status command.</dd>
- <dt><tt class="docutils literal">ssh</tt></dt>
- <dd>command to use for SSH connections. Default is <tt class="docutils literal">ssh</tt>.</dd>
- <dt><tt class="docutils literal">strict</tt></dt>
- <dd>Require exact command names, instead of allowing unambiguous
- abbreviations. True or False. Default is False.</dd>
- <dt><tt class="docutils literal">style</tt></dt>
- <dd>Name of style to use for command output.</dd>
- <dt><tt class="docutils literal">timeout</tt></dt>
- <dd>The timeout used when a lock is held (in seconds), a negative value
- means no timeout. Default is 600.</dd>
- <dt><tt class="docutils literal">traceback</tt></dt>
- <dd>Mercurial always prints a traceback when an unknown exception
- occurs. Setting this to True will make Mercurial print a traceback
- on all exceptions, even those recognized by Mercurial (such as
- IOError or MemoryError). Default is False.</dd>
- <dt><tt class="docutils literal">username</tt></dt>
- <dd>The committer of a changeset created when running "commit".
- Typically a person's name and email address, e.g. <tt class="docutils literal">Fred Widget
- <fred@example.com></tt>. Default is <tt class="docutils literal">$EMAIL</tt> or <tt class="docutils literal">username@hostname</tt>. If
- the username in hgrc is empty, it has to be specified manually or
- in a different hgrc file (e.g. <tt class="docutils literal"><span class="pre">$HOME/.hgrc</span></tt>, if the admin set
- <tt class="docutils literal">username =</tt> in the system hgrc). Environment variables in the
- username are expanded.</dd>
- <dt><tt class="docutils literal">verbose</tt></dt>
- <dd>Increase the amount of output printed. True or False. Default is False.</dd>
- </dl>
- </div>
- <div class="section" id="web">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">web</tt></a></h2>
- <p>Web interface configuration. The settings in this section apply to
- both the builtin webserver (started by <a class="reference external" href="hg.1.html#serve"><tt class="docutils literal">hg serve</tt></a>) and the script you
- run through a webserver (<tt class="docutils literal">hgweb.cgi</tt> and the derivatives for FastCGI
- and WSGI).</p>
- <p>The Mercurial webserver does no authentication (it does not prompt for
- usernames and passwords to validate <em>who</em> users are), but it does do
- authorization (it grants or denies access for <em>authenticated users</em>
- based on settings in this section). You must either configure your
- webserver to do authentication for you, or disable the authorization
- checks.</p>
- <p>For a quick setup in a trusted environment, e.g., a private LAN, where
- you want it to accept pushes from anybody, you can use the following
- command line:</p>
- <pre class="literal-block">
- $ hg --config web.allow_push=* --config web.push_ssl=False serve
- </pre>
- <p>Note that this will allow anybody to push anything to the server and
- that this should not be used for public servers.</p>
- <p>The full set of options is:</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">accesslog</tt></dt>
- <dd>Where to output the access log. Default is stdout.</dd>
- <dt><tt class="docutils literal">address</tt></dt>
- <dd>Interface address to bind to. Default is all.</dd>
- <dt><tt class="docutils literal">allow_archive</tt></dt>
- <dd>List of archive format (bz2, gz, zip) allowed for downloading.
- Default is empty.</dd>
- <dt><tt class="docutils literal">allowbz2</tt></dt>
- <dd>(DEPRECATED) Whether to allow .tar.bz2 downloading of repository
- revisions.
- Default is False.</dd>
- <dt><tt class="docutils literal">allowgz</tt></dt>
- <dd>(DEPRECATED) Whether to allow .tar.gz downloading of repository
- revisions.
- Default is False.</dd>
- <dt><tt class="docutils literal">allowpull</tt></dt>
- <dd>Whether to allow pulling from the repository. Default is True.</dd>
- <dt><tt class="docutils literal">allow_push</tt></dt>
- <dd>Whether to allow pushing to the repository. If empty or not set,
- push is not allowed. If the special value <tt class="docutils literal">*</tt>, any remote user can
- push, including unauthenticated users. Otherwise, the remote user
- must have been authenticated, and the authenticated user name must
- be present in this list. The contents of the allow_push list are
- examined after the deny_push list.</dd>
- <dt><tt class="docutils literal">allow_read</tt></dt>
- <dd>If the user has not already been denied repository access due to
- the contents of deny_read, this list determines whether to grant
- repository access to the user. If this list is not empty, and the
- user is unauthenticated or not present in the list, then access is
- denied for the user. If the list is empty or not set, then access
- is permitted to all users by default. Setting allow_read to the
- special value <tt class="docutils literal">*</tt> is equivalent to it not being set (i.e. access
- is permitted to all users). The contents of the allow_read list are
- examined after the deny_read list.</dd>
- <dt><tt class="docutils literal">allowzip</tt></dt>
- <dd>(DEPRECATED) Whether to allow .zip downloading of repository
- revisions. Default is False. This feature creates temporary files.</dd>
- <dt><tt class="docutils literal">archivesubrepos</tt></dt>
- <dd>Whether to recurse into subrepositories when archiving. Default is
- False.</dd>
- <dt><tt class="docutils literal">baseurl</tt></dt>
- <dd>Base URL to use when publishing URLs in other locations, so
- third-party tools like email notification hooks can construct
- URLs. Example: <tt class="docutils literal"><span class="pre">http://hgserver/repos/</span></tt>.</dd>
- <dt><tt class="docutils literal">cacerts</tt></dt>
- <dd><p class="first">Path to file containing a list of PEM encoded certificate
- authority certificates. Environment variables and <tt class="docutils literal">~user</tt>
- constructs are expanded in the filename. If specified on the
- client, then it will verify the identity of remote HTTPS servers
- with these certificates.</p>
- <p>This feature is only supported when using Python 2.6 or later. If you wish
- to use it with earlier versions of Python, install the backported
- version of the ssl library that is available from
- <tt class="docutils literal"><span class="pre">http://pypi.python.org</span></tt>.</p>
- <p>To disable SSL verification temporarily, specify <tt class="docutils literal"><span class="pre">--insecure</span></tt> from
- command line.</p>
- <p>You can use OpenSSL's CA certificate file if your platform has
- one. On most Linux systems this will be
- <tt class="docutils literal"><span class="pre">/etc/ssl/certs/ca-certificates.crt</span></tt>. Otherwise you will have to
- generate this file manually. The form must be as follows:</p>
- <pre class="last literal-block">
- -----BEGIN CERTIFICATE-----
- ... (certificate in base64 PEM encoding) ...
- -----END CERTIFICATE-----
- -----BEGIN CERTIFICATE-----
- ... (certificate in base64 PEM encoding) ...
- -----END CERTIFICATE-----
- </pre>
- </dd>
- <dt><tt class="docutils literal">cache</tt></dt>
- <dd>Whether to support caching in hgweb. Defaults to True.</dd>
- <dt><tt class="docutils literal">certificate</tt></dt>
- <dd>Certificate to use when running <a class="reference external" href="hg.1.html#serve"><tt class="docutils literal">hg serve</tt></a>.</dd>
- <dt><tt class="docutils literal">collapse</tt></dt>
- <dd>With <tt class="docutils literal">descend</tt> enabled, repositories in subdirectories are shown at
- a single level alongside repositories in the current path. With
- <tt class="docutils literal">collapse</tt> also enabled, repositories residing at a deeper level than
- the current path are grouped behind navigable directory entries that
- lead to the locations of these repositories. In effect, this setting
- collapses each collection of repositories found within a subdirectory
- into a single entry for that subdirectory. Default is False.</dd>
- <dt><tt class="docutils literal">comparisoncontext</tt></dt>
- <dd>Number of lines of context to show in side-by-side file comparison. If
- negative or the value <tt class="docutils literal">full</tt>, whole files are shown. Default is 5.
- This setting can be overridden by a <tt class="docutils literal">context</tt> request parameter to the
- <tt class="docutils literal">comparison</tt> command, taking the same values.</dd>
- <dt><tt class="docutils literal">contact</tt></dt>
- <dd>Name or email address of the person in charge of the repository.
- Defaults to ui.username or <tt class="docutils literal">$EMAIL</tt> or "unknown" if unset or empty.</dd>
- <dt><tt class="docutils literal">deny_push</tt></dt>
- <dd>Whether to deny pushing to the repository. If empty or not set,
- push is not denied. If the special value <tt class="docutils literal">*</tt>, all remote users are
- denied push. Otherwise, unauthenticated users are all denied, and
- any authenticated user name present in this list is also denied. The
- contents of the deny_push list are examined before the allow_push list.</dd>
- <dt><tt class="docutils literal">deny_read</tt></dt>
- <dd>Whether to deny reading/viewing of the repository. If this list is
- not empty, unauthenticated users are all denied, and any
- authenticated user name present in this list is also denied access to
- the repository. If set to the special value <tt class="docutils literal">*</tt>, all remote users
- are denied access (rarely needed ;). If deny_read is empty or not set,
- the determination of repository access depends on the presence and
- content of the allow_read list (see description). If both
- deny_read and allow_read are empty or not set, then access is
- permitted to all users by default. If the repository is being
- served via hgwebdir, denied users will not be able to see it in
- the list of repositories. The contents of the deny_read list have
- priority over (are examined before) the contents of the allow_read
- list.</dd>
- <dt><tt class="docutils literal">descend</tt></dt>
- <dd>hgwebdir indexes will not descend into subdirectories. Only repositories
- directly in the current path will be shown (other repositories are still
- available from the index corresponding to their containing path).</dd>
- <dt><tt class="docutils literal">description</tt></dt>
- <dd>Textual description of the repository's purpose or contents.
- Default is "unknown".</dd>
- <dt><tt class="docutils literal">encoding</tt></dt>
- <dd>Character encoding name. Default is the current locale charset.
- Example: "UTF-8"</dd>
- <dt><tt class="docutils literal">errorlog</tt></dt>
- <dd>Where to output the error log. Default is stderr.</dd>
- <dt><tt class="docutils literal">guessmime</tt></dt>
- <dd>Control MIME types for raw download of file content.
- Set to True to let hgweb guess the content type from the file
- extension. This will serve HTML files as <tt class="docutils literal">text/html</tt> and might
- allow cross-site scripting attacks when serving untrusted
- repositories. Default is False.</dd>
- <dt><tt class="docutils literal">hidden</tt></dt>
- <dd>Whether to hide the repository in the hgwebdir index.
- Default is False.</dd>
- <dt><tt class="docutils literal">ipv6</tt></dt>
- <dd>Whether to use IPv6. Default is False.</dd>
- <dt><tt class="docutils literal">logoimg</tt></dt>
- <dd>File name of the logo image that some templates display on each page.
- The file name is relative to <tt class="docutils literal">staticurl</tt>. That is, the full path to
- the logo image is "staticurl/logoimg".
- If unset, <tt class="docutils literal">hglogo.png</tt> will be used.</dd>
- <dt><tt class="docutils literal">logourl</tt></dt>
- <dd>Base URL to use for logos. If unset, <tt class="docutils literal"><span class="pre">http://mercurial.selenic.com/</span></tt>
- will be used.</dd>
- <dt><tt class="docutils literal">maxchanges</tt></dt>
- <dd>Maximum number of changes to list on the changelog. Default is 10.</dd>
- <dt><tt class="docutils literal">maxfiles</tt></dt>
- <dd>Maximum number of files to list per changeset. Default is 10.</dd>
- <dt><tt class="docutils literal">maxshortchanges</tt></dt>
- <dd>Maximum number of changes to list on the shortlog, graph or filelog
- pages. Default is 60.</dd>
- <dt><tt class="docutils literal">name</tt></dt>
- <dd>Repository name to use in the web interface. Default is current
- working directory.</dd>
- <dt><tt class="docutils literal">port</tt></dt>
- <dd>Port to listen on. Default is 8000.</dd>
- <dt><tt class="docutils literal">prefix</tt></dt>
- <dd>Prefix path to serve from. Default is '' (server root).</dd>
- <dt><tt class="docutils literal">push_ssl</tt></dt>
- <dd>Whether to require that inbound pushes be transported over SSL to
- prevent password sniffing. Default is True.</dd>
- <dt><tt class="docutils literal">staticurl</tt></dt>
- <dd>Base URL to use for static files. If unset, static files (e.g. the
- hgicon.png favicon) will be served by the CGI script itself. Use
- this setting to serve them directly with the HTTP server.
- Example: <tt class="docutils literal"><span class="pre">http://hgserver/static/</span></tt>.</dd>
- <dt><tt class="docutils literal">stripes</tt></dt>
- <dd>How many lines a "zebra stripe" should span in multi-line output.
- Default is 1; set to 0 to disable.</dd>
- <dt><tt class="docutils literal">style</tt></dt>
- <dd>Which template map style to use. The available options are the names of
- subdirectories in the HTML templates path. Default is <tt class="docutils literal">paper</tt>.
- Example: <tt class="docutils literal">monoblue</tt></dd>
- <dt><tt class="docutils literal">templates</tt></dt>
- <dd>Where to find the HTML templates. The default path to the HTML templates
- can be obtained from <tt class="docutils literal">hg debuginstall</tt>.</dd>
- </dl>
- </div>
- <div class="section" id="websub">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">websub</tt></a></h2>
- <p>Web substitution filter definition. You can use this section to
- define a set of regular expression substitution patterns which
- let you automatically modify the hgweb server output.</p>
- <p>The default hgweb templates only apply these substitution patterns
- on the revision description fields. You can apply them anywhere
- you want when you create your own templates by adding calls to the
- "websub" filter (usually after calling the "escape" filter).</p>
- <p>This can be used, for example, to convert issue references to links
- to your issue tracker, or to convert "markdown-like" syntax into
- HTML (see the examples below).</p>
- <p>Each entry in this section names a substitution filter.
- The value of each entry defines the substitution expression itself.
- The websub expressions follow the old interhg extension syntax,
- which in turn imitates the Unix sed replacement syntax:</p>
- <pre class="literal-block">
- patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
- </pre>
- <p>You can use any separator other than "/". The final "i" is optional
- and indicates that the search must be case insensitive.</p>
- <p>Examples:</p>
- <pre class="literal-block">
- [websub]
- issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
- italic = s/\b_(\S+)_\b/<i>\1<\/i>/
- bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
- </pre>
- </div>
- <div class="section" id="worker">
- <h2><a class="toc-backref" href="#contents"><tt class="docutils literal">worker</tt></a></h2>
- <p>Parallel master/worker configuration. We currently perform working
- directory updates in parallel on Unix-like systems, which greatly
- helps performance.</p>
- <dl class="docutils">
- <dt><tt class="docutils literal">numcpus</tt></dt>
- <dd>Number of CPUs to use for parallel operations. Default is 4 or the
- number of CPUs on the system, whichever is larger. A zero or
- negative value is treated as <tt class="docutils literal">use the default</tt>.</dd>
- </dl>
- </div>
- </div>
- <div class="section" id="author">
- <h1><a class="toc-backref" href="#contents">Author</a></h1>
- <p>Bryan O'Sullivan <<a class="reference external" href="mailto:bos@serpentine.com">bos@serpentine.com</a>>.</p>
- <p>Mercurial was written by Matt Mackall <<a class="reference external" href="mailto:mpm@selenic.com">mpm@selenic.com</a>>.</p>
- </div>
- <div class="section" id="see-also">
- <h1><a class="toc-backref" href="#contents">See Also</a></h1>
- <p><a class="reference external" href="hg.1.html"><strong>hg</strong>(1)</a>, <a class="reference external" href="hgignore.5.html"><strong>hgignore</strong>(5)</a></p>
- </div>
- <div class="section" id="copying">
- <h1><a class="toc-backref" href="#contents">Copying</a></h1>
- <p>This manual page is copyright 2005 Bryan O'Sullivan.
- Mercurial is copyright 2005-2015 Matt Mackall.
- Free use of this software is granted under the terms of the GNU General
- Public License version 2 or any later version.</p>
- <span class="target" id="common"></span><!-- Common link and substitution definitions. -->
- </div>
- </div>
- </body>
- </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15913 | Doug_Napoleone | Initial checkin of the latest stabel mercurial to then integrate the changes from //guest/...sven_erik_knop/mercurial on top of (preserving the new HG code). The purpose is to get it working with the latest version of HG. « |
10 years ago |