|
|
HGRC(5)
|
|
|
=======
|
|
|
Bryan O'Sullivan <bos@serpentine.com>
|
|
|
:man source: Mercurial
|
|
|
:man manual: Mercurial Manual
|
|
|
|
|
|
NAME
|
|
|
----
|
|
|
hgrc - configuration files for Mercurial
|
|
|
|
|
|
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 later paths override earlier
|
|
|
ones.
|
|
|
|
|
|
(Unix) `<install-root>/etc/mercurial/hgrc.d/*.rc`::
|
|
|
(Unix) `<install-root>/etc/mercurial/hgrc`::
|
|
|
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.
|
|
|
|
|
|
(Unix) `/etc/mercurial/hgrc.d/*.rc`::
|
|
|
(Unix) `/etc/mercurial/hgrc`::
|
|
|
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.
|
|
|
|
|
|
(Windows) `<install-dir>\Mercurial.ini`::
|
|
|
or else::
|
|
|
(Windows) `HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`::
|
|
|
or else::
|
|
|
(Windows) `C:\Mercurial\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.
|
|
|
|
|
|
(Unix) `$HOME/.hgrc`::
|
|
|
(Windows) `%HOME%\Mercurial.ini`::
|
|
|
(Windows) `%HOME%\.hgrc`::
|
|
|
(Windows) `%USERPROFILE%\Mercurial.ini`::
|
|
|
(Windows) `%USERPROFILE%\.hgrc`::
|
|
|
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-installation and
|
|
|
per-system options.
|
|
|
|
|
|
(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.
|
|
|
|
|
|
SYNTAX
|
|
|
------
|
|
|
|
|
|
A configuration file consists of sections, led by a "[section]" header
|
|
|
and followed by "name: value" entries; "name=value" is also accepted.
|
|
|
|
|
|
[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.
|
|
|
|
|
|
The optional values can contain format strings which refer to other
|
|
|
values in the same section, or values in a special DEFAULT section.
|
|
|
|
|
|
Lines beginning with "#" or ";" are ignored and may be used to provide
|
|
|
comments.
|
|
|
|
|
|
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]]
|
|
|
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]]
|
|
|
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
|
|
|
|
|
|
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;;
|
|
|
Username to authenticate with.
|
|
|
password;;
|
|
|
Optional. Password to authenticate with. If not given the user
|
|
|
will be prompted for it.
|
|
|
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]]
|
|
|
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++".
|
|
|
|
|
|
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::
|
|
|
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]]
|
|
|
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]]
|
|
|
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 section "[smtp]" 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:
|
|
|
|
|
|
us-ascii always first, regardless of settings
|
|
|
email.charsets in order given by user
|
|
|
ui.fallbackencoding if not in email.charsets
|
|
|
$HGENCODING if not in email.charsets
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]
|
|
|
# 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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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]]
|
|
|
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.
|
|
|
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::
|
|
|
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.
|
|
|
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-2009 Matt Mackall.
|
|
|
Free use of this software is granted under the terms of the GNU General
|
|
|
Public License (GPL).
|
|
|
|