Movatterモバイル変換


[0]ホーム

URL:


hgrc

configuration files for Mercurial

Author:Bryan O'Sullivan <bos@serpentine.com>
Organization:Mercurial
Manual section:5
Manual group:Mercurial Manual

Contents

Description

The Mercurial system uses a set of configuration files to controlaspects of its behavior.

Troubleshooting

If you're having problems with your configuration,hg config--debug can help you understand what is introducinga setting into your environment.

Seehg help config.syntax andhg help config.filesfor information about how and where to override things.

Structure

The configuration files use a simple ini-file format. A configurationfile consists of sections, led by a[section] header and followedbyname = value entries:

[ui]username = Firstname Lastname <firstname.lastname@example.net>verbose = True

The above entries will be referred to asui.username andui.verbose, respectively. Seehg help config.syntax.

Files

Mercurial reads configuration data from several files, if they exist.These files do not exist by default and you will have to create theappropriate configuration files yourself:

Local configuration is put into the per-repository<repo>/.hg/hgrc file.

Global configuration like the username setting is typically put into:

  • %USERPROFILE%\mercurial.ini (on Windows)
  • $HOME/.hgrc (on Unix, Plan9)

The names of these files depend on the system on which Mercurial isinstalled.*.rc files from a single directory are read inalphabetical order, later ones overriding earlier ones. Where multiplepaths are given below, settings from earlier paths override laterones.

