|
|
======
|
|
|
hgrc
|
|
|
======
|
|
|
|
|
|
---------------------------------
|
|
|
configuration files for Mercurial
|
|
|
---------------------------------
|
|
|
|
|
|
:Author: Bryan O'Sullivan <bos@serpentine.com>
|
|
|
:Organization: Mercurial
|
|
|
:Manual section: 5
|
|
|
:Manual group: Mercurial Manual
|
|
|
|
|
|
.. contents::
|
|
|
:backlinks: top
|
|
|
:class: htmlonly
|
|
|
|
|
|
|
|
|
Synopsis
|
|
|
--------
|
|
|
|
|
|
The Mercurial system uses a set of configuration files to control
|
|
|
aspects of its behavior.
|
|
|
|
|
|
Files
|
|
|
-----
|
|
|
|
|
|
Mercurial reads configuration data from several files, if they exist.
|
|
|
The names of these files depend on the system on which Mercurial is
|
|
|
installed. ``*.rc`` 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.
|
|
|
|
|
|
| (Unix, Windows) ``<repo>/.hg/hgrc``
|
|
|
|
|
|
Per-repository configuration options that 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
|
|
|
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
|
|
|
trusted_ section below for more details.
|
|
|
|
|
|
| (Unix) ``$HOME/.hgrc``
|
|
|
| (Windows) ``%USERPROFILE%\.hgrc``
|
|
|
| (Windows) ``%USERPROFILE%\Mercurial.ini``
|
|
|
| (Windows) ``%HOME%\.hgrc``
|
|
|
| (Windows) ``%HOME%\Mercurial.ini``
|
|
|
|
|
|
Per-user configuration file(s), for the user running Mercurial. On
|
|
|
Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. 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.
|
|
|
|
|
|
| (Unix) ``/etc/mercurial/hgrc``
|
|
|
| (Unix) ``/etc/mercurial/hgrc.d/*.rc``
|
|
|
|
|
|
Per-system configuration files, 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.
|
|
|
|
|
|
| (Unix) ``<install-root>/etc/mercurial/hgrc``
|
|
|
| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
|
|
|
|
|
|
Per-installation configuration files, searched for in the
|
|
|
directory where Mercurial is installed. ``<install-root>`` is the
|
|
|
parent directory of the **hg** executable (or symlink) being run. For
|
|
|
example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
|
|
|
in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
|
|
|
to all Mercurial commands executed by any user in any directory.
|
|
|
|
|
|
| (Windows) ``C:\Mercurial\Mercurial.ini``
|
|
|
| (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
|
|
|
| (Windows) ``<install-dir>\Mercurial.ini``
|
|
|
|
|
|
Per-installation/system configuration files, 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 ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
|
|
|
be read.
|
|
|
|
|
|
Syntax
|
|
|
------
|
|
|
|
|
|
A configuration file consists of sections, led by a ``[section]`` header
|
|
|
and followed by ``name = value`` entries::
|
|
|
|
|
|
[spam]
|
|
|
eggs=ham
|
|
|
green=
|
|
|
eggs
|
|
|
|
|
|
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
|
|
|
``#`` or ``;`` are ignored and may be used to provide comments.
|
|
|
|
|
|
A line of the form ``%include file`` will include ``file`` 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 ``%include`` directive is found.
|
|
|
|
|
|
A line with ``%unset name`` will remove ``name`` from the current
|
|
|
section, if it has been set previously.
|
|
|
|
|
|
|
|
|
Sections
|
|
|
--------
|
|
|
|
|
|
This section describes the different sections that may appear in a
|
|
|
Mercurial "hgrc" file, the purpose of each section, its possible keys,
|
|
|
and their possible values.
|
|
|
|
|
|
``alias``
|
|
|
"""""""""
|
|
|
Defines command aliases.
|
|
|
Aliases allow you to define your own commands in terms of other
|
|
|
commands (or aliases), optionally including arguments.
|
|
|
|
|
|
Alias definitions consist of lines of the form::
|
|
|
|
|
|
<alias> = <command> [<argument]...
|
|
|
|
|
|
For example, this definition::
|
|
|
|
|
|
latest = log --limit 5
|
|
|
|
|
|
creates a new command ``latest`` that shows only the five most recent
|
|
|
changesets. You can define subsequent aliases using earlier ones::
|
|
|
|
|
|
stable5 = latest -b stable
|
|
|
|
|
|
.. note:: 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!
|
|
|
|
|
|
|
|
|
``auth``
|
|
|
""""""""
|
|
|
Authentication credentials for HTTP authentication. Each line has
|
|
|
the following format::
|
|
|
|
|
|
<name>.<argument> = <value>
|
|
|
|
|
|
where ``<name>`` is used to group arguments into authentication
|
|
|
entries. Example::
|
|
|
|
|
|
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
|
|
|
|
|
|
Supported arguments:
|
|
|
|
|
|
``prefix``
|
|
|
Either ``*`` or a URI prefix with or without the scheme part.
|
|
|
The authentication entry with the longest matching prefix is used
|
|
|
(where ``*`` 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.
|
|
|
``username``
|
|
|
Optional. Username to authenticate with. If not given, and the
|
|
|
remote site requires basic or digest authentication, the user
|
|
|
will be prompted for it.
|
|
|
``password``
|
|
|
Optional. Password to authenticate with. If not given, and the
|
|
|
remote site requires basic or digest authentication, the user
|
|
|
will be prompted for it.
|
|
|
``key``
|
|
|
Optional. PEM encoded client certificate key file.
|
|
|
``cert``
|
|
|
Optional. PEM encoded client certificate chain file.
|
|
|
``schemes``
|
|
|
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.
|
|
|
|
|
|
If no suitable authentication entry is found, the user is prompted
|
|
|
for credentials as usual if required by the remote.
|
|
|
|
|
|
|
|
|
``decode/encode``
|
|
|
"""""""""""""""""
|
|
|
Filters for transforming files on checkout/checkin. This would
|
|
|
typically be used for newline processing or other
|
|
|
localization/canonicalization of files.
|
|
|
|
|
|
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 ``.txt`` in the root
|
|
|
directory only, use the pattern ``*.txt``. To match any file ending
|
|
|
in ``.c`` anywhere in the repository, use the pattern ``**.c``.
|
|
|
For each file only the first matching filter applies.
|
|
|
|
|
|
The filter command can start with a specifier, either ``pipe:`` or
|
|
|
``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
|
|
|
|
|
|
A ``pipe:`` command must accept data on stdin and return the transformed
|
|
|
data on stdout.
|
|
|
|
|
|
Pipe example::
|
|
|
|
|
|
[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
|
|
|
|
|
|
A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
|
|
|
with the name of a temporary file that contains the data to be
|
|
|
filtered by the command. The string ``OUTFILE`` is replaced with the name
|
|
|
of an empty temporary file, where the filtered data must be written by
|
|
|
the command.
|
|
|
|
|
|
.. note:: 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.
|
|
|
|
|
|
The most common usage is for LF <-> CRLF translation on Windows. For
|
|
|
this, use the "smart" converters which check for binary files::
|
|
|
|
|
|
[extensions]
|
|
|
hgext.win32text =
|
|
|
[encode]
|
|
|
** = cleverencode:
|
|
|
[decode]
|
|
|
** = cleverdecode:
|
|
|
|
|
|
or if you only want to translate certain files::
|
|
|
|
|
|
[extensions]
|
|
|
hgext.win32text =
|
|
|
[encode]
|
|
|
**.txt = dumbencode:
|
|
|
[decode]
|
|
|
**.txt = dumbdecode:
|
|
|
|
|
|
|
|
|
``defaults``
|
|
|
""""""""""""
|
|
|
|
|
|
(defaults are deprecated. Don't use them. Use aliases instead)
|
|
|
|
|
|
Use the ``[defaults]`` section to define command defaults, i.e. the
|
|
|
default options/arguments to pass to the specified commands.
|
|
|
|
|
|
The following example makes ``hg log`` run in verbose mode, and ``hg
|
|
|
status`` show only the modified files, by default::
|
|
|
|
|
|
[defaults]
|
|
|
log = -v
|
|
|
status = -m
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
``diff``
|
|
|
""""""""
|
|
|
|
|
|
Settings used when displaying diffs. They are all Boolean and
|
|
|
defaults to False.
|
|
|
|
|
|
``git``
|
|
|
Use git extended diff format.
|
|
|
``nodates``
|
|
|
Don't include dates in diff headers.
|
|
|
``showfunc``
|
|
|
Show which function each change is in.
|
|
|
``ignorews``
|
|
|
Ignore white space when comparing lines.
|
|
|
``ignorewsamount``
|
|
|
Ignore changes in the amount of white space.
|
|
|
``ignoreblanklines``
|
|
|
Ignore changes whose lines are all blank.
|
|
|
|
|
|
``email``
|
|
|
"""""""""
|
|
|
Settings for extensions that send email messages.
|
|
|
|
|
|
``from``
|
|
|
Optional. Email address to use in "From" header and SMTP envelope
|
|
|
of outgoing messages.
|
|
|
``to``
|
|
|
Optional. Comma-separated list of recipients' email addresses.
|
|
|
``cc``
|
|
|
Optional. Comma-separated list of carbon copy recipients'
|
|
|
email addresses.
|
|
|
``bcc``
|
|
|
Optional. Comma-separated list of blind carbon copy recipients'
|
|
|
email addresses. Cannot be set interactively.
|
|
|
``method``
|
|
|
Optional. Method to use to send email messages. If value is ``smtp``
|
|
|
(default), use SMTP (see the SMTP_ section for configuration).
|
|
|
Otherwise, use as name of program to run that acts like sendmail
|
|
|
(takes ``-f`` option for sender, list of recipients on command line,
|
|
|
message on stdin). Normally, setting this to ``sendmail`` or
|
|
|
``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
|
|
|
``charsets``
|
|
|
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
|
|
|
(``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
|
|
|
conversion fails, the text in question is sent as is. Defaults to
|
|
|
empty (explicit) list.
|
|
|
|
|
|
Order of outgoing email character sets:
|
|
|
|
|
|
1. ``us-ascii``: always first, regardless of settings
|
|
|
2. ``email.charsets``: in order given by user
|
|
|
3. ``ui.fallbackencoding``: if not in email.charsets
|
|
|
4. ``$HGENCODING``: if not in email.charsets
|
|
|
5. ``utf-8``: always last, regardless of settings
|
|
|
|
|
|
Email example::
|
|
|
|
|
|
[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
|
|
|
|
|
|
|
|
|
``extensions``
|
|
|
""""""""""""""
|
|
|
|
|
|
Mercurial has an extension mechanism for adding new features. To
|
|
|
enable an extension, create an entry for it in this section.
|
|
|
|
|
|
If you know that the extension is already in Python's search path,
|
|
|
you can give the name of the module, followed by ``=``, with nothing
|
|
|
after the ``=``.
|
|
|
|
|
|
Otherwise, give a name that you choose, followed by ``=``, followed by
|
|
|
the path to the ``.py`` file (including the file name extension) that
|
|
|
defines the extension.
|
|
|
|
|
|
To explicitly disable an extension that is enabled in an hgrc of
|
|
|
broader scope, prepend its path with ``!``, as in
|
|
|
``hgext.foo = !/ext/path`` or ``hgext.foo = !`` when path is not
|
|
|
supplied.
|
|
|
|
|
|
Example for ``~/.hgrc``::
|
|
|
|
|
|
[extensions]
|
|
|
# (the mq extension will get loaded from Mercurial's path)
|
|
|
hgext.mq =
|
|
|
# (this extension will get loaded from the file specified)
|
|
|
myfeature = ~/.hgext/myfeature.py
|
|
|
|
|
|
|
|
|
``format``
|
|
|
""""""""""
|
|
|
|
|
|
``usestore``
|
|
|
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.
|
|
|
|
|
|
``usefncache``
|
|
|
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.
|
|
|
|
|
|
``merge-patterns``
|
|
|
""""""""""""""""""
|
|
|
|
|
|
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.
|
|
|
|
|
|
Example::
|
|
|
|
|
|
[merge-patterns]
|
|
|
**.c = kdiff3
|
|
|
**.jpg = myimgmerge
|
|
|
|
|
|
``merge-tools``
|
|
|
"""""""""""""""
|
|
|
|
|
|
This section configures external merge tools to use for file-level
|
|
|
merges.
|
|
|
|
|
|
Example ``~/.hgrc``::
|
|
|
|
|
|
[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
|
|
|
|
|
|
# Define new tool
|
|
|
myHtmlTool.args = -m $local $other $base $output
|
|
|
myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
|
|
|
myHtmlTool.priority = 1
|
|
|
|
|
|
Supported arguments:
|
|
|
|
|
|
``priority``
|
|
|
The priority in which to evaluate this tool.
|
|
|
Default: 0.
|
|
|
``executable``
|
|
|
Either just the name of the executable or its pathname.
|
|
|
Default: the tool name.
|
|
|
``args``
|
|
|
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: ``$base``, ``$local``, ``$other``, ``$output``.
|
|
|
Default: ``$local $base $other``
|
|
|
``premerge``
|
|
|
Attempt to run internal non-interactive 3-way merge tool before
|
|
|
launching external tool.
|
|
|
Default: True
|
|
|
``binary``
|
|
|
This tool can merge binary files. Defaults to False, unless tool
|
|
|
was selected by file pattern match.
|
|
|
``symlink``
|
|
|
This tool can merge symlinks. Defaults to False, even if tool was
|
|
|
selected by file pattern match.
|
|
|
``checkconflicts``
|
|
|
Check whether there are conflicts even though the tool reported
|
|
|
success.
|
|
|
Default: False
|
|
|
``checkchanged``
|
|
|
Check whether outputs were written even though the tool reported
|
|
|
success.
|
|
|
Default: False
|
|
|
``fixeol``
|
|
|
Attempt to fix up EOL changes caused by the merge tool.
|
|
|
Default: False
|
|
|
``gui``
|
|
|
This tool requires a graphical interface to run. Default: False
|
|
|
``regkey``
|
|
|
Windows registry key which describes install location of this
|
|
|
tool. Mercurial will search for this key first under
|
|
|
``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
|
|
|
Default: None
|
|
|
``regname``
|
|
|
Name of value to read from specified registry key. Defaults to the
|
|
|
unnamed (default) value.
|
|
|
``regappend``
|
|
|
String to append to the value read from the registry, typically
|
|
|
the executable name of the tool.
|
|
|
Default: None
|
|
|
|
|
|
|
|
|
``hooks``
|
|
|
"""""""""
|
|
|
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.
|
|
|
|
|
|
Example ``.hg/hgrc``::
|
|
|
|
|
|
[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
|
|
|
|
|
|
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 ``$HG_foo``.
|
|
|
|
|
|
``changegroup``
|
|
|
Run after a changegroup has been added via push, pull or unbundle.
|
|
|
ID of the first new changeset is in ``$HG_NODE``. URL from which
|
|
|
changes came is in ``$HG_URL``.
|
|
|
``commit``
|
|
|
Run after a changeset has been created in the local repository. ID
|
|
|
of the newly created changeset is in ``$HG_NODE``. Parent changeset
|
|
|
IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
|
|
|
``incoming``
|
|
|
Run after a changeset has been pulled, pushed, or unbundled into
|
|
|
the local repository. The ID of the newly arrived changeset is in
|
|
|
``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
|
|
|
``outgoing``
|
|
|
Run after sending changes from local repository to another. ID of
|
|
|
first changeset sent is in ``$HG_NODE``. Source of operation is in
|
|
|
``$HG_SOURCE``; see "preoutgoing" hook for description.
|
|
|
``post-<command>``
|
|
|
Run after successful invocations of the associated command. The
|
|
|
contents of the command line are passed as ``$HG_ARGS`` and the result
|
|
|
code in ``$HG_RESULT``. Hook failure is ignored.
|
|
|
``pre-<command>``
|
|
|
Run before executing the associated command. The contents of the
|
|
|
command line are passed as ``$HG_ARGS``. If the hook returns failure,
|
|
|
the command doesn't execute and Mercurial returns the failure
|
|
|
code.
|
|
|
``prechangegroup``
|
|
|
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 ``$HG_URL``.
|
|
|
``precommit``
|
|
|
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 ``$HG_PARENT1`` and ``$HG_PARENT2``.
|
|
|
``preoutgoing``
|
|
|
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
|
|
|
``$HG_SOURCE``. 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.
|
|
|
``pretag``
|
|
|
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 ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
|
|
|
local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
|
|
|
``pretxnchangegroup``
|
|
|
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
|
|
|
``$HG_NODE``. 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
|
|
|
``$HG_URL``.
|
|
|
``pretxncommit``
|
|
|
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 ``$HG_NODE``. Parent changeset
|
|
|
IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
|
|
|
``preupdate``
|
|
|
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 ``$HG_PARENT1``. If merge, ID
|
|
|
of second new parent is in ``$HG_PARENT2``.
|
|
|
``tag``
|
|
|
Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
|
|
|
Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
|
|
|
repository if ``$HG_LOCAL=0``.
|
|
|
``update``
|
|
|
Run after updating the working directory. Changeset ID of first
|
|
|
new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
|
|
|
in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
|
|
|
update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
|
|
|
|
|
|
.. note:: 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.
|
|
|
|
|
|
.. note:: Environment variables with empty values may not be passed to
|
|
|
hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
|
|
|
will have an empty value under Unix-like platforms for non-merge
|
|
|
changesets, while it will not be available at all under Windows.
|
|
|
|
|
|
The syntax for Python hooks is as follows::
|
|
|
|
|
|
hookname = python:modulename.submodule.callable
|
|
|
hookname = python:/path/to/python/module.py:callable
|
|
|
|
|
|
Python hooks are run within the Mercurial process. Each hook is
|
|
|
called with at least three keyword arguments: a ui object (keyword
|
|
|
``ui``), a repository object (keyword ``repo``), and a ``hooktype``
|
|
|
keyword that tells what kind of hook is used. Arguments listed as
|
|
|
environment variables above are passed as keyword arguments, with no
|
|
|
``HG_`` prefix, and names in lower case.
|
|
|
|
|
|
If a Python hook returns a "true" value or raises an exception, this
|
|
|
is treated as a failure.
|
|
|
|
|
|
|
|
|
``http_proxy``
|
|
|
""""""""""""""
|
|
|
Used to access web-based Mercurial repositories through a HTTP
|
|
|
proxy.
|
|
|
|
|
|
``host``
|
|
|
Host name and (optional) port of the proxy server, for example
|
|
|
"myproxy:8000".
|
|
|
``no``
|
|
|
Optional. Comma-separated list of host names that should bypass
|
|
|
the proxy.
|
|
|
``passwd``
|
|
|
Optional. Password to authenticate with at the proxy server.
|
|
|
``user``
|
|
|
Optional. User name to authenticate with at the proxy server.
|
|
|
|
|
|
``smtp``
|
|
|
""""""""
|
|
|
Configuration for extensions that need to send email messages.
|
|
|
|
|
|
``host``
|
|
|
Host name of mail server, e.g. "mail.example.com".
|
|
|
``port``
|
|
|
Optional. Port to connect to on mail server. Default: 25.
|
|
|
``tls``
|
|
|
Optional. Whether to connect to mail server using TLS. True or
|
|
|
False. Default: False.
|
|
|
``username``
|
|
|
Optional. User name to authenticate to SMTP server with. If
|
|
|
username is specified, password must also be specified.
|
|
|
Default: none.
|
|
|
``password``
|
|
|
Optional. Password to authenticate to SMTP server with. If
|
|
|
username is specified, password must also be specified.
|
|
|
Default: none.
|
|
|
``local_hostname``
|
|
|
Optional. It's the hostname that the sender can use to identify
|
|
|
itself to the MTA.
|
|
|
|
|
|
|
|
|
``patch``
|
|
|
"""""""""
|
|
|
Settings used when applying patches, for instance through the 'import'
|
|
|
command or with Mercurial Queues extension.
|
|
|
|
|
|
``eol``
|
|
|
When set to 'strict' patch content and patched files end of lines
|
|
|
are preserved. When set to ``lf`` or ``crlf``, both files end of lines
|
|
|
are ignored when patching and the result line endings are
|
|
|
normalized to either LF (Unix) or CRLF (Windows).
|
|
|
Default: strict.
|
|
|
|
|
|
|
|
|
``paths``
|
|
|
"""""""""
|
|
|
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.
|
|
|
|
|
|
``default``
|
|
|
Directory or URL to use when pulling if no source is specified.
|
|
|
Default is set to repository from which the current repository was
|
|
|
cloned.
|
|
|
``default-push``
|
|
|
Optional. Directory or URL to use when pushing if no destination
|
|
|
is specified.
|
|
|
|
|
|
|
|
|
``profiling``
|
|
|
"""""""""""""
|
|
|
Specifies profiling format and file output. 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.
|
|
|
|
|
|
``format``
|
|
|
Profiling format.
|
|
|
Default: text.
|
|
|
|
|
|
``text``
|
|
|
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.
|
|
|
``kcachegrind``
|
|
|
Format profiling data for kcachegrind use: when saving to a
|
|
|
file, the generated file can directly be loaded into
|
|
|
kcachegrind.
|
|
|
``output``
|
|
|
File path where profiling data or report should be saved. If the
|
|
|
file exists, it is replaced. Default: None, data is printed on
|
|
|
stderr
|
|
|
|
|
|
``server``
|
|
|
""""""""""
|
|
|
Controls generic server settings.
|
|
|
|
|
|
``uncompressed``
|
|
|
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. Default is False.
|
|
|
|
|
|
|
|
|
``trusted``
|
|
|
"""""""""""
|
|
|
For security reasons, Mercurial will not use the settings in the
|
|
|
``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
|
|
|
user or to a trusted group. The main exception is the web interface,
|
|
|
which automatically uses some safe settings, since it's common to
|
|
|
serve repositories from different users.
|
|
|
|
|
|
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 ``*``.
|
|
|
|
|
|
``users``
|
|
|
Comma-separated list of trusted users.
|
|
|
``groups``
|
|
|
Comma-separated list of trusted groups.
|
|
|
|
|
|
|
|
|
``ui``
|
|
|
""""""
|
|
|
|
|
|
User interface controls.
|
|
|
|
|
|
``archivemeta``
|
|
|
Whether to include the .hg_archival.txt file containing meta data
|
|
|
(hashes for the repository base and for tip) in archives created
|
|
|
by the hg archive command or downloaded via hgweb.
|
|
|
Default is True.
|
|
|
``askusername``
|
|
|
Whether to prompt for a username when committing. If True, and
|
|
|
neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
|
|
|
be prompted to enter a username. If no username is entered, the
|
|
|
default ``USER@HOST`` is used instead.
|
|
|
Default is False.
|
|
|
``debug``
|
|
|
Print debugging information. True or False. Default is False.
|
|
|
``editor``
|
|
|
The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
|
|
|
``fallbackencoding``
|
|
|
Encoding to try if it's not possible to decode the changelog using
|
|
|
UTF-8. Default is ISO-8859-1.
|
|
|
``ignore``
|
|
|
A file to read per-user ignore patterns from. This file should be
|
|
|
in the same format as a repository-wide .hgignore file. This
|
|
|
option supports hook syntax, so if you want to specify multiple
|
|
|
ignore files, you can do so by setting something like
|
|
|
``ignore.other = ~/.hgignore2``. For details of the ignore file
|
|
|
format, see the |hgignore(5)|_ man page.
|
|
|
``interactive``
|
|
|
Allow to prompt the user. True or False. Default is True.
|
|
|
``logtemplate``
|
|
|
Template string for commands that print changesets.
|
|
|
``merge``
|
|
|
The conflict resolution program to use during a manual merge.
|
|
|
There are some internal tools available:
|
|
|
|
|
|
``internal:local``
|
|
|
keep the local version
|
|
|
``internal:other``
|
|
|
use the other version
|
|
|
``internal:merge``
|
|
|
use the internal non-interactive merge tool
|
|
|
``internal:fail``
|
|
|
fail to merge
|
|
|
|
|
|
For more information on configuring merge tools see the
|
|
|
merge-tools_ section.
|
|
|
|
|
|
``patch``
|
|
|
command to use to apply patches. Look for ``gpatch`` or ``patch`` in
|
|
|
PATH if unset.
|
|
|
``quiet``
|
|
|
Reduce the amount of output printed. True or False. Default is False.
|
|
|
``remotecmd``
|
|
|
remote command to use for clone/push/pull operations. Default is ``hg``.
|
|
|
``report_untrusted``
|
|
|
Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
|
|
|
trusted user or group. True or False. Default is True.
|
|
|
``slash``
|
|
|
Display paths using a slash (``/``) 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 (``\``)).
|
|
|
Default is False.
|
|
|
``ssh``
|
|
|
command to use for SSH connections. Default is ``ssh``.
|
|
|
``strict``
|
|
|
Require exact command names, instead of allowing unambiguous
|
|
|
abbreviations. True or False. Default is False.
|
|
|
``style``
|
|
|
Name of style to use for command output.
|
|
|
``timeout``
|
|
|
The timeout used when a lock is held (in seconds), a negative value
|
|
|
means no timeout. Default is 600.
|
|
|
``traceback``
|
|
|
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.
|
|
|
``username``
|
|
|
The committer of a changeset created when running "commit".
|
|
|
Typically a person's name and email address, e.g. ``Fred Widget
|
|
|
<fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
|
|
|
the username in hgrc is empty, it has to be specified manually or
|
|
|
in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
|
|
|
``username =`` in the system hgrc).
|
|
|
``verbose``
|
|
|
Increase the amount of output printed. True or False. Default is False.
|
|
|
|
|
|
|
|
|
``web``
|
|
|
"""""""
|
|
|
Web interface configuration.
|
|
|
|
|
|
``accesslog``
|
|
|
Where to output the access log. Default is stdout.
|
|
|
``address``
|
|
|
Interface address to bind to. Default is all.
|
|
|
``allow_archive``
|
|
|
List of archive format (bz2, gz, zip) allowed for downloading.
|
|
|
Default is empty.
|
|
|
``allowbz2``
|
|
|
(DEPRECATED) Whether to allow .tar.bz2 downloading of repository
|
|
|
revisions.
|
|
|
Default is False.
|
|
|
``allowgz``
|
|
|
(DEPRECATED) Whether to allow .tar.gz downloading of repository
|
|
|
revisions.
|
|
|
Default is False.
|
|
|
``allowpull``
|
|
|
Whether to allow pulling from the repository. Default is True.
|
|
|
``allow_push``
|
|
|
Whether to allow pushing to the repository. If empty or not set,
|
|
|
push is not allowed. If the special value ``*``, 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 (separated by whitespace or ``,``). The
|
|
|
contents of the allow_push list are examined after the deny_push
|
|
|
list.
|
|
|
``allow_read``
|
|
|
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 (separated by
|
|
|
whitespace or ``,``), 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 ``*`` 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.
|
|
|
``allowzip``
|
|
|
(DEPRECATED) Whether to allow .zip downloading of repository
|
|
|
revisions. Default is False. This feature creates temporary files.
|
|
|
``baseurl``
|
|
|
Base URL to use when publishing URLs in other locations, so
|
|
|
third-party tools like email notification hooks can construct
|
|
|
URLs. Example: ``http://hgserver/repos/``.
|
|
|
``contact``
|
|
|
Name or email address of the person in charge of the repository.
|
|
|
Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
|
|
|
``deny_push``
|
|
|
Whether to deny pushing to the repository. If empty or not set,
|
|
|
push is not denied. If the special value ``*``, all remote users are
|
|
|
denied push. Otherwise, unauthenticated users are all denied, and
|
|
|
any authenticated user name present in this list (separated by
|
|
|
whitespace or ``,``) is also denied. The contents of the deny_push
|
|
|
list are examined before the allow_push list.
|
|
|
``deny_read``
|
|
|
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 (separated by
|
|
|
whitespace or ``,``) is also denied access to the repository. If set
|
|
|
to the special value ``*``, 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.
|
|
|
``descend``
|
|
|
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).
|
|
|
``description``
|
|
|
Textual description of the repository's purpose or contents.
|
|
|
Default is "unknown".
|
|
|
``encoding``
|
|
|
Character encoding name.
|
|
|
Example: "UTF-8"
|
|
|
``errorlog``
|
|
|
Where to output the error log. Default is stderr.
|
|
|
``hidden``
|
|
|
Whether to hide the repository in the hgwebdir index.
|
|
|
Default is False.
|
|
|
``ipv6``
|
|
|
Whether to use IPv6. Default is False.
|
|
|
``name``
|
|
|
Repository name to use in the web interface. Default is current
|
|
|
working directory.
|
|
|
``maxchanges``
|
|
|
Maximum number of changes to list on the changelog. Default is 10.
|
|
|
``maxfiles``
|
|
|
Maximum number of files to list per changeset. Default is 10.
|
|
|
``port``
|
|
|
Port to listen on. Default is 8000.
|
|
|
``prefix``
|
|
|
Prefix path to serve from. Default is '' (server root).
|
|
|
``push_ssl``
|
|
|
Whether to require that inbound pushes be transported over SSL to
|
|
|
prevent password sniffing. Default is True.
|
|
|
``staticurl``
|
|
|
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: ``http://hgserver/static/``.
|
|
|
``stripes``
|
|
|
How many lines a "zebra stripe" should span in multiline output.
|
|
|
Default is 1; set to 0 to disable.
|
|
|
``style``
|
|
|
Which template map style to use.
|
|
|
``templates``
|
|
|
Where to find the HTML templates. Default is install path.
|
|
|
|
|
|
|
|
|
Author
|
|
|
------
|
|
|
Bryan O'Sullivan <bos@serpentine.com>.
|
|
|
|
|
|
Mercurial was written by Matt Mackall <mpm@selenic.com>.
|
|
|
|
|
|
See Also
|
|
|
--------
|
|
|
|hg(1)|_, |hgignore(5)|_
|
|
|
|
|
|
Copying
|
|
|
-------
|
|
|
This manual page is copyright 2005 Bryan O'Sullivan.
|
|
|
Mercurial is copyright 2005-2010 Matt Mackall.
|
|
|
Free use of this software is granted under the terms of the GNU General
|
|
|
Public License version 2.
|
|
|
|
|
|
.. include:: common.txt
|
|
|
|