On Unix, the following files are consulted:

  • <repo>/.hg/hgrc (per-repository)
  • $HOME/.hgrc (per-user)
  • <install-root>/etc/mercurial/hgrc (per-installation)
  • <install-root>/etc/mercurial/hgrc.d/*.rc (per-installation)
  • /etc/mercurial/hgrc (per-system)
  • /etc/mercurial/hgrc.d/*.rc (per-system)
  • <internal>/default.d/*.rc (defaults)

On Windows, the following files are consulted:

  • <repo>/.hg/hgrc (per-repository)
  • %USERPROFILE%\.hgrc (per-user)
  • %USERPROFILE%\Mercurial.ini (per-user)
  • %HOME%\.hgrc (per-user)
  • %HOME%\Mercurial.ini (per-user)
  • HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial (per-installation)
  • <install-dir>\hgrc.d\*.rc (per-installation)
  • <install-dir>\Mercurial.ini (per-installation)
  • <internal>/default.d/*.rc (defaults)

Note

The registry keyHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurialis used when running 32-bit Python on 64-bit Windows.

On Windows 9x,%HOME% is replaced by%APPDATA%.

On Plan9, the following files are consulted:

  • <repo>/.hg/hgrc (per-repository)
  • $home/lib/hgrc (per-user)
  • <install-root>/lib/mercurial/hgrc (per-installation)
  • <install-root>/lib/mercurial/hgrc.d/*.rc (per-installation)
  • /lib/mercurial/hgrc (per-system)
  • /lib/mercurial/hgrc.d/*.rc (per-system)
  • <internal>/default.d/*.rc (defaults)

Per-repository configuration options only apply in aparticular repository. This file is not version-controlled, andwill not get transferred during a "clone" operation. Options inthis file override options in all other configuration files.

On Plan 9 and Unix, most of this file will be ignored if it doesn'tbelong to a trusted user or to a trusted group. Seehg help config.trusted for more details.

Per-user configuration file(s) are for the user running Mercurial. Optionsin these files apply to all Mercurial commands executed by this user in anydirectory. Options in these files override per-system and per-installationoptions.

Per-installation configuration files are searched for in thedirectory where Mercurial is installed.<install-root> is theparent directory of thehg executable (or symlink) being run.

For example, if installed in/shared/tools/bin/hg, Mercurialwill look in/shared/tools/etc/mercurial/hgrc. Options in thesefiles apply to all Mercurial commands executed by any user in anydirectory.

Per-installation configuration files are for the system onwhich Mercurial is running. Options in these files apply to allMercurial commands executed by any user in any directory. Registrykeys contain PATH-like strings, every part of which must referenceaMercurial.ini file or be a directory where*.rc files willbe read. Mercurial checks each of these locations in the specifiedorder until one or more configuration files are detected.

Per-system configuration files are for the system on which Mercurialis running. Options in these files apply to all Mercurial commandsexecuted by any user in any directory. Options in these filesoverride per-installation options.

Mercurial comes with some default configuration. The default configurationfiles are installed with Mercurial and will be overwritten on upgrades. Defaultconfiguration files should never be edited by users or administrators but canbe overridden in other configuration files. So far the directory only containsmerge tool configuration but packagers can also put other default configurationthere.

Syntax

A configuration file consists of sections, led by a[section] headerand followed byname = value entries (sometimes calledconfiguration keys):

[spam]eggs=hamgreen=   eggs

Each line contains one entry. If the lines that follow are indented,they are treated as continuations of that entry. Leading whitespace isremoved from values. Empty lines are skipped. Lines beginning with# or; are ignored and may be used to provide comments.

Configuration keys can be set multiple times, in which case Mercurialwill use the value that was configured last. As an example:

[spam]eggs=largeham=serranoeggs=small

This would set the configuration key namedeggs tosmall.

It is also possible to define a section multiple times. A section canbe redefined on the same and/or on different configuration files. Forexample:

[foo]eggs=largeham=serranoeggs=small[bar]eggs=hamgreen=   eggs[foo]ham=prosciuttoeggs=mediumbread=toasted

This would set theeggs,ham, andbread configuration keysof thefoo section tomedium,prosciutto, andtoasted,respectively. As you can see there only thing that matters is the lastvalue that was set for each of the configuration keys.

If a configuration key is set multiple times in differentconfiguration files the final value will depend on the order in whichthe different configuration files are read, with settings from earlierpaths overriding later ones as described on theFiles sectionabove.

A line of the form%include file will includefile into thecurrent configuration file. The inclusion is recursive, which meansthat included files can include other files. Filenames are relative tothe configuration file in which the%include directive is found.Environment variables and~user constructs are expanded infile. This lets you do something like:

%include ~/.hgrc.d/$HOST.rc

to include a different configuration file on each computer you use.

A line with%unset name will removename from the currentsection, if it has been set previously.

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).

List values are separated by whitespace or comma, except when values areplaced in double quotation marks:

allow_read = "John Doe, PhD", brian, betty

Quotation marks can be escaped by prefixing them with a backslash. Onlyquotation marks at the beginning of a word is counted as a quotation(e.g.,foo"bar baz is the list offoo"bar andbaz).

Sections

This section describes the different sections that may appear in aMercurial configuration file, the purpose of each section, its possiblekeys, and their possible values.

alias

Defines command aliases.

Aliases allow you to define your own commands in terms of othercommands (or aliases), optionally including arguments. Positionalarguments in the form of$1,$2, etc. in the alias definitionare expanded by Mercurial before execution. Positional arguments notalready used by$N in the definition are put at the end of thecommand to be executed.

Alias definitions consist of lines of the form:

<alias> = <command> [<argument>]...

For example, this definition:

latest = log --limit 5

creates a new commandlatest that shows only the five most recentchangesets. You can define subsequent aliases using earlier ones:

stable5 = latest -b stable

Note

It is possible to create aliases with the same names asexisting commands, which will then override the originaldefinitions. This is almost always a bad idea!

An alias can start with an exclamation point (!) to make it ashell alias. A shell alias is executed with the shell and will let yourun arbitrary commands. As an example,

echo = !echo $@

will let you dohg echo foo to havefoo printed in yourterminal. A better example might be:

purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm

which will makehg purge delete all unknown files in therepository in the same manner as the purge extension.

Positional arguments like$1,$2, etc. in the alias definitionexpand to the command arguments. Unmatched arguments areremoved.$0 expands to the alias name and$@ expands to allarguments separated by a space."$@" (with quotes) expands to allarguments quoted individually and separated by a space. These expansionshappen before the command is passed to the shell.

Shell aliases are executed in an environment where$HG expands tothe path of the Mercurial that was used to execute the alias. This isuseful when you want to call further Mercurial commands in a shellalias, as was done above for the purge alias. In addition,$HG_ARGS expands to the arguments given to Mercurial. In thehgecho foo call above,$HG_ARGS would expand toecho foo.

Note

Some global configuration options such as-R areprocessed before shell aliases and will thus not be passed toaliases.

annotate

Settings used when displaying file annotations. All values areBooleans and default to False. Seehg help config.diff forrelated options for the diff command.

ignorews
Ignore white space when comparing lines.
ignorewsamount
Ignore changes in the amount of white space.
ignoreblanklines
Ignore changes whose lines are all blank.

auth

Authentication credentials for HTTP authentication. This sectionallows you to store usernames and passwords for use when logginginto HTTP servers. Seehg help config.web ifyou want to configurewho can login to your HTTP server.

Each line has the following format:

<name>.<argument> = <value>

where<name> is used to group arguments into authenticationentries. Example:

foo.prefix = hg.intevation.de/mercurialfoo.username = foofoo.password = barfoo.schemes = http httpsbar.prefix = secure.example.orgbar.key = path/to/file.keybar.cert = path/to/file.certbar.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 length1). If the prefix doesn't include a scheme, the match is performedagainst the URI with its scheme stripped as well, and the schemesargument, q.v., is then subsequently consulted.
username
Optional. Username to authenticate with. If not given, and theremote site requires basic or digest authentication, the user willbe prompted for it. Environment variables are expanded in theusername letting you dofoo.username = $USER. If the URIincludes a username, only[auth] entries with a matchingusername or without a username will be considered.
password
Optional. Password to authenticate with. If not given, and theremote site requires basic or digest authentication, the userwill be prompted for it.
key
Optional. PEM encoded client certificate key file. Environmentvariables are expanded in the filename.
cert
Optional. PEM encoded client certificate chain file. Environmentvariables are expanded in the filename.
schemes
Optional. Space separated list of URI schemes to use thisauthentication entry with. Only used if the prefix doesn't includea scheme. Supported schemes are http and https. They will matchstatic-http and static-https respectively, as well.(default: https)

If no suitable authentication entry is found, the user is promptedfor credentials as usual if required by the remote.

committemplate

changeset
String: configuration in this section is used as the template tocustomize the text shown in the editor when committing.

In addition to pre-defined template keywords, commit log specific onebelow can be used for customization:

extramsg
String: Extra message (typically 'Leave message empty to abortcommit.'). This may be changed by some commands or extensions.

For example, the template configuration below shows as same text asone shown by default:

[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")}

Note

For some problematic encodings (seehg help win32mbcs fordetail), this customization should be configured carefully, toavoid showing broken characters.

For example, if a multibyte character ending with backslash (0x5c) isfollowed by the ASCII character 'n' in the customized template,the sequence of backslash and 'n' is treated as line-feed unexpectedly(and the multibyte character is broken, too).

Customized template is used for commands below (--edit may berequired):

Configuring items below instead ofchangeset allows showingcustomized message only for specific actions, or showing differentmessages for each action.

These dot-separated lists of names are treated as hierarchical ones.For example,changeset.tag.remove customizes the commit messageonly forhg tag--remove, butchangeset.tag customizes thecommit message forhg tag regardless of--remove option.

When the external editor is invoked for a commit, the correspondingdot-separated list of names without thechangeset. prefix(e.g.commit.normal.normal) is in theHGEDITFORM environmentvariable.

In this section, items other thanchangeset can be referred fromothers. For example, the configuration to list committed files upbelow can be referred as{listupfiles}:

[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")}

decode/encode

Filters for transforming files on checkout/checkin. This wouldtypically be used for newline processing or otherlocalization/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 rootdirectory only, use the pattern*.txt. To match any file endingin.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, eitherpipe: ortempfile:. If no specifier is given,pipe: is used by default.

Apipe: command must accept data on stdin and return the transformeddata 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

Atempfile: command is a template. The stringINFILE is replacedwith the name of a temporary file that contains the data to befiltered by the command. The stringOUTFILE is replaced with the nameof an empty temporary file, where the filtered data must be written bythe command.

Note

The tempfile mechanism is recommended for Windows systems,where the standard shell I/O redirection operators often havestrange effects and may corrupt the contents of your files.

This filter mechanism is used internally by theeol extension totranslate line ending characters between Windows (CRLF) and Unix (LF)format. We suggest you use theeol extension for convenience.

defaults

(defaults are deprecated. Don't use them. Use aliases instead.)

Use the[defaults] section to define command defaults, i.e. thedefault options/arguments to pass to the specified commands.

The following example makeshg log run in verbose mode, andhg status show only the modified files, by default:

[defaults]log = -vstatus = -m

The actual commands, instead of their aliases, must be used whendefining command defaults. The command defaults will also be appliedto the aliases of the commands defined.

diff

Settings used when displaying diffs. Everything except forunifiedis a Boolean and defaults to False. Seehg help config.annotatefor related options for the annotate command.

git
Use git extended diff format.
nobinary
Omit git binary patches.
nodates
Don't include dates in diff headers.
noprefix
Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
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.
unified
Number of lines of context to show.

email

Settings for extensions that send email messages.

from
Optional. Email address to use in "From" header and SMTP envelopeof 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.
method
Optional. Method to use to send email messages. If value issmtp(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 tosendmail or/usr/sbin/sendmail is enough to use sendmail to send messages.
charsets

Optional. Comma-separated list of character sets consideredconvenient for recipients. Addresses, headers, and parts notcontaining patches of outgoing messages will be encoded in thefirst character set to which conversion from local encoding($HGENCODING,ui.fallbackencoding) succeeds. If correctconversion fails, the text in question is sent as is.(default: '')

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 lastcharsets = iso-8859-1, iso-8859-15, windows-1252

extensions

Mercurial has an extension mechanism for adding new features. Toenable 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 nothingafter the=.

Otherwise, give a name that you choose, followed by=, followed bythe path to the.py file (including the file name extension) thatdefines the extension.

To explicitly disable an extension that is enabled in an hgrc ofbroader scope, prepend its path with!, as infoo = !/ext/pathorfoo = ! when path is not supplied.

Example for~/.hgrc:

[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

format

usegeneraldelta

Enable or disable the "generaldelta" repository format which improvesrepository compression by allowing "revlog" to store delta against arbitraryrevision instead of the previous stored one. This provides significantimprovement for repositories with branches.

Repositories with this on-disk format require Mercurial version 1.9.

Enabled by default.

dotencode

Enable or disable the "dotencode" repository format which enhancesthe "fncache" repository format (which has to be enabled to usedotencode) to avoid issues with filenames starting with ._ onMac OS X and spaces on Windows.

Repositories with this on-disk format require Mercurial version 1.7.

Enabled by default.

usefncache

Enable or disable the "fncache" repository format which enhancesthe "store" repository format (which has to be enabled to usefncache) to allow longer filenames and avoids using Windowsreserved names, e.g. "nul".

Repositories with this on-disk format require Mercurial version 1.1.

Enabled by default.

usestore

Enable or disable the "store" repository format which improvescompatibility with systems that fold case or otherwise manglefilenames. Disabling this option will allow you to store longer filenamesin some situations at the expense of compatibility.

Repositories with this on-disk format require Mercurial version 0.9.4.

Enabled by default.

graph

Web graph view configuration. This section let you change graphelements display properties by branches, for instance to make thedefault branch stand out.

Each line has the following format:

<branch>.<argument> = <value>

where<branch> is the name of the branch beingcustomized. Example:

[graph]# 2px widthdefault.width = 2# red colordefault.color = FF0000

Supported arguments:

width
Set branch edges width in pixels.
color
Set branch edges color in hexadecimal RGB notation.

hooks

Commands or Python functions that get automatically executed byvarious actions such as starting or finishing a commit. Multiplehooks can be run for the same action by appending a suffix to theaction. Overriding a site-wide hook can be done by changing itsvalue or setting it to an empty string. Hooks can be prioritizedby adding a prefix ofpriority. to the hook name on a new lineand setting the priority. The default priority is 0.

Example.hg/hgrc:

[hooks]# update working directory after adding changesetschangegroup.update = hg update# do not use the site-wide hookincoming =incoming.email = /my/email/hookincoming.autobuild = /my/build/hook# force autobuild hook to run before other incoming hookspriority.incoming.autobuild = 1

Most hooks are run with environment variables set that give usefuladditional information. For each hook below, the environmentvariables 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 thefirst new changeset is in$HG_NODE and last in$HG_NODE_LAST. URLfrom which changes came is in$HG_URL.
commit
Run after a changeset has been created in the local repository. IDof the newly created changeset is in$HG_NODE. Parent changesetIDs are in$HG_PARENT1 and$HG_PARENT2.
incoming
Run after a changeset has been pulled, pushed, or unbundled intothe 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 offirst changeset sent is in$HG_NODE. Source of operation is in$HG_SOURCE; Also seehg help config.hooks.preoutgoing hook.
post-<command>
Run after successful invocations of the associated command. Thecontents of the command line are passed as$HG_ARGS and the resultcode in$HG_RESULT. Parsed command line arguments are passed as$HG_PATS and$HG_OPTS. These contain string representations ofthe python data internally passed to <command>.$HG_OPTS is adictionary of options (with unspecified options set to their defaults).$HG_PATS is a list of arguments. Hook failure is ignored.
fail-<command>
Run after a failed invocation of an associated command. The contentsof the command line are passed as$HG_ARGS. Parsed command linearguments are passed as$HG_PATS and$HG_OPTS. These containstring representations of the python data internally passed to<command>.$HG_OPTS is a dictionary of options (with unspecifiedoptions set to their defaults).$HG_PATS is a list of arguments.Hook failure is ignored.
pre-<command>
Run before executing the associated command. The contents of thecommand line are passed as$HG_ARGS. Parsed command line argumentsare passed as$HG_PATS and$HG_OPTS. These contain stringrepresentations of the data internally passed to <command>.$HG_OPTSis a dictionary of options (with unspecified options set to theirdefaults).$HG_PATS is a list of arguments. If the hook returnsfailure, the command doesn't execute and Mercurial returns the failurecode.
prechangegroup
Run before a changegroup is added via push, pull or unbundle. Exitstatus 0 allows the changegroup to proceed. Non-zero status willcause the push, pull or unbundle to fail. URL from which changeswill come is in$HG_URL.
precommit
Run before starting a local commit. Exit status 0 allows thecommit to proceed. Non-zero status will cause the commit to fail.Parent changeset IDs are in$HG_PARENT1 and$HG_PARENT2.
prelistkeys
Run before listing pushkeys (like bookmarks) in therepository. Non-zero status will cause failure. The key namespace isin$HG_NAMESPACE.
preoutgoing
Run before collecting changes to send from the local repository toanother. Non-zero status will cause failure. This lets you preventpull over HTTP or SSH. Also prevents against local pull, push(outbound) or bundle commands, but not effective, since you canjust copy files instead then. Source of operation is in$HG_SOURCE. If "serve", operation is happening on behalf of remoteSSH or HTTP repository. If "push", "pull" or "bundle", operationis happening on behalf of repository on same system.
prepushkey
Run before a pushkey (like a bookmark) is added to therepository. Non-zero status will cause the key to be rejected. Thekey namespace is in$HG_NAMESPACE, the key is in$HG_KEY,the old value (if any) is in$HG_OLD, and the new value is in$HG_NEW.
pretag
Run before creating a tag. Exit status 0 allows the tag to becreated. Non-zero status will cause the tag to fail. ID ofchangeset to tag is in$HG_NODE. Name of tag is in$HG_TAG. Tag islocal if$HG_LOCAL=1, in repository if$HG_LOCAL=0.
pretxnopen
Run before any new repository transaction is open. The reason for thetransaction will be in$HG_TXNNAME and a unique identifier for thetransaction will be inHG_TXNID. A non-zero status will prevent thetransaction from being opened.
pretxnclose
Run right before the transaction is actually finalized. Any repository changewill be visible to the hook program. This lets you validate the transactioncontent or change it. Exit status 0 allows the commit to proceed. Non-zerostatus will cause the transaction to be rolled back. The reason for thetransaction opening will be in$HG_TXNNAME and a unique identifier forthe transaction will be inHG_TXNID. The rest of the available data willvary according the transaction type. New changesets will add$HG_NODE (idof the first added changeset),$HG_NODE_LAST (id of the last addedchangeset),$HG_URL and$HG_SOURCE variables, bookmarks and phaseschanges will setHG_BOOKMARK_MOVED andHG_PHASES_MOVED to1, etc.
txnclose
Run after any repository transaction has been committed. At thispoint, the transaction can no longer be rolled back. The hook will runafter the lock is released. Seehg help config.hooks.pretxnclose docs fordetails about available variables.
txnabort
Run when a transaction is aborted. Seehg help config.hooks.pretxnclosedocs for details about available variables.
pretxnchangegroup
Run after a changegroup has been added via push, pull or unbundle, but beforethe transaction has been committed. Changegroup is visible to hook program.This lets you validate incoming changes before accepting them. Passed the IDof the first new changeset in$HG_NODE and last in$HG_NODE_LAST.Exit status 0 allows the transaction to commit. Non-zero status will causethe 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 yetcommitted. Changeset is visible to hook program. This lets youvalidate commit message and changes. Exit status 0 allows thecommit to proceed. Non-zero status will cause the transaction tobe rolled back. ID of changeset is in$HG_NODE. Parent changesetIDs are in$HG_PARENT1 and$HG_PARENT2.
preupdate
Run before updating the working directory. Exit status 0 allowsthe update to proceed. Non-zero status will prevent the update.Changeset ID of first new parent is in$HG_PARENT1. If merge, IDof second new parent is in$HG_PARENT2.
listkeys
Run after listing pushkeys (like bookmarks) in the repository. Thekey namespace is in$HG_NAMESPACE.$HG_VALUES is adictionary containing the keys and values.
pushkey
Run after a pushkey (like a bookmark) is added to therepository. The key namespace is in$HG_NAMESPACE, the key is in$HG_KEY, the old value (if any) is in$HG_OLD, and the newvalue is in$HG_NEW.
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, inrepository if$HG_LOCAL=0.
update
Run after updating the working directory. Changeset ID of firstnew parent is in$HG_PARENT1. If merge, ID of second new parent isin$HG_PARENT2. If the update succeeded,$HG_ERROR=0. If theupdate failed (e.g. because conflicts not resolved),$HG_ERROR=1.

Note

It is generally better to use standard hooks rather than thegeneric pre- and post- command hooks as they are guaranteed to becalled in the appropriate contexts for influencing transactions.Also, hooks like "commit" will be called in all contexts thatgenerate a commit (e.g. tag) and not just the commit command.

Note

Environment variables with empty values may not be passed tohooks on platforms such as Windows. As an example,$HG_PARENT2will have an empty value under Unix-like platforms for non-mergechangesets, while it will not be available at all under Windows.

The syntax for Python hooks is as follows:

hookname = python:modulename.submodule.callablehookname = python:/path/to/python/module.py:callable

Python hooks are run within the Mercurial process. Each hook iscalled with at least three keyword arguments: a ui object (keywordui), a repository object (keywordrepo), and ahooktypekeyword that tells what kind of hook is used. Arguments listed asenvironment variables above are passed as keyword arguments, with noHG_ prefix, and names in lower case.

If a Python hook returns a "true" value or raises an exception, thisis treated as a failure.

hostfingerprints

(Deprecated. Use[hostsecurity]'sfingerprints options instead.)

Fingerprints of the certificates of known HTTPS servers.

A HTTPS connection to a server with a fingerprint configured here willonly 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.Multiple values can be specified (separated by spaces or commas). This canbe used to define both old and new fingerprints while a host transitionsto a new certificate.

The CA chain and web.cacerts is not used for servers with a fingerprint.

For example:

[hostfingerprints]hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33

hostsecurity

Used to specify global and per-host security settings for connecting toother machines.

The following options control default behavior for all hosts.

ciphers

Defines the cryptographic ciphers to use for connections.

Value must be a valid OpenSSL Cipher List Format as documented athttps://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT.

This setting is for advanced users only. Setting to incorrect valuescan significantly lower connection security or decrease performance.You have been warned.

This option requires Python 2.7.

minimumprotocol

Defines the minimum channel encryption protocol to use.

By default, the highest version of TLS supported by both client and serveris used.

Allowed values are:tls1.0,tls1.1,tls1.2.

When running on an old Python version, onlytls1.0 is allowed sinceold versions of Python only support up to TLS 1.0.

When running a Python that supports modern TLS versions, the default istls1.1.tls1.0 can still be used to allow TLS 1.0. However, thisweakens security and should only be used as a feature of last resort ifa server does not support TLS 1.1+.

Options in the[hostsecurity] section can have the formhostname:setting. This allows multiple settings to be defined on aper-host basis.

The following per-host settings can be defined.

ciphers
This behaves likeciphers as described above except it only appliesto the host on which it is defined.
fingerprints

A list of hashes of the DER encoded peer/remote certificate. Values havethe formalgorithm:fingerprint. e.g.sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2.

The following algorithms/prefixes are supported:sha1,sha256,sha512.

Use ofsha256 orsha512 is preferred.

If a fingerprint is specified, the CA chain is not validated for thishost and Mercurial will require the remote certificate to match oneof the fingerprints specified. This means if the server updates itscertificate, Mercurial will abort until a new fingerprint is defined.This can provide stronger security than traditional CA-based validationat the expense of convenience.

This option takes precedence oververifycertsfile.

minimumprotocol
This behaves likeminimumprotocol as described above except itonly applies to the host on which it is defined.
verifycertsfile

Path to file a containing a list of PEM encoded certificates used toverify the server certificate. Environment variables and~userconstructs are expanded in the filename.

The server certificate or the certificate's certificate authority (CA)must match a certificate from this file or certificate verificationwill fail and connections to the server will be refused.

If defined, only certificates provided by this file will be used:web.cacerts and any system/default certificates will not beused.

This option has no effect if the per-hostfingerprints optionis set.

The format of the file is as follows:

-----BEGIN CERTIFICATE-----... (certificate in base64 PEM encoding) ...-----END CERTIFICATE----------BEGIN CERTIFICATE-----... (certificate in base64 PEM encoding) ...-----END CERTIFICATE-----

For example:

[hostsecurity]hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem

To change the default minimum protocol version to TLS 1.2 but to allow TLS 1.1when connecting tohg.example.com:

[hostsecurity]minimumprotocol = tls1.2hg.example.com:minimumprotocol = tls1.1

http_proxy

Used to access web-based Mercurial repositories through a HTTPproxy.

host
Host name and (optional) port of the proxy server, for example"myproxy:8000".
no
Optional. Comma-separated list of host names that should bypassthe proxy.
passwd
Optional. Password to authenticate with at the proxy server.
user
Optional. User name to authenticate with at the proxy server.
always
Optional. Always use the proxy, even for localhost and any entriesinhttp_proxy.no. (default: False)

merge

This section specifies behavior during merges and updates.

checkignored
Controls behavior when an ignored file on disk has the same name as a trackedfile in the changeset being merged or updated to, and has differentcontents. Options areabort,warn andignore. Withabort,abort on such files. Withwarn, warn on such files and back them up as.orig. Withignore, don't print a warning and back them up as.orig. (default:abort)
checkunknown
Controls behavior when an unknown file that isn't ignored has the same nameas a tracked file in the changeset being merged or updated to, and hasdifferent contents. Similar tomerge.checkignored, except for files thatare not ignored. (default:abort)

merge-patterns

This section specifies merge tools to associate with particular filepatterns. Tools matched here will take precedence over the defaultmerge tool. Patterns are globs by default, rooted at the repositoryroot.

Example:

[merge-patterns]**.c = kdiff3**.jpg = myimgmerge

merge-tools

This section configures external merge tools to use for file-levelmerges. This section has likely been preconfigured at install time.Usehg configmerge-tools to check the existing configuration.Also seehg helpmerge-tools for more details.

Example~/.hgrc:

[merge-tools]# Override stock tool locationkdiff3.executable = ~/bin/kdiff3# Specify command linekdiff3.args = $base $local $other -o $output# Give higher prioritykdiff3.priority = 1# Changing the priority of preconfigured toolmeld.priority = 0# Disable a preconfigured toolvimdiff.disabled = yes# Define new toolmyHtmlTool.args = -m $local $other $base $outputmyHtmlTool.regkey = Software\FooSoftware\HtmlMergemyHtmlTool.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.

On Windows, the path can use environment variables with ${ProgramFiles}syntax.

(default: the tool name)

args
The arguments to pass to the tool executable. You can refer to thefiles being merged as well as the output file through thesevariables:$base,$local,$other,$output. The meaningof$local and$other can vary depending on which action is beingperformed. During and update or merge,$local represents the originalstate of the file, while$other represents the commit you are updatingto or the commit you are merging with. During a rebase$localrepresents the destination of the rebase, and$other represents thecommit being rebased.(default:$local $base $other)
premerge
Attempt to run internal non-interactive 3-way merge tool beforelaunching external tool. Options aretrue,false,keep orkeep-merge3. Thekeep option will leave markers in the file if thepremerge fails. Thekeep-merge3 will do the same but include informationabout the base of the merge in the marker (see internal :merge3 inhg helpmerge-tools).(default: True)
binary
This tool can merge binary files. (default: False, unless toolwas selected by file pattern match)
symlink
This tool can merge symlinks. (default: False)
check

A list of merge success-checking options:

changed
Ask whether merge was successful when the merged file shows no changes.
conflicts
Check whether there are conflicts even though the tool reported success.
prompt
Always prompt for merge success, regardless of success reported by tool.
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 thistool. Mercurial will search for this key first underHKEY_CURRENT_USER and then underHKEY_LOCAL_MACHINE.(default: None)
regkeyalt
An alternate Windows registry key to try if the first key is notfound. The alternate key uses the sameregname andregappendsemantics of the primary key. The most common use for this keyis to search for 32bit applications on 64bit operating systems.(default: None)
regname
Name of value to read from specified registry key.(default: the unnamed (default) value)
regappend
String to append to the value read from the registry, typicallythe executable name of the tool.(default: None)

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 linesare preserved. When set tolf orcrlf, both files end oflines are ignored when patching and the result line endings arenormalized to either LF (Unix) or CRLF (Windows). When set toauto, end of lines are again ignored while patching but lineendings in patched files are normalized to their original settingon a per-file basis. If target file does not exist or has no endof line, patch line endings are preserved.(default: strict)
fuzz
The number of lines of 'fuzz' to allow when applying patches. Thiscontrols how much context the patcher is allowed to ignore whentrying to apply a patch.(default: 2)

paths

Assigns symbolic names and behavior to repositories.

Options are symbolic names defining the URL or directory that is thelocation of the repository. Example:

[paths]my_server = https://example.com/my_repolocal_path = /home/me/repo

These symbolic names can be used from the command line. To pullfrommy_server:hg pull my_server. To push tolocal_path:hg push local_path.

Options containing colons (:) denote sub-options that can influencebehavior for that specific path. Example:

[paths]my_server = https://example.com/my_pathmy_server:pushurl = ssh://example.com/my_path

The following sub-options can be defined:

pushurl
The URL to use for push operations. If not defined, the locationdefined by the path's main entry is used.
pushrev

A revset defining which revisions to push by default.

Whenhg push is executed without a-r argument, the revsetdefined by this sub-option is evaluated to determine what to push.

For example, a value of. will push the working directory'srevision by default.

Revsets specifying bookmarks will not result in the bookmark beingpushed.

The following special named paths exist:

default

The URL or directory to use when no source or remote is specified.

hg clone will automatically define this path to the location therepository was cloned from.

default-push
(deprecated) The URL or directory for the defaulthg push location.default:pushurl should be used instead.

phases

Specifies default handling of phases. Seehg help phases for moreinformation about working with phases.

publish
Controls draft phase behavior when working as a server. When true,pushed changesets are set to public in both client and server andpulled or cloned changesets are set to public in the client.(default: True)
new-commit
Phase of newly-created commits.(default: draft)
checksubrepos
Check the phase of the current revision of each subrepository. Allowedvalues are "ignore", "follow" and "abort". For settings other than"ignore", the phase of the current revision of each subrepository ischecked before committing the parent repository. If any of those phases isgreater 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 iseither aborted (if checksubrepos is set to "abort") or the higher phase isused for the parent repository commit (if set to "follow").(default: follow)

profiling

Specifies profiling type, format, and file output. Two profilers aresupported: an instrumenting profiler (namedls), and a samplingprofiler (namedstat).

In this section description, 'profiling data' stands for the raw datacollected during profiling, while 'profiling report' stands for astatistical text report generated from the profiling data. Theprofiling is done using lsprof.

enabled

Enable the profiler.(default: false)

This is equivalent to passing--profile on the command line.

type

The type of profiler to use.(default: ls)

ls
Use Python's built-in instrumenting profiler. This profilerworks on all platforms, but each line number it reports is thefirst line of a function. This restriction makes it difficult toidentify the expensive parts of a non-trivial function.
stat
Use a third-party statistical profiler, statprof. This profilercurrently runs only on Unix systems, and is most useful forprofiling commands that run for longer than about 0.1 seconds.
format

Profiling format. Specific to thels instrumenting profiler.(default: text)

text
Generate a profiling report. When saving to a file, it should benoted that only the report is saved, and the profiling data isnot kept.
kcachegrind
Format profiling data for kcachegrind use: when saving to afile, the generated file can directly be loaded intokcachegrind.
frequency
Sampling frequency. Specific to thestat sampling profiler.(default: 1000)
output
File path where profiling data or report should be saved. If thefile exists, it is replaced. (default: None, data is printed onstderr)
sort
Sort field. Specific to thels instrumenting profiler.One ofcallcount,reccallcount,totaltime andinlinetime.(default: inlinetime)
limit
Number of lines to show. Specific to thels instrumenting profiler.(default: 30)
nested
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 thels instrumenting profiler.(default: 5)

progress

Mercurial commands can draw progress bars that are as informative aspossible. Some progress bars only offer indeterminate information, while othershave a definite end point.

delay
Number of seconds (float) before showing the progress bar. (default: 3)
changedelay
Minimum delay before showing a new topic. When set to less than 3 * refresh,that value will be used instead. (default: 1)
refresh
Time in seconds between refreshes of the progress bar. (default: 0.1)
format

Format of the progress bar.

Valid entries for the format field aretopic,bar,number,unit,estimate,speed, anditem.item defaults to thelast 20 characters of the item, but this can be changed by adding either-<num> which would take the last num characters, or+<num> for thefirst num characters.

(default: topic bar number estimate)

width
If set, the maximum width of the progress information (that is, min(width,term width) will be used).
clear-complete
Clear the progress bar after it's done. (default: True)
disable
If true, don't show a progress bar.
assume-tty
If true, ALWAYS show a progress bar, unless disable is given.

rebase

allowdivergence
Default to False, when True allow creating divergence when performingrebase of obsolete changesets.

revsetalias

Alias definitions for revsets. Seehg help revsets for details.

server

Controls generic server settings.

uncompressed
Whether to allow clients to clone a repository using theuncompressed streaming protocol. This transfers about 40% moredata than a regular clone, but uses less memory and CPU on bothserver and client. Over a LAN (100 Mbps or better) or a very fastWAN, an uncompressed streaming clone is a lot faster (~10x) than aregular clone. Over most WAN connections (anything slower thanabout 6 Mbps), uncompressed streaming is slower, because of theextra data transfer overhead. This mode will also temporarily holdthe write lock while determining what data to transfer.(default: True)
preferuncompressed
When set, clients will try to use the uncompressed streamingprotocol. (default: False)
validate
Whether to validate the completeness of pushed changesets bychecking that all new file revisions specified in manifests arepresent. (default: False)
maxhttpheaderlen
Instruct HTTP clients not to send request headers longer than thismany bytes. (default: 1024)
bundle1
Whether to allow clients to push and pull using the legacy bundle1exchange format. (default: True)
bundle1gd
Likebundle1 but only used if the repository is using thegeneraldelta storage format. (default: True)
bundle1.push
Whether to allow clients to push using the legacy bundle1 exchangeformat. (default: True)
bundle1gd.push
Likebundle1.push but only used if the repository is using thegeneraldelta storage format. (default: True)
bundle1.pull
Whether to allow clients to pull using the legacy bundle1 exchangeformat. (default: True)
bundle1gd.pull

Likebundle1.pull but only used if the repository is using thegeneraldelta storage format. (default: True)

Large repositories using thegeneraldelta storage format shouldconsider setting this option because convertinggeneraldeltarepositories to the exchange format required by the bundle1 dataformat can consume a lot of CPU.

zliblevel

Integer between-1 and9 that controls the zlib compression levelfor wire protocol commands that send zlib compressed output (notably thecommands that send repository history data).

The default (-1) uses the default zlib compression level, which islikely equivalent to6.0 means no compression.9 meansmaximum compression.

Setting this option allows server operators to make trade-offs betweenbandwidth and CPU used. Lowering the compression lowers CPU utilizationbut sends more bytes to clients.

This option only impacts the HTTP 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: 465 iftls is smtps; 25 otherwise)
tls
Optional. Method to enable TLS when connecting to mail server: starttls,smtps or none. (default: none)
username
Optional. User name for authenticating with the SMTP server.(default: None)
password
Optional. Password for authenticating with the SMTP server. If notspecified, interactive sessions will prompt the user for apassword; non-interactive sessions will fail. (default: None)
local_hostname
Optional. The hostname that the sender can use to identifyitself to the MTA.

subpaths

Subrepository source URLs can go stale if a remote server changes nameor becomes temporarily unavailable. This section lets you definerewrite rules of the form:

<pattern> = <replacement>

wherepattern is a regular expression matching a subrepositorysource URL andreplacement is the replacement string used torewrite it. Groups can be matched inpattern and referenced inreplacements. For instance:

http://server/(.*)-hg/ = http://hg.server/\1/

rewriteshttp://server/foo-hg/ intohttp://hg.server/foo/.

Relative subrepository paths are first made absolute, and therewrite rules are then applied on the full (absolute) path. Ifpatterndoesn't match the full path, an attempt is made to apply it on therelative path alone. The rules are applied in definition order.

templatealias

Alias definitions for templates. Seehg help templates for details.

templates

Use the[templates] section to define template strings.Seehg help templates for details.

trusted

Mercurial will not use the settings in the.hg/hgrc file from a repository if it doesn't belong to a trusteduser or to a trusted group, as various hgrc features allow arbitrarycommands to be run. This issue is often encountered when configuringhooks or extensions for shared repositories or servers. However,the web interface will use some safe settings from the[web]section.

This section specifies what users and groups are trusted. Thecurrent user is always trusted. To trust everybody, list a user or agroup with name*. These settings must be placed in analready-trusted file to take effect, such as$HOME/.hgrc of theuser or service running Mercurial.

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 createdby thehg archive command or downloaded via hgweb.(default: True)
askusername
Whether to prompt for a username when committing. If True, andneither$HGUSER nor$EMAIL has been specified, then the user willbe prompted to enter a username. If no username is entered, thedefaultUSER@HOST is used instead.(default: False)
clonebundles

Whether the "clone bundles" feature is enabled.

When enabled,hg clone may download and apply a server-advertisedbundle file from a URL instead of using the normal exchange mechanism.

This can likely result in faster and more reliable clones.

(default: True)

clonebundlefallback

Whether failure to apply an advertised "clone bundle" from a servershould result in fallback to a regular clone.

This is disabled by default because servers advertising "clonebundles" often do so to reduce server load. If advertised bundlesstart mass failing and clients automatically fall back to a regularclone, this would add significant and unexpected load to the serversince the server is expecting clone operations to be offloaded topre-generated bundles. Failing fast (the default behavior) ensuresclients don't overwhelm the server when "clone bundle" applicationfails.

(default: False)

clonebundleprefers

Defines preferences for which "clone bundles" to use.

Servers advertising "clone bundles" may advertise multiple availablebundles. Each bundle may have different attributes, such as the bundletype and compression format. This option is used to prefer a particularbundle over another.

The following keys are defined by Mercurial:

BUNDLESPEC
A bundle type specifier. These are strings passed tohg bundle-t.e.g.gzip-v2 orbzip2-v1.
COMPRESSION
The compression format of the bundle. e.g.gzip andbzip2.

Server operators may define custom keys.

Example values:COMPRESSION=bzip2,BUNDLESPEC=gzip-v2, COMPRESSION=gzip.

By default, the first bundle advertised by the server is used.

commitsubrepos
Whether to commit modified subrepositories when committing theparent repository. If False and one subrepository has uncommittedchanges, abort the commit.(default: False)
debug
Print debugging information. (default: False)
editor
The editor to use during a commit. (default:$EDITOR orvi)
fallbackencoding
Encoding to try if it's not possible to decode the changelog usingUTF-8. (default: ISO-8859-1)
graphnodetemplate
The template used to print changeset nodes in an ASCII revision graph.(default:{graphnode})
ignore
A file to read per-user ignore patterns from. This file should bein the same format as a repository-wide .hgignore file. Filenamesare relative to the repository root. This option supports hook syntax,so if you want to specify multiple ignore files, you can do so bysetting something likeignore.other =~/.hgignore2. For detailsof the ignore file format, see thehgignore(5) man page.
interactive
Allow to prompt the user. (default: True)
interface
Select the default interface for interactive features (default: text).Possible values are 'text' and 'curses'.
interface.chunkselector
Select the interface for change recording (e.g.hg commit-i).Possible values are 'text' and 'curses'.This config overrides the interface specified by ui.interface.
logtemplate
Template string for commands that print changesets.
merge
The conflict resolution program to use during a manual merge.For more information on merge tools seehg helpmerge-tools.For configuring merge tools see the[merge-tools] section.
mergemarkers
Sets the merge conflict marker label styling. Thedetailedstyle uses themergemarkertemplate setting to style the labels.Thebasic style just uses 'local' and 'other' as the marker label.One ofbasic ordetailed.(default:basic)
mergemarkertemplate

The template used to print the commit description next to each conflictmarker during merge conflicts. Seehg help templates for the templateformat.

Defaults to showing the hash, tags, branches, bookmarks, author, andthe 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 ofmanaged files. At template expansion, non-ASCII characters use the encodingspecified by the--encoding global option,HGENCODING or otherenvironment variables that govern your locale. If the encoding of the mergemarkers is different from the encoding of the merged files,serious problems may occur.

origbackuppath
The path to a directory used to store generated .orig files. If the path isnot a directory, one will be created.
patch

An optional external tool thathg import and some extensionswill use for applying patches. By default Mercurial uses aninternal patch utility. The external tool must work as the commonUnixpatch program. In particular, it must accept a-pargument to strip patch headers, a-d argument to specify thecurrent directory, a file name to patch, and a patch file to takefrom stdin.

It is possible to specify a patch tool together with extraarguments. For example, setting this option topatch--mergewill use thepatch program with its 2-way merge option.

portablefilenames

Check for portable filenames. Can bewarn,ignore orabort.(default:warn)

warn
Print a warning message on POSIX platforms, if a file with a non-portablefilename is added (e.g. a file with a name that can't be created onWindows because it contains reserved parts likeAUX, reservedcharacters like:, or would cause a case collision with an existingfile).
ignore
Don't print a warning.
abort
The command is aborted.
true
Alias forwarn.
false
Alias forignore.
On Windows, this configuration option is ignored and the command aborted.
quiet
Reduce the amount of output printed.(default: False)
remotecmd
Remote command to use for clone/push/pull operations.(default:hg)
report_untrusted
Warn if a.hg/hgrc file is ignored due to not being owned by atrusted user or group.(default: True)
slash
Display paths using a slash (/) as the path separator. Thisonly makes a difference on systems where the default pathseparator is not the slash character (e.g. Windows uses thebackslash character (\)).(default: False)
statuscopies
Display copies in the status command.
ssh
Command to use for SSH connections. (default:ssh)
strict
Require exact command names, instead of allowing unambiguousabbreviations. (default: False)
style
Name of style to use for command output.
supportcontact
A URL where users should report a Mercurial traceback. Use this if you are alarge organisation with its own Mercurial deployment process and crashreports should be addressed to your internal support.
textwidth
Maximum width of help text. A longer line generated byhg help orhg subcommand--help will be broken after white space to get thiswidth or the terminal width, whichever comes first.A non-positive value will disable this and the terminal width will beused. (default: 78)
timeout
The timeout used when a lock is held (in seconds), a negative valuemeans no timeout. (default: 600)
traceback
Mercurial always prints a traceback when an unknown exceptionoccurs. Setting this to True will make Mercurial print a tracebackon all exceptions, even those recognized by Mercurial (such asIOError or MemoryError). (default: 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>. Environment variables in theusername are expanded.

(default:$EMAIL orusername@hostname. If the username inhgrc is empty, e.g. if the system admin setusername = in thesystem hgrc, it has to be specified manually or in a differenthgrc file)

verbose
Increase the amount of output printed. (default: False)

web

Web interface configuration. The settings in this section apply toboth the builtin webserver (started byhg serve) and the script yourun through a webserver (hgweb.cgi and the derivatives for FastCGIand WSGI).

The Mercurial webserver does no authentication (it does not prompt forusernames and passwords to validatewho users are), but it does doauthorization (it grants or denies access forauthenticated usersbased on settings in this section). You must either configure yourwebserver to do authentication for you, or disable the authorizationchecks.

For a quick setup in a trusted environment, e.g., a private LAN, whereyou want it to accept pushes from anybody, you can use the followingcommand line:

$ hg --config web.allow_push=* --config web.push_ssl=False serve

Note that this will allow anybody to push anything to the server andthat this should not be used for public servers.

The full set of options is:

accesslog
Where to output the access log. (default: stdout)
address
Interface address to bind to. (default: all)
allow_archive
List of archive format (bz2, gz, zip) allowed for downloading.(default: empty)
allowbz2
(DEPRECATED) Whether to allow .tar.bz2 downloading of repositoryrevisions.(default: False)
allowgz
(DEPRECATED) Whether to allow .tar.gz downloading of repositoryrevisions.(default: False)
allowpull
Whether to allow pulling from the repository. (default: True)
allow_push
Whether to allow pushing to the repository. If empty or not set,pushing is not allowed. If the special value*, any remoteuser can push, including unauthenticated users. Otherwise, theremote user must have been authenticated, and the authenticateduser name must be present in this list. The contents of theallow_push list are examined after the deny_push list.
allow_read
If the user has not already been denied repository access due tothe contents of deny_read, this list determines whether to grantrepository access to the user. If this list is not empty, and theuser is unauthenticated or not present in the list, then access isdenied for the user. If the list is empty or not set, then accessis permitted to all users by default. Setting allow_read to thespecial value* is equivalent to it not being set (i.e. accessis permitted to all users). The contents of the allow_read list areexamined after the deny_read list.
allowzip
(DEPRECATED) Whether to allow .zip downloading of repositoryrevisions. This feature creates temporary files.(default: False)
archivesubrepos
Whether to recurse into subrepositories when archiving.(default: False)
baseurl
Base URL to use when publishing URLs in other locations, sothird-party tools like email notification hooks can constructURLs. Example:http://hgserver/repos/.
cacerts

Path to file containing a list of PEM encoded certificateauthority certificates. Environment variables and~userconstructs are expanded in the filename. If specified on theclient, then it will verify the identity of remote HTTPS serverswith these certificates.

To disable SSL verification temporarily, specify--insecure fromcommand line.

You can use OpenSSL's CA certificate file if your platform hasone. On most Linux systems this will be/etc/ssl/certs/ca-certificates.crt. Otherwise you will have togenerate this file manually. The form must be as follows:

-----BEGIN CERTIFICATE-----... (certificate in base64 PEM encoding) ...-----END CERTIFICATE----------BEGIN CERTIFICATE-----... (certificate in base64 PEM encoding) ...-----END CERTIFICATE-----
cache
Whether to support caching in hgweb. (default: True)
certificate
Certificate to use when runninghg serve.
collapse
Withdescend enabled, repositories in subdirectories are shown ata single level alongside repositories in the current path. Withcollapse also enabled, repositories residing at a deeper level thanthe current path are grouped behind navigable directory entries thatlead to the locations of these repositories. In effect, this settingcollapses each collection of repositories found within a subdirectoryinto a single entry for that subdirectory. (default: False)
comparisoncontext

Number of lines of context to show in side-by-side file comparison. Ifnegative or the valuefull, whole files are shown. (default: 5)

This setting can be overridden by acontext request parameter to thecomparison command, taking the same values.

contact
Name or email address of the person in charge of the repository.(default: 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 aredenied push. Otherwise, unauthenticated users are all denied, andany authenticated user name present in this list is also denied. Thecontents 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 isnot empty, unauthenticated users are all denied, and anyauthenticated user name present in this list is also denied access tothe repository. If set to the special value*, all remote usersare denied access (rarely needed ;). If deny_read is empty or not set,the determination of repository access depends on the presence andcontent of the allow_read list (see description). If bothdeny_read and allow_read are empty or not set, then access ispermitted to all users by default. If the repository is beingserved via hgwebdir, denied users will not be able to see it inthe list of repositories. The contents of the deny_read list havepriority over (are examined before) the contents of the allow_readlist.
descend
hgwebdir indexes will not descend into subdirectories. Only repositoriesdirectly in the current path will be shown (other repositories are stillavailable from the index corresponding to their containing path).
description
Textual description of the repository's purpose or contents.(default: "unknown")
encoding
Character encoding name. (default: the current locale charset)Example: "UTF-8".
errorlog
Where to output the error log. (default: stderr)
guessmime
Control MIME types for raw download of file content.Set to True to let hgweb guess the content type from the fileextension. This will serve HTML files astext/html and mightallow cross-site scripting attacks when serving untrustedrepositories. (default: False)
hidden
Whether to hide the repository in the hgwebdir index.(default: False)
ipv6
Whether to use IPv6. (default: False)
labels

List of stringlabels associated with the repository.

Labels are exposed as a template keyword and can be used to customizeoutput. e.g. theindex template can group or filter repositoriesby labels and thesummary template can display additional contentif a specific label is present.

logoimg
File name of the logo image that some templates display on each page.The file name is relative tostaticurl. That is, the full path tothe logo image is "staticurl/logoimg".If unset,hglogo.png will be used.
logourl
Base URL to use for logos. If unset,https://mercurial-scm.org/will be used.
maxchanges
Maximum number of changes to list on the changelog. (default: 10)
maxfiles
Maximum number of files to list per changeset. (default: 10)
maxshortchanges
Maximum number of changes to list on the shortlog, graph or filelogpages. (default: 60)
name
Repository name to use in the web interface.(default: current working directory)
port
Port to listen on. (default: 8000)
prefix
Prefix path to serve from. (default: '' (server root))
push_ssl
Whether to require that inbound pushes be transported over SSL toprevent password sniffing. (default: True)
refreshinterval

How frequently directory listings re-scan the filesystem for newrepositories, in seconds. This is relevant when wildcards are usedto define paths. Depending on how much filesystem traversal isrequired, refreshing may negatively impact performance.

Values less than or equal to 0 always refresh.(default: 20)

staticurl
Base URL to use for static files. If unset, static files (e.g. thehgicon.png favicon) will be served by the CGI script itself. Usethis setting to serve them directly with the HTTP server.Example:http://hgserver/static/.
stripes
How many lines a "zebra stripe" should span in multi-line output.Set to 0 to disable. (default: 1)
style
Which template map style to use. The available options are the names ofsubdirectories in the HTML templates path. (default:paper)Example:monoblue.
templates
Where to find the HTML templates. The default path to the HTML templatescan be obtained fromhg debuginstall.

websub

Web substitution filter definition. You can use this section todefine a set of regular expression substitution patterns whichlet you automatically modify the hgweb server output.

The default hgweb templates only apply these substitution patternson the revision description fields. You can apply them anywhereyou want when you create your own templates by adding calls to the"websub" filter (usually after calling the "escape" filter).

This can be used, for example, to convert issue references to linksto your issue tracker, or to convert "markdown-like" syntax intoHTML (see the examples below).

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:

patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]

You can use any separator other than "/". The final "i" is optionaland indicates that the search must be case insensitive.

Examples:

[websub]issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|iitalic = s/\b_(\S+)_\b/<i>\1<\/i>/bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/

worker

Parallel master/worker configuration. We currently perform workingdirectory updates in parallel on Unix-like systems, which greatlyhelps performance.

numcpus
Number of CPUs to use for parallel operations. A zero ornegative value is treated asuse the default.(default: 4 or the number of CPUs on the system, whichever is larger)
backgroundclose
Whether to enable closing file handles on background threads during certainoperations. Some platforms aren't very efficient at closing filehandles that have been written or appended to. By performing file closingon background threads, file write rate can increase substantially.(default: true on Windows, false elsewhere)
backgroundcloseminfilecount
Minimum number of files required to trigger background file closing.Operations not writing this many files won't start background closethreads.(default: 2048)
backgroundclosemaxqueue
The maximum number of opened file handles waiting to be closed in thebackground. This option only has an effect ifbackgroundclose isenabled.(default: 384)
backgroundclosethreadcount
Number of threads to process background file closes. Only relevant ifbackgroundclose is enabled.(default: 4)

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-2016 Matt Mackall.Free use of this software is granted under the terms of the GNU GeneralPublic License version 2 or any later version.


[8]ページ先頭

©2009-2025 Movatter.jp