##// END OF EJS Templates
help: sort hgrc related "Sections" chapters alphabetically
Michal Sznajder -
r16140:dbf64594 default
parent child Browse files
Show More
@@ -1,1379 +1,1379 b''
1 The Mercurial system uses a set of configuration files to control
1 The Mercurial system uses a set of configuration files to control
2 aspects of its behavior.
2 aspects of its behavior.
3
3
4 The configuration files use a simple ini-file format. A configuration
4 The configuration files use a simple ini-file format. A configuration
5 file consists of sections, led by a ``[section]`` header and followed
5 file consists of sections, led by a ``[section]`` header and followed
6 by ``name = value`` entries::
6 by ``name = value`` entries::
7
7
8 [ui]
8 [ui]
9 username = Firstname Lastname <firstname.lastname@example.net>
9 username = Firstname Lastname <firstname.lastname@example.net>
10 verbose = True
10 verbose = True
11
11
12 The above entries will be referred to as ``ui.username`` and
12 The above entries will be referred to as ``ui.username`` and
13 ``ui.verbose``, respectively. See the Syntax section below.
13 ``ui.verbose``, respectively. See the Syntax section below.
14
14
15 Files
15 Files
16 -----
16 -----
17
17
18 Mercurial reads configuration data from several files, if they exist.
18 Mercurial reads configuration data from several files, if they exist.
19 These files do not exist by default and you will have to create the
19 These files do not exist by default and you will have to create the
20 appropriate configuration files yourself: global configuration like
20 appropriate configuration files yourself: global configuration like
21 the username setting is typically put into
21 the username setting is typically put into
22 ``%USERPROFILE%\mercurial.ini`` or ``$HOME/.hgrc`` and local
22 ``%USERPROFILE%\mercurial.ini`` or ``$HOME/.hgrc`` and local
23 configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
23 configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
24
24
25 The names of these files depend on the system on which Mercurial is
25 The names of these files depend on the system on which Mercurial is
26 installed. ``*.rc`` files from a single directory are read in
26 installed. ``*.rc`` files from a single directory are read in
27 alphabetical order, later ones overriding earlier ones. Where multiple
27 alphabetical order, later ones overriding earlier ones. Where multiple
28 paths are given below, settings from earlier paths override later
28 paths are given below, settings from earlier paths override later
29 ones.
29 ones.
30
30
31 | (Unix, Windows) ``<repo>/.hg/hgrc``
31 | (Unix, Windows) ``<repo>/.hg/hgrc``
32
32
33 Per-repository configuration options that only apply in a
33 Per-repository configuration options that only apply in a
34 particular repository. This file is not version-controlled, and
34 particular repository. This file is not version-controlled, and
35 will not get transferred during a "clone" operation. Options in
35 will not get transferred during a "clone" operation. Options in
36 this file override options in all other configuration files. On
36 this file override options in all other configuration files. On
37 Unix, most of this file will be ignored if it doesn't belong to a
37 Unix, most of this file will be ignored if it doesn't belong to a
38 trusted user or to a trusted group. See the documentation for the
38 trusted user or to a trusted group. See the documentation for the
39 ``[trusted]`` section below for more details.
39 ``[trusted]`` section below for more details.
40
40
41 | (Unix) ``$HOME/.hgrc``
41 | (Unix) ``$HOME/.hgrc``
42 | (Windows) ``%USERPROFILE%\.hgrc``
42 | (Windows) ``%USERPROFILE%\.hgrc``
43 | (Windows) ``%USERPROFILE%\Mercurial.ini``
43 | (Windows) ``%USERPROFILE%\Mercurial.ini``
44 | (Windows) ``%HOME%\.hgrc``
44 | (Windows) ``%HOME%\.hgrc``
45 | (Windows) ``%HOME%\Mercurial.ini``
45 | (Windows) ``%HOME%\Mercurial.ini``
46
46
47 Per-user configuration file(s), for the user running Mercurial. On
47 Per-user configuration file(s), for the user running Mercurial. On
48 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
48 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
49 files apply to all Mercurial commands executed by this user in any
49 files apply to all Mercurial commands executed by this user in any
50 directory. Options in these files override per-system and per-installation
50 directory. Options in these files override per-system and per-installation
51 options.
51 options.
52
52
53 | (Unix) ``/etc/mercurial/hgrc``
53 | (Unix) ``/etc/mercurial/hgrc``
54 | (Unix) ``/etc/mercurial/hgrc.d/*.rc``
54 | (Unix) ``/etc/mercurial/hgrc.d/*.rc``
55
55
56 Per-system configuration files, for the system on which Mercurial
56 Per-system configuration files, for the system on which Mercurial
57 is running. Options in these files apply to all Mercurial commands
57 is running. Options in these files apply to all Mercurial commands
58 executed by any user in any directory. Options in these files
58 executed by any user in any directory. Options in these files
59 override per-installation options.
59 override per-installation options.
60
60
61 | (Unix) ``<install-root>/etc/mercurial/hgrc``
61 | (Unix) ``<install-root>/etc/mercurial/hgrc``
62 | (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
62 | (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
63
63
64 Per-installation configuration files, searched for in the
64 Per-installation configuration files, searched for in the
65 directory where Mercurial is installed. ``<install-root>`` is the
65 directory where Mercurial is installed. ``<install-root>`` is the
66 parent directory of the **hg** executable (or symlink) being run. For
66 parent directory of the **hg** executable (or symlink) being run. For
67 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
67 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
68 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
68 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
69 to all Mercurial commands executed by any user in any directory.
69 to all Mercurial commands executed by any user in any directory.
70
70
71 | (Windows) ``<install-dir>\Mercurial.ini`` **or**
71 | (Windows) ``<install-dir>\Mercurial.ini`` **or**
72 | (Windows) ``<install-dir>\hgrc.d\*.rc`` **or**
72 | (Windows) ``<install-dir>\hgrc.d\*.rc`` **or**
73 | (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
73 | (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
74
74
75 Per-installation/system configuration files, for the system on
75 Per-installation/system configuration files, for the system on
76 which Mercurial is running. Options in these files apply to all
76 which Mercurial is running. Options in these files apply to all
77 Mercurial commands executed by any user in any directory. Registry
77 Mercurial commands executed by any user in any directory. Registry
78 keys contain PATH-like strings, every part of which must reference
78 keys contain PATH-like strings, every part of which must reference
79 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
79 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
80 be read. Mercurial checks each of these locations in the specified
80 be read. Mercurial checks each of these locations in the specified
81 order until one or more configuration files are detected. If the
81 order until one or more configuration files are detected. If the
82 pywin32 extensions are not installed, Mercurial will only look for
82 pywin32 extensions are not installed, Mercurial will only look for
83 site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
83 site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
84
84
85 Syntax
85 Syntax
86 ------
86 ------
87
87
88 A configuration file consists of sections, led by a ``[section]`` header
88 A configuration file consists of sections, led by a ``[section]`` header
89 and followed by ``name = value`` entries (sometimes called
89 and followed by ``name = value`` entries (sometimes called
90 ``configuration keys``)::
90 ``configuration keys``)::
91
91
92 [spam]
92 [spam]
93 eggs=ham
93 eggs=ham
94 green=
94 green=
95 eggs
95 eggs
96
96
97 Each line contains one entry. If the lines that follow are indented,
97 Each line contains one entry. If the lines that follow are indented,
98 they are treated as continuations of that entry. Leading whitespace is
98 they are treated as continuations of that entry. Leading whitespace is
99 removed from values. Empty lines are skipped. Lines beginning with
99 removed from values. Empty lines are skipped. Lines beginning with
100 ``#`` or ``;`` are ignored and may be used to provide comments.
100 ``#`` or ``;`` are ignored and may be used to provide comments.
101
101
102 Configuration keys can be set multiple times, in which case Mercurial
102 Configuration keys can be set multiple times, in which case Mercurial
103 will use the value that was configured last. As an example::
103 will use the value that was configured last. As an example::
104
104
105 [spam]
105 [spam]
106 eggs=large
106 eggs=large
107 ham=serrano
107 ham=serrano
108 eggs=small
108 eggs=small
109
109
110 This would set the configuration key named ``eggs`` to ``small``.
110 This would set the configuration key named ``eggs`` to ``small``.
111
111
112 It is also possible to define a section multiple times. A section can
112 It is also possible to define a section multiple times. A section can
113 be redefined on the same and/or on different configuration files. For
113 be redefined on the same and/or on different configuration files. For
114 example::
114 example::
115
115
116 [foo]
116 [foo]
117 eggs=large
117 eggs=large
118 ham=serrano
118 ham=serrano
119 eggs=small
119 eggs=small
120
120
121 [bar]
121 [bar]
122 eggs=ham
122 eggs=ham
123 green=
123 green=
124 eggs
124 eggs
125
125
126 [foo]
126 [foo]
127 ham=prosciutto
127 ham=prosciutto
128 eggs=medium
128 eggs=medium
129 bread=toasted
129 bread=toasted
130
130
131 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
131 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
132 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
132 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
133 respectively. As you can see there only thing that matters is the last
133 respectively. As you can see there only thing that matters is the last
134 value that was set for each of the configuration keys.
134 value that was set for each of the configuration keys.
135
135
136 If a configuration key is set multiple times in different
136 If a configuration key is set multiple times in different
137 configuration files the final value will depend on the order in which
137 configuration files the final value will depend on the order in which
138 the different configuration files are read, with settings from earlier
138 the different configuration files are read, with settings from earlier
139 paths overriding later ones as described on the ``Files`` section
139 paths overriding later ones as described on the ``Files`` section
140 above.
140 above.
141
141
142 A line of the form ``%include file`` will include ``file`` into the
142 A line of the form ``%include file`` will include ``file`` into the
143 current configuration file. The inclusion is recursive, which means
143 current configuration file. The inclusion is recursive, which means
144 that included files can include other files. Filenames are relative to
144 that included files can include other files. Filenames are relative to
145 the configuration file in which the ``%include`` directive is found.
145 the configuration file in which the ``%include`` directive is found.
146 Environment variables and ``~user`` constructs are expanded in
146 Environment variables and ``~user`` constructs are expanded in
147 ``file``. This lets you do something like::
147 ``file``. This lets you do something like::
148
148
149 %include ~/.hgrc.d/$HOST.rc
149 %include ~/.hgrc.d/$HOST.rc
150
150
151 to include a different configuration file on each computer you use.
151 to include a different configuration file on each computer you use.
152
152
153 A line with ``%unset name`` will remove ``name`` from the current
153 A line with ``%unset name`` will remove ``name`` from the current
154 section, if it has been set previously.
154 section, if it has been set previously.
155
155
156 The values are either free-form text strings, lists of text strings,
156 The values are either free-form text strings, lists of text strings,
157 or Boolean values. Boolean values can be set to true using any of "1",
157 or Boolean values. Boolean values can be set to true using any of "1",
158 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
158 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
159 (all case insensitive).
159 (all case insensitive).
160
160
161 List values are separated by whitespace or comma, except when values are
161 List values are separated by whitespace or comma, except when values are
162 placed in double quotation marks::
162 placed in double quotation marks::
163
163
164 allow_read = "John Doe, PhD", brian, betty
164 allow_read = "John Doe, PhD", brian, betty
165
165
166 Quotation marks can be escaped by prefixing them with a backslash. Only
166 Quotation marks can be escaped by prefixing them with a backslash. Only
167 quotation marks at the beginning of a word is counted as a quotation
167 quotation marks at the beginning of a word is counted as a quotation
168 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
168 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
169
169
170 Sections
170 Sections
171 --------
171 --------
172
172
173 This section describes the different sections that may appear in a
173 This section describes the different sections that may appear in a
174 Mercurial configuration file, the purpose of each section, its possible
174 Mercurial configuration file, the purpose of each section, its possible
175 keys, and their possible values.
175 keys, and their possible values.
176
176
177 ``alias``
177 ``alias``
178 """""""""
178 """""""""
179
179
180 Defines command aliases.
180 Defines command aliases.
181 Aliases allow you to define your own commands in terms of other
181 Aliases allow you to define your own commands in terms of other
182 commands (or aliases), optionally including arguments. Positional
182 commands (or aliases), optionally including arguments. Positional
183 arguments in the form of ``$1``, ``$2``, etc in the alias definition
183 arguments in the form of ``$1``, ``$2``, etc in the alias definition
184 are expanded by Mercurial before execution. Positional arguments not
184 are expanded by Mercurial before execution. Positional arguments not
185 already used by ``$N`` in the definition are put at the end of the
185 already used by ``$N`` in the definition are put at the end of the
186 command to be executed.
186 command to be executed.
187
187
188 Alias definitions consist of lines of the form::
188 Alias definitions consist of lines of the form::
189
189
190 <alias> = <command> [<argument>]...
190 <alias> = <command> [<argument>]...
191
191
192 For example, this definition::
192 For example, this definition::
193
193
194 latest = log --limit 5
194 latest = log --limit 5
195
195
196 creates a new command ``latest`` that shows only the five most recent
196 creates a new command ``latest`` that shows only the five most recent
197 changesets. You can define subsequent aliases using earlier ones::
197 changesets. You can define subsequent aliases using earlier ones::
198
198
199 stable5 = latest -b stable
199 stable5 = latest -b stable
200
200
201 .. note:: It is possible to create aliases with the same names as
201 .. note:: It is possible to create aliases with the same names as
202 existing commands, which will then override the original
202 existing commands, which will then override the original
203 definitions. This is almost always a bad idea!
203 definitions. This is almost always a bad idea!
204
204
205 An alias can start with an exclamation point (``!``) to make it a
205 An alias can start with an exclamation point (``!``) to make it a
206 shell alias. A shell alias is executed with the shell and will let you
206 shell alias. A shell alias is executed with the shell and will let you
207 run arbitrary commands. As an example, ::
207 run arbitrary commands. As an example, ::
208
208
209 echo = !echo
209 echo = !echo
210
210
211 will let you do ``hg echo foo`` to have ``foo`` printed in your
211 will let you do ``hg echo foo`` to have ``foo`` printed in your
212 terminal. A better example might be::
212 terminal. A better example might be::
213
213
214 purge = !$HG status --no-status --unknown -0 | xargs -0 rm
214 purge = !$HG status --no-status --unknown -0 | xargs -0 rm
215
215
216 which will make ``hg purge`` delete all unknown files in the
216 which will make ``hg purge`` delete all unknown files in the
217 repository in the same manner as the purge extension.
217 repository in the same manner as the purge extension.
218
218
219 Shell aliases are executed in an environment where ``$HG`` expand to
219 Shell aliases are executed in an environment where ``$HG`` expand to
220 the path of the Mercurial that was used to execute the alias. This is
220 the path of the Mercurial that was used to execute the alias. This is
221 useful when you want to call further Mercurial commands in a shell
221 useful when you want to call further Mercurial commands in a shell
222 alias, as was done above for the purge alias. In addition,
222 alias, as was done above for the purge alias. In addition,
223 ``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg
223 ``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg
224 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
224 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
225
225
226 .. note:: Some global configuration options such as ``-R`` are
226 .. note:: Some global configuration options such as ``-R`` are
227 processed before shell aliases and will thus not be passed to
227 processed before shell aliases and will thus not be passed to
228 aliases.
228 aliases.
229
229
230
230
231 ``annotate``
231 ``annotate``
232 """"""""""""
232 """"""""""""
233
233
234 Settings used when displaying file annotations. All values are
234 Settings used when displaying file annotations. All values are
235 Booleans and default to False. See ``diff`` section for related
235 Booleans and default to False. See ``diff`` section for related
236 options for the diff command.
236 options for the diff command.
237
237
238 ``ignorews``
238 ``ignorews``
239 Ignore white space when comparing lines.
239 Ignore white space when comparing lines.
240
240
241 ``ignorewsamount``
241 ``ignorewsamount``
242 Ignore changes in the amount of white space.
242 Ignore changes in the amount of white space.
243
243
244 ``ignoreblanklines``
244 ``ignoreblanklines``
245 Ignore changes whose lines are all blank.
245 Ignore changes whose lines are all blank.
246
246
247
247
248 ``auth``
248 ``auth``
249 """"""""
249 """"""""
250
250
251 Authentication credentials for HTTP authentication. This section
251 Authentication credentials for HTTP authentication. This section
252 allows you to store usernames and passwords for use when logging
252 allows you to store usernames and passwords for use when logging
253 *into* HTTP servers. See the ``[web]`` configuration section if
253 *into* HTTP servers. See the ``[web]`` configuration section if
254 you want to configure *who* can login to your HTTP server.
254 you want to configure *who* can login to your HTTP server.
255
255
256 Each line has the following format::
256 Each line has the following format::
257
257
258 <name>.<argument> = <value>
258 <name>.<argument> = <value>
259
259
260 where ``<name>`` is used to group arguments into authentication
260 where ``<name>`` is used to group arguments into authentication
261 entries. Example::
261 entries. Example::
262
262
263 foo.prefix = hg.intevation.org/mercurial
263 foo.prefix = hg.intevation.org/mercurial
264 foo.username = foo
264 foo.username = foo
265 foo.password = bar
265 foo.password = bar
266 foo.schemes = http https
266 foo.schemes = http https
267
267
268 bar.prefix = secure.example.org
268 bar.prefix = secure.example.org
269 bar.key = path/to/file.key
269 bar.key = path/to/file.key
270 bar.cert = path/to/file.cert
270 bar.cert = path/to/file.cert
271 bar.schemes = https
271 bar.schemes = https
272
272
273 Supported arguments:
273 Supported arguments:
274
274
275 ``prefix``
275 ``prefix``
276 Either ``*`` or a URI prefix with or without the scheme part.
276 Either ``*`` or a URI prefix with or without the scheme part.
277 The authentication entry with the longest matching prefix is used
277 The authentication entry with the longest matching prefix is used
278 (where ``*`` matches everything and counts as a match of length
278 (where ``*`` matches everything and counts as a match of length
279 1). If the prefix doesn't include a scheme, the match is performed
279 1). If the prefix doesn't include a scheme, the match is performed
280 against the URI with its scheme stripped as well, and the schemes
280 against the URI with its scheme stripped as well, and the schemes
281 argument, q.v., is then subsequently consulted.
281 argument, q.v., is then subsequently consulted.
282
282
283 ``username``
283 ``username``
284 Optional. Username to authenticate with. If not given, and the
284 Optional. Username to authenticate with. If not given, and the
285 remote site requires basic or digest authentication, the user will
285 remote site requires basic or digest authentication, the user will
286 be prompted for it. Environment variables are expanded in the
286 be prompted for it. Environment variables are expanded in the
287 username letting you do ``foo.username = $USER``. If the URI
287 username letting you do ``foo.username = $USER``. If the URI
288 includes a username, only ``[auth]`` entries with a matching
288 includes a username, only ``[auth]`` entries with a matching
289 username or without a username will be considered.
289 username or without a username will be considered.
290
290
291 ``password``
291 ``password``
292 Optional. Password to authenticate with. If not given, and the
292 Optional. Password to authenticate with. If not given, and the
293 remote site requires basic or digest authentication, the user
293 remote site requires basic or digest authentication, the user
294 will be prompted for it.
294 will be prompted for it.
295
295
296 ``key``
296 ``key``
297 Optional. PEM encoded client certificate key file. Environment
297 Optional. PEM encoded client certificate key file. Environment
298 variables are expanded in the filename.
298 variables are expanded in the filename.
299
299
300 ``cert``
300 ``cert``
301 Optional. PEM encoded client certificate chain file. Environment
301 Optional. PEM encoded client certificate chain file. Environment
302 variables are expanded in the filename.
302 variables are expanded in the filename.
303
303
304 ``schemes``
304 ``schemes``
305 Optional. Space separated list of URI schemes to use this
305 Optional. Space separated list of URI schemes to use this
306 authentication entry with. Only used if the prefix doesn't include
306 authentication entry with. Only used if the prefix doesn't include
307 a scheme. Supported schemes are http and https. They will match
307 a scheme. Supported schemes are http and https. They will match
308 static-http and static-https respectively, as well.
308 static-http and static-https respectively, as well.
309 Default: https.
309 Default: https.
310
310
311 If no suitable authentication entry is found, the user is prompted
311 If no suitable authentication entry is found, the user is prompted
312 for credentials as usual if required by the remote.
312 for credentials as usual if required by the remote.
313
313
314
314
315 ``decode/encode``
315 ``decode/encode``
316 """""""""""""""""
316 """""""""""""""""
317
317
318 Filters for transforming files on checkout/checkin. This would
318 Filters for transforming files on checkout/checkin. This would
319 typically be used for newline processing or other
319 typically be used for newline processing or other
320 localization/canonicalization of files.
320 localization/canonicalization of files.
321
321
322 Filters consist of a filter pattern followed by a filter command.
322 Filters consist of a filter pattern followed by a filter command.
323 Filter patterns are globs by default, rooted at the repository root.
323 Filter patterns are globs by default, rooted at the repository root.
324 For example, to match any file ending in ``.txt`` in the root
324 For example, to match any file ending in ``.txt`` in the root
325 directory only, use the pattern ``*.txt``. To match any file ending
325 directory only, use the pattern ``*.txt``. To match any file ending
326 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
326 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
327 For each file only the first matching filter applies.
327 For each file only the first matching filter applies.
328
328
329 The filter command can start with a specifier, either ``pipe:`` or
329 The filter command can start with a specifier, either ``pipe:`` or
330 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
330 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
331
331
332 A ``pipe:`` command must accept data on stdin and return the transformed
332 A ``pipe:`` command must accept data on stdin and return the transformed
333 data on stdout.
333 data on stdout.
334
334
335 Pipe example::
335 Pipe example::
336
336
337 [encode]
337 [encode]
338 # uncompress gzip files on checkin to improve delta compression
338 # uncompress gzip files on checkin to improve delta compression
339 # note: not necessarily a good idea, just an example
339 # note: not necessarily a good idea, just an example
340 *.gz = pipe: gunzip
340 *.gz = pipe: gunzip
341
341
342 [decode]
342 [decode]
343 # recompress gzip files when writing them to the working dir (we
343 # recompress gzip files when writing them to the working dir (we
344 # can safely omit "pipe:", because it's the default)
344 # can safely omit "pipe:", because it's the default)
345 *.gz = gzip
345 *.gz = gzip
346
346
347 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
347 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
348 with the name of a temporary file that contains the data to be
348 with the name of a temporary file that contains the data to be
349 filtered by the command. The string ``OUTFILE`` is replaced with the name
349 filtered by the command. The string ``OUTFILE`` is replaced with the name
350 of an empty temporary file, where the filtered data must be written by
350 of an empty temporary file, where the filtered data must be written by
351 the command.
351 the command.
352
352
353 .. note:: The tempfile mechanism is recommended for Windows systems,
353 .. note:: The tempfile mechanism is recommended for Windows systems,
354 where the standard shell I/O redirection operators often have
354 where the standard shell I/O redirection operators often have
355 strange effects and may corrupt the contents of your files.
355 strange effects and may corrupt the contents of your files.
356
356
357 This filter mechanism is used internally by the ``eol`` extension to
357 This filter mechanism is used internally by the ``eol`` extension to
358 translate line ending characters between Windows (CRLF) and Unix (LF)
358 translate line ending characters between Windows (CRLF) and Unix (LF)
359 format. We suggest you use the ``eol`` extension for convenience.
359 format. We suggest you use the ``eol`` extension for convenience.
360
360
361
361
362 ``defaults``
362 ``defaults``
363 """"""""""""
363 """"""""""""
364
364
365 (defaults are deprecated. Don't use them. Use aliases instead)
365 (defaults are deprecated. Don't use them. Use aliases instead)
366
366
367 Use the ``[defaults]`` section to define command defaults, i.e. the
367 Use the ``[defaults]`` section to define command defaults, i.e. the
368 default options/arguments to pass to the specified commands.
368 default options/arguments to pass to the specified commands.
369
369
370 The following example makes :hg:`log` run in verbose mode, and
370 The following example makes :hg:`log` run in verbose mode, and
371 :hg:`status` show only the modified files, by default::
371 :hg:`status` show only the modified files, by default::
372
372
373 [defaults]
373 [defaults]
374 log = -v
374 log = -v
375 status = -m
375 status = -m
376
376
377 The actual commands, instead of their aliases, must be used when
377 The actual commands, instead of their aliases, must be used when
378 defining command defaults. The command defaults will also be applied
378 defining command defaults. The command defaults will also be applied
379 to the aliases of the commands defined.
379 to the aliases of the commands defined.
380
380
381
381
382 ``diff``
382 ``diff``
383 """"""""
383 """"""""
384
384
385 Settings used when displaying diffs. Everything except for ``unified``
385 Settings used when displaying diffs. Everything except for ``unified``
386 is a Boolean and defaults to False. See ``annotate`` section for
386 is a Boolean and defaults to False. See ``annotate`` section for
387 related options for the annotate command.
387 related options for the annotate command.
388
388
389 ``git``
389 ``git``
390 Use git extended diff format.
390 Use git extended diff format.
391
391
392 ``nodates``
392 ``nodates``
393 Don't include dates in diff headers.
393 Don't include dates in diff headers.
394
394
395 ``showfunc``
395 ``showfunc``
396 Show which function each change is in.
396 Show which function each change is in.
397
397
398 ``ignorews``
398 ``ignorews``
399 Ignore white space when comparing lines.
399 Ignore white space when comparing lines.
400
400
401 ``ignorewsamount``
401 ``ignorewsamount``
402 Ignore changes in the amount of white space.
402 Ignore changes in the amount of white space.
403
403
404 ``ignoreblanklines``
404 ``ignoreblanklines``
405 Ignore changes whose lines are all blank.
405 Ignore changes whose lines are all blank.
406
406
407 ``unified``
407 ``unified``
408 Number of lines of context to show.
408 Number of lines of context to show.
409
409
410 ``email``
410 ``email``
411 """""""""
411 """""""""
412
412
413 Settings for extensions that send email messages.
413 Settings for extensions that send email messages.
414
414
415 ``from``
415 ``from``
416 Optional. Email address to use in "From" header and SMTP envelope
416 Optional. Email address to use in "From" header and SMTP envelope
417 of outgoing messages.
417 of outgoing messages.
418
418
419 ``to``
419 ``to``
420 Optional. Comma-separated list of recipients' email addresses.
420 Optional. Comma-separated list of recipients' email addresses.
421
421
422 ``cc``
422 ``cc``
423 Optional. Comma-separated list of carbon copy recipients'
423 Optional. Comma-separated list of carbon copy recipients'
424 email addresses.
424 email addresses.
425
425
426 ``bcc``
426 ``bcc``
427 Optional. Comma-separated list of blind carbon copy recipients'
427 Optional. Comma-separated list of blind carbon copy recipients'
428 email addresses.
428 email addresses.
429
429
430 ``method``
430 ``method``
431 Optional. Method to use to send email messages. If value is ``smtp``
431 Optional. Method to use to send email messages. If value is ``smtp``
432 (default), use SMTP (see the ``[smtp]`` section for configuration).
432 (default), use SMTP (see the ``[smtp]`` section for configuration).
433 Otherwise, use as name of program to run that acts like sendmail
433 Otherwise, use as name of program to run that acts like sendmail
434 (takes ``-f`` option for sender, list of recipients on command line,
434 (takes ``-f`` option for sender, list of recipients on command line,
435 message on stdin). Normally, setting this to ``sendmail`` or
435 message on stdin). Normally, setting this to ``sendmail`` or
436 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
436 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
437
437
438 ``charsets``
438 ``charsets``
439 Optional. Comma-separated list of character sets considered
439 Optional. Comma-separated list of character sets considered
440 convenient for recipients. Addresses, headers, and parts not
440 convenient for recipients. Addresses, headers, and parts not
441 containing patches of outgoing messages will be encoded in the
441 containing patches of outgoing messages will be encoded in the
442 first character set to which conversion from local encoding
442 first character set to which conversion from local encoding
443 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
443 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
444 conversion fails, the text in question is sent as is. Defaults to
444 conversion fails, the text in question is sent as is. Defaults to
445 empty (explicit) list.
445 empty (explicit) list.
446
446
447 Order of outgoing email character sets:
447 Order of outgoing email character sets:
448
448
449 1. ``us-ascii``: always first, regardless of settings
449 1. ``us-ascii``: always first, regardless of settings
450 2. ``email.charsets``: in order given by user
450 2. ``email.charsets``: in order given by user
451 3. ``ui.fallbackencoding``: if not in email.charsets
451 3. ``ui.fallbackencoding``: if not in email.charsets
452 4. ``$HGENCODING``: if not in email.charsets
452 4. ``$HGENCODING``: if not in email.charsets
453 5. ``utf-8``: always last, regardless of settings
453 5. ``utf-8``: always last, regardless of settings
454
454
455 Email example::
455 Email example::
456
456
457 [email]
457 [email]
458 from = Joseph User <joe.user@example.com>
458 from = Joseph User <joe.user@example.com>
459 method = /usr/sbin/sendmail
459 method = /usr/sbin/sendmail
460 # charsets for western Europeans
460 # charsets for western Europeans
461 # us-ascii, utf-8 omitted, as they are tried first and last
461 # us-ascii, utf-8 omitted, as they are tried first and last
462 charsets = iso-8859-1, iso-8859-15, windows-1252
462 charsets = iso-8859-1, iso-8859-15, windows-1252
463
463
464
464
465 ``extensions``
465 ``extensions``
466 """"""""""""""
466 """"""""""""""
467
467
468 Mercurial has an extension mechanism for adding new features. To
468 Mercurial has an extension mechanism for adding new features. To
469 enable an extension, create an entry for it in this section.
469 enable an extension, create an entry for it in this section.
470
470
471 If you know that the extension is already in Python's search path,
471 If you know that the extension is already in Python's search path,
472 you can give the name of the module, followed by ``=``, with nothing
472 you can give the name of the module, followed by ``=``, with nothing
473 after the ``=``.
473 after the ``=``.
474
474
475 Otherwise, give a name that you choose, followed by ``=``, followed by
475 Otherwise, give a name that you choose, followed by ``=``, followed by
476 the path to the ``.py`` file (including the file name extension) that
476 the path to the ``.py`` file (including the file name extension) that
477 defines the extension.
477 defines the extension.
478
478
479 To explicitly disable an extension that is enabled in an hgrc of
479 To explicitly disable an extension that is enabled in an hgrc of
480 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
480 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
481 or ``foo = !`` when path is not supplied.
481 or ``foo = !`` when path is not supplied.
482
482
483 Example for ``~/.hgrc``::
483 Example for ``~/.hgrc``::
484
484
485 [extensions]
485 [extensions]
486 # (the mq extension will get loaded from Mercurial's path)
486 # (the mq extension will get loaded from Mercurial's path)
487 mq =
487 mq =
488 # (this extension will get loaded from the file specified)
488 # (this extension will get loaded from the file specified)
489 myfeature = ~/.hgext/myfeature.py
489 myfeature = ~/.hgext/myfeature.py
490
490
491
491
492 ``hostfingerprints``
493 """"""""""""""""""""
494
495 Fingerprints of the certificates of known HTTPS servers.
496 A HTTPS connection to a server with a fingerprint configured here will
497 only succeed if the servers certificate matches the fingerprint.
498 This is very similar to how ssh known hosts works.
499 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
500 The CA chain and web.cacerts is not used for servers with a fingerprint.
501
502 For example::
503
504 [hostfingerprints]
505 hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
506
507 This feature is only supported when using Python 2.6 or later.
508
509
510 ``format``
492 ``format``
511 """"""""""
493 """"""""""
512
494
513 ``usestore``
495 ``usestore``
514 Enable or disable the "store" repository format which improves
496 Enable or disable the "store" repository format which improves
515 compatibility with systems that fold case or otherwise mangle
497 compatibility with systems that fold case or otherwise mangle
516 filenames. Enabled by default. Disabling this option will allow
498 filenames. Enabled by default. Disabling this option will allow
517 you to store longer filenames in some situations at the expense of
499 you to store longer filenames in some situations at the expense of
518 compatibility and ensures that the on-disk format of newly created
500 compatibility and ensures that the on-disk format of newly created
519 repositories will be compatible with Mercurial before version 0.9.4.
501 repositories will be compatible with Mercurial before version 0.9.4.
520
502
521 ``usefncache``
503 ``usefncache``
522 Enable or disable the "fncache" repository format which enhances
504 Enable or disable the "fncache" repository format which enhances
523 the "store" repository format (which has to be enabled to use
505 the "store" repository format (which has to be enabled to use
524 fncache) to allow longer filenames and avoids using Windows
506 fncache) to allow longer filenames and avoids using Windows
525 reserved names, e.g. "nul". Enabled by default. Disabling this
507 reserved names, e.g. "nul". Enabled by default. Disabling this
526 option ensures that the on-disk format of newly created
508 option ensures that the on-disk format of newly created
527 repositories will be compatible with Mercurial before version 1.1.
509 repositories will be compatible with Mercurial before version 1.1.
528
510
529 ``dotencode``
511 ``dotencode``
530 Enable or disable the "dotencode" repository format which enhances
512 Enable or disable the "dotencode" repository format which enhances
531 the "fncache" repository format (which has to be enabled to use
513 the "fncache" repository format (which has to be enabled to use
532 dotencode) to avoid issues with filenames starting with ._ on
514 dotencode) to avoid issues with filenames starting with ._ on
533 Mac OS X and spaces on Windows. Enabled by default. Disabling this
515 Mac OS X and spaces on Windows. Enabled by default. Disabling this
534 option ensures that the on-disk format of newly created
516 option ensures that the on-disk format of newly created
535 repositories will be compatible with Mercurial before version 1.7.
517 repositories will be compatible with Mercurial before version 1.7.
536
518
537 ``graph``
519 ``graph``
538 """""""""
520 """""""""
539
521
540 Web graph view configuration. This section let you change graph
522 Web graph view configuration. This section let you change graph
541 elements display properties by branches, for instance to make the
523 elements display properties by branches, for instance to make the
542 ``default`` branch stand out.
524 ``default`` branch stand out.
543
525
544 Each line has the following format::
526 Each line has the following format::
545
527
546 <branch>.<argument> = <value>
528 <branch>.<argument> = <value>
547
529
548 where ``<branch>`` is the name of the branch being
530 where ``<branch>`` is the name of the branch being
549 customized. Example::
531 customized. Example::
550
532
551 [graph]
533 [graph]
552 # 2px width
534 # 2px width
553 default.width = 2
535 default.width = 2
554 # red color
536 # red color
555 default.color = FF0000
537 default.color = FF0000
556
538
557 Supported arguments:
539 Supported arguments:
558
540
559 ``width``
541 ``width``
560 Set branch edges width in pixels.
542 Set branch edges width in pixels.
561
543
562 ``color``
544 ``color``
563 Set branch edges color in hexadecimal RGB notation.
545 Set branch edges color in hexadecimal RGB notation.
564
546
565 ``merge-patterns``
566 """"""""""""""""""
567
568 This section specifies merge tools to associate with particular file
569 patterns. Tools matched here will take precedence over the default
570 merge tool. Patterns are globs by default, rooted at the repository
571 root.
572
573 Example::
574
575 [merge-patterns]
576 **.c = kdiff3
577 **.jpg = myimgmerge
578
579 ``merge-tools``
580 """""""""""""""
581
582 This section configures external merge tools to use for file-level
583 merges.
584
585 Example ``~/.hgrc``::
586
587 [merge-tools]
588 # Override stock tool location
589 kdiff3.executable = ~/bin/kdiff3
590 # Specify command line
591 kdiff3.args = $base $local $other -o $output
592 # Give higher priority
593 kdiff3.priority = 1
594
595 # Define new tool
596 myHtmlTool.args = -m $local $other $base $output
597 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
598 myHtmlTool.priority = 1
599
600 Supported arguments:
601
602 ``priority``
603 The priority in which to evaluate this tool.
604 Default: 0.
605
606 ``executable``
607 Either just the name of the executable or its pathname. On Windows,
608 the path can use environment variables with ${ProgramFiles} syntax.
609 Default: the tool name.
610
611 ``args``
612 The arguments to pass to the tool executable. You can refer to the
613 files being merged as well as the output file through these
614 variables: ``$base``, ``$local``, ``$other``, ``$output``.
615 Default: ``$local $base $other``
616
617 ``premerge``
618 Attempt to run internal non-interactive 3-way merge tool before
619 launching external tool. Options are ``true``, ``false``, or ``keep``
620 to leave markers in the file if the premerge fails.
621 Default: True
622
623 ``binary``
624 This tool can merge binary files. Defaults to False, unless tool
625 was selected by file pattern match.
626
627 ``symlink``
628 This tool can merge symlinks. Defaults to False, even if tool was
629 selected by file pattern match.
630
631 ``check``
632 A list of merge success-checking options:
633
634 ``changed``
635 Ask whether merge was successful when the merged file shows no changes.
636 ``conflicts``
637 Check whether there are conflicts even though the tool reported success.
638 ``prompt``
639 Always prompt for merge success, regardless of success reported by tool.
640
641 ``checkchanged``
642 True is equivalent to ``check = changed``.
643 Default: False
644
645 ``checkconflicts``
646 True is equivalent to ``check = conflicts``.
647 Default: False
648
649 ``fixeol``
650 Attempt to fix up EOL changes caused by the merge tool.
651 Default: False
652
653 ``gui``
654 This tool requires a graphical interface to run. Default: False
655
656 ``regkey``
657 Windows registry key which describes install location of this
658 tool. Mercurial will search for this key first under
659 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
660 Default: None
661
662 ``regkeyalt``
663 An alternate Windows registry key to try if the first key is not
664 found. The alternate key uses the same ``regname`` and ``regappend``
665 semantics of the primary key. The most common use for this key
666 is to search for 32bit applications on 64bit operating systems.
667 Default: None
668
669 ``regname``
670 Name of value to read from specified registry key. Defaults to the
671 unnamed (default) value.
672
673 ``regappend``
674 String to append to the value read from the registry, typically
675 the executable name of the tool.
676 Default: None
677
678
679 ``hooks``
547 ``hooks``
680 """""""""
548 """""""""
681
549
682 Commands or Python functions that get automatically executed by
550 Commands or Python functions that get automatically executed by
683 various actions such as starting or finishing a commit. Multiple
551 various actions such as starting or finishing a commit. Multiple
684 hooks can be run for the same action by appending a suffix to the
552 hooks can be run for the same action by appending a suffix to the
685 action. Overriding a site-wide hook can be done by changing its
553 action. Overriding a site-wide hook can be done by changing its
686 value or setting it to an empty string. Hooks can be prioritized
554 value or setting it to an empty string. Hooks can be prioritized
687 by adding a prefix of ``priority`` to the hook name on a new line
555 by adding a prefix of ``priority`` to the hook name on a new line
688 and setting the priority. The default priority is 0 if
556 and setting the priority. The default priority is 0 if
689 not specified.
557 not specified.
690
558
691 Example ``.hg/hgrc``::
559 Example ``.hg/hgrc``::
692
560
693 [hooks]
561 [hooks]
694 # update working directory after adding changesets
562 # update working directory after adding changesets
695 changegroup.update = hg update
563 changegroup.update = hg update
696 # do not use the site-wide hook
564 # do not use the site-wide hook
697 incoming =
565 incoming =
698 incoming.email = /my/email/hook
566 incoming.email = /my/email/hook
699 incoming.autobuild = /my/build/hook
567 incoming.autobuild = /my/build/hook
700 # force autobuild hook to run before other incoming hooks
568 # force autobuild hook to run before other incoming hooks
701 priority.incoming.autobuild = 1
569 priority.incoming.autobuild = 1
702
570
703 Most hooks are run with environment variables set that give useful
571 Most hooks are run with environment variables set that give useful
704 additional information. For each hook below, the environment
572 additional information. For each hook below, the environment
705 variables it is passed are listed with names of the form ``$HG_foo``.
573 variables it is passed are listed with names of the form ``$HG_foo``.
706
574
707 ``changegroup``
575 ``changegroup``
708 Run after a changegroup has been added via push, pull or unbundle.
576 Run after a changegroup has been added via push, pull or unbundle.
709 ID of the first new changeset is in ``$HG_NODE``. URL from which
577 ID of the first new changeset is in ``$HG_NODE``. URL from which
710 changes came is in ``$HG_URL``.
578 changes came is in ``$HG_URL``.
711
579
712 ``commit``
580 ``commit``
713 Run after a changeset has been created in the local repository. ID
581 Run after a changeset has been created in the local repository. ID
714 of the newly created changeset is in ``$HG_NODE``. Parent changeset
582 of the newly created changeset is in ``$HG_NODE``. Parent changeset
715 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
583 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
716
584
717 ``incoming``
585 ``incoming``
718 Run after a changeset has been pulled, pushed, or unbundled into
586 Run after a changeset has been pulled, pushed, or unbundled into
719 the local repository. The ID of the newly arrived changeset is in
587 the local repository. The ID of the newly arrived changeset is in
720 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
588 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
721
589
722 ``outgoing``
590 ``outgoing``
723 Run after sending changes from local repository to another. ID of
591 Run after sending changes from local repository to another. ID of
724 first changeset sent is in ``$HG_NODE``. Source of operation is in
592 first changeset sent is in ``$HG_NODE``. Source of operation is in
725 ``$HG_SOURCE``; see "preoutgoing" hook for description.
593 ``$HG_SOURCE``; see "preoutgoing" hook for description.
726
594
727 ``post-<command>``
595 ``post-<command>``
728 Run after successful invocations of the associated command. The
596 Run after successful invocations of the associated command. The
729 contents of the command line are passed as ``$HG_ARGS`` and the result
597 contents of the command line are passed as ``$HG_ARGS`` and the result
730 code in ``$HG_RESULT``. Parsed command line arguments are passed as
598 code in ``$HG_RESULT``. Parsed command line arguments are passed as
731 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
599 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
732 the python data internally passed to <command>. ``$HG_OPTS`` is a
600 the python data internally passed to <command>. ``$HG_OPTS`` is a
733 dictionary of options (with unspecified options set to their defaults).
601 dictionary of options (with unspecified options set to their defaults).
734 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
602 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
735
603
736 ``pre-<command>``
604 ``pre-<command>``
737 Run before executing the associated command. The contents of the
605 Run before executing the associated command. The contents of the
738 command line are passed as ``$HG_ARGS``. Parsed command line arguments
606 command line are passed as ``$HG_ARGS``. Parsed command line arguments
739 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
607 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
740 representations of the data internally passed to <command>. ``$HG_OPTS``
608 representations of the data internally passed to <command>. ``$HG_OPTS``
741 is a dictionary of options (with unspecified options set to their
609 is a dictionary of options (with unspecified options set to their
742 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
610 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
743 failure, the command doesn't execute and Mercurial returns the failure
611 failure, the command doesn't execute and Mercurial returns the failure
744 code.
612 code.
745
613
746 ``prechangegroup``
614 ``prechangegroup``
747 Run before a changegroup is added via push, pull or unbundle. Exit
615 Run before a changegroup is added via push, pull or unbundle. Exit
748 status 0 allows the changegroup to proceed. Non-zero status will
616 status 0 allows the changegroup to proceed. Non-zero status will
749 cause the push, pull or unbundle to fail. URL from which changes
617 cause the push, pull or unbundle to fail. URL from which changes
750 will come is in ``$HG_URL``.
618 will come is in ``$HG_URL``.
751
619
752 ``precommit``
620 ``precommit``
753 Run before starting a local commit. Exit status 0 allows the
621 Run before starting a local commit. Exit status 0 allows the
754 commit to proceed. Non-zero status will cause the commit to fail.
622 commit to proceed. Non-zero status will cause the commit to fail.
755 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
623 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
756
624
757 ``prelistkeys``
625 ``prelistkeys``
758 Run before listing pushkeys (like bookmarks) in the
626 Run before listing pushkeys (like bookmarks) in the
759 repository. Non-zero status will cause failure. The key namespace is
627 repository. Non-zero status will cause failure. The key namespace is
760 in ``$HG_NAMESPACE``.
628 in ``$HG_NAMESPACE``.
761
629
762 ``preoutgoing``
630 ``preoutgoing``
763 Run before collecting changes to send from the local repository to
631 Run before collecting changes to send from the local repository to
764 another. Non-zero status will cause failure. This lets you prevent
632 another. Non-zero status will cause failure. This lets you prevent
765 pull over HTTP or SSH. Also prevents against local pull, push
633 pull over HTTP or SSH. Also prevents against local pull, push
766 (outbound) or bundle commands, but not effective, since you can
634 (outbound) or bundle commands, but not effective, since you can
767 just copy files instead then. Source of operation is in
635 just copy files instead then. Source of operation is in
768 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
636 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
769 SSH or HTTP repository. If "push", "pull" or "bundle", operation
637 SSH or HTTP repository. If "push", "pull" or "bundle", operation
770 is happening on behalf of repository on same system.
638 is happening on behalf of repository on same system.
771
639
772 ``prepushkey``
640 ``prepushkey``
773 Run before a pushkey (like a bookmark) is added to the
641 Run before a pushkey (like a bookmark) is added to the
774 repository. Non-zero status will cause the key to be rejected. The
642 repository. Non-zero status will cause the key to be rejected. The
775 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
643 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
776 the old value (if any) is in ``$HG_OLD``, and the new value is in
644 the old value (if any) is in ``$HG_OLD``, and the new value is in
777 ``$HG_NEW``.
645 ``$HG_NEW``.
778
646
779 ``pretag``
647 ``pretag``
780 Run before creating a tag. Exit status 0 allows the tag to be
648 Run before creating a tag. Exit status 0 allows the tag to be
781 created. Non-zero status will cause the tag to fail. ID of
649 created. Non-zero status will cause the tag to fail. ID of
782 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
650 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
783 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
651 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
784
652
785 ``pretxnchangegroup``
653 ``pretxnchangegroup``
786 Run after a changegroup has been added via push, pull or unbundle,
654 Run after a changegroup has been added via push, pull or unbundle,
787 but before the transaction has been committed. Changegroup is
655 but before the transaction has been committed. Changegroup is
788 visible to hook program. This lets you validate incoming changes
656 visible to hook program. This lets you validate incoming changes
789 before accepting them. Passed the ID of the first new changeset in
657 before accepting them. Passed the ID of the first new changeset in
790 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
658 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
791 status will cause the transaction to be rolled back and the push,
659 status will cause the transaction to be rolled back and the push,
792 pull or unbundle will fail. URL that was source of changes is in
660 pull or unbundle will fail. URL that was source of changes is in
793 ``$HG_URL``.
661 ``$HG_URL``.
794
662
795 ``pretxncommit``
663 ``pretxncommit``
796 Run after a changeset has been created but the transaction not yet
664 Run after a changeset has been created but the transaction not yet
797 committed. Changeset is visible to hook program. This lets you
665 committed. Changeset is visible to hook program. This lets you
798 validate commit message and changes. Exit status 0 allows the
666 validate commit message and changes. Exit status 0 allows the
799 commit to proceed. Non-zero status will cause the transaction to
667 commit to proceed. Non-zero status will cause the transaction to
800 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
668 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
801 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
669 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
802
670
803 ``preupdate``
671 ``preupdate``
804 Run before updating the working directory. Exit status 0 allows
672 Run before updating the working directory. Exit status 0 allows
805 the update to proceed. Non-zero status will prevent the update.
673 the update to proceed. Non-zero status will prevent the update.
806 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
674 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
807 of second new parent is in ``$HG_PARENT2``.
675 of second new parent is in ``$HG_PARENT2``.
808
676
809 ``listkeys``
677 ``listkeys``
810 Run after listing pushkeys (like bookmarks) in the repository. The
678 Run after listing pushkeys (like bookmarks) in the repository. The
811 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
679 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
812 dictionary containing the keys and values.
680 dictionary containing the keys and values.
813
681
814 ``pushkey``
682 ``pushkey``
815 Run after a pushkey (like a bookmark) is added to the
683 Run after a pushkey (like a bookmark) is added to the
816 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
684 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
817 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
685 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
818 value is in ``$HG_NEW``.
686 value is in ``$HG_NEW``.
819
687
820 ``tag``
688 ``tag``
821 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
689 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
822 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
690 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
823 repository if ``$HG_LOCAL=0``.
691 repository if ``$HG_LOCAL=0``.
824
692
825 ``update``
693 ``update``
826 Run after updating the working directory. Changeset ID of first
694 Run after updating the working directory. Changeset ID of first
827 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
695 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
828 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
696 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
829 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
697 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
830
698
831 .. note:: It is generally better to use standard hooks rather than the
699 .. note:: It is generally better to use standard hooks rather than the
832 generic pre- and post- command hooks as they are guaranteed to be
700 generic pre- and post- command hooks as they are guaranteed to be
833 called in the appropriate contexts for influencing transactions.
701 called in the appropriate contexts for influencing transactions.
834 Also, hooks like "commit" will be called in all contexts that
702 Also, hooks like "commit" will be called in all contexts that
835 generate a commit (e.g. tag) and not just the commit command.
703 generate a commit (e.g. tag) and not just the commit command.
836
704
837 .. note:: Environment variables with empty values may not be passed to
705 .. note:: Environment variables with empty values may not be passed to
838 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
706 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
839 will have an empty value under Unix-like platforms for non-merge
707 will have an empty value under Unix-like platforms for non-merge
840 changesets, while it will not be available at all under Windows.
708 changesets, while it will not be available at all under Windows.
841
709
842 The syntax for Python hooks is as follows::
710 The syntax for Python hooks is as follows::
843
711
844 hookname = python:modulename.submodule.callable
712 hookname = python:modulename.submodule.callable
845 hookname = python:/path/to/python/module.py:callable
713 hookname = python:/path/to/python/module.py:callable
846
714
847 Python hooks are run within the Mercurial process. Each hook is
715 Python hooks are run within the Mercurial process. Each hook is
848 called with at least three keyword arguments: a ui object (keyword
716 called with at least three keyword arguments: a ui object (keyword
849 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
717 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
850 keyword that tells what kind of hook is used. Arguments listed as
718 keyword that tells what kind of hook is used. Arguments listed as
851 environment variables above are passed as keyword arguments, with no
719 environment variables above are passed as keyword arguments, with no
852 ``HG_`` prefix, and names in lower case.
720 ``HG_`` prefix, and names in lower case.
853
721
854 If a Python hook returns a "true" value or raises an exception, this
722 If a Python hook returns a "true" value or raises an exception, this
855 is treated as a failure.
723 is treated as a failure.
856
724
857
725
726 ``hostfingerprints``
727 """"""""""""""""""""
728
729 Fingerprints of the certificates of known HTTPS servers.
730 A HTTPS connection to a server with a fingerprint configured here will
731 only succeed if the servers certificate matches the fingerprint.
732 This is very similar to how ssh known hosts works.
733 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
734 The CA chain and web.cacerts is not used for servers with a fingerprint.
735
736 For example::
737
738 [hostfingerprints]
739 hg.intevation.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
740
741 This feature is only supported when using Python 2.6 or later.
742
743
858 ``http_proxy``
744 ``http_proxy``
859 """"""""""""""
745 """"""""""""""
860
746
861 Used to access web-based Mercurial repositories through a HTTP
747 Used to access web-based Mercurial repositories through a HTTP
862 proxy.
748 proxy.
863
749
864 ``host``
750 ``host``
865 Host name and (optional) port of the proxy server, for example
751 Host name and (optional) port of the proxy server, for example
866 "myproxy:8000".
752 "myproxy:8000".
867
753
868 ``no``
754 ``no``
869 Optional. Comma-separated list of host names that should bypass
755 Optional. Comma-separated list of host names that should bypass
870 the proxy.
756 the proxy.
871
757
872 ``passwd``
758 ``passwd``
873 Optional. Password to authenticate with at the proxy server.
759 Optional. Password to authenticate with at the proxy server.
874
760
875 ``user``
761 ``user``
876 Optional. User name to authenticate with at the proxy server.
762 Optional. User name to authenticate with at the proxy server.
877
763
878 ``always``
764 ``always``
879 Optional. Always use the proxy, even for localhost and any entries
765 Optional. Always use the proxy, even for localhost and any entries
880 in ``http_proxy.no``. True or False. Default: False.
766 in ``http_proxy.no``. True or False. Default: False.
881
767
882 ``smtp``
768 ``merge-patterns``
883 """"""""
769 """"""""""""""""""
770
771 This section specifies merge tools to associate with particular file
772 patterns. Tools matched here will take precedence over the default
773 merge tool. Patterns are globs by default, rooted at the repository
774 root.
775
776 Example::
884
777
885 Configuration for extensions that need to send email messages.
778 [merge-patterns]
779 **.c = kdiff3
780 **.jpg = myimgmerge
781
782 ``merge-tools``
783 """""""""""""""
784
785 This section configures external merge tools to use for file-level
786 merges.
787
788 Example ``~/.hgrc``::
886
789
887 ``host``
790 [merge-tools]
888 Host name of mail server, e.g. "mail.example.com".
791 # Override stock tool location
792 kdiff3.executable = ~/bin/kdiff3
793 # Specify command line
794 kdiff3.args = $base $local $other -o $output
795 # Give higher priority
796 kdiff3.priority = 1
797
798 # Define new tool
799 myHtmlTool.args = -m $local $other $base $output
800 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
801 myHtmlTool.priority = 1
802
803 Supported arguments:
889
804
890 ``port``
805 ``priority``
891 Optional. Port to connect to on mail server. Default: 25.
806 The priority in which to evaluate this tool.
807 Default: 0.
808
809 ``executable``
810 Either just the name of the executable or its pathname. On Windows,
811 the path can use environment variables with ${ProgramFiles} syntax.
812 Default: the tool name.
813
814 ``args``
815 The arguments to pass to the tool executable. You can refer to the
816 files being merged as well as the output file through these
817 variables: ``$base``, ``$local``, ``$other``, ``$output``.
818 Default: ``$local $base $other``
892
819
893 ``tls``
820 ``premerge``
894 Optional. Method to enable TLS when connecting to mail server: starttls,
821 Attempt to run internal non-interactive 3-way merge tool before
895 smtps or none. Default: none.
822 launching external tool. Options are ``true``, ``false``, or ``keep``
823 to leave markers in the file if the premerge fails.
824 Default: True
825
826 ``binary``
827 This tool can merge binary files. Defaults to False, unless tool
828 was selected by file pattern match.
829
830 ``symlink``
831 This tool can merge symlinks. Defaults to False, even if tool was
832 selected by file pattern match.
896
833
897 ``username``
834 ``check``
898 Optional. User name for authenticating with the SMTP server.
835 A list of merge success-checking options:
899 Default: none.
836
837 ``changed``
838 Ask whether merge was successful when the merged file shows no changes.
839 ``conflicts``
840 Check whether there are conflicts even though the tool reported success.
841 ``prompt``
842 Always prompt for merge success, regardless of success reported by tool.
843
844 ``checkchanged``
845 True is equivalent to ``check = changed``.
846 Default: False
900
847
901 ``password``
848 ``checkconflicts``
902 Optional. Password for authenticating with the SMTP server. If not
849 True is equivalent to ``check = conflicts``.
903 specified, interactive sessions will prompt the user for a
850 Default: False
904 password; non-interactive sessions will fail. Default: none.
851
852 ``fixeol``
853 Attempt to fix up EOL changes caused by the merge tool.
854 Default: False
855
856 ``gui``
857 This tool requires a graphical interface to run. Default: False
905
858
906 ``local_hostname``
859 ``regkey``
907 Optional. It's the hostname that the sender can use to identify
860 Windows registry key which describes install location of this
908 itself to the MTA.
861 tool. Mercurial will search for this key first under
862 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
863 Default: None
864
865 ``regkeyalt``
866 An alternate Windows registry key to try if the first key is not
867 found. The alternate key uses the same ``regname`` and ``regappend``
868 semantics of the primary key. The most common use for this key
869 is to search for 32bit applications on 64bit operating systems.
870 Default: None
871
872 ``regname``
873 Name of value to read from specified registry key. Defaults to the
874 unnamed (default) value.
875
876 ``regappend``
877 String to append to the value read from the registry, typically
878 the executable name of the tool.
879 Default: None
909
880
910
881
911 ``patch``
882 ``patch``
912 """""""""
883 """""""""
913
884
914 Settings used when applying patches, for instance through the 'import'
885 Settings used when applying patches, for instance through the 'import'
915 command or with Mercurial Queues extension.
886 command or with Mercurial Queues extension.
916
887
917 ``eol``
888 ``eol``
918 When set to 'strict' patch content and patched files end of lines
889 When set to 'strict' patch content and patched files end of lines
919 are preserved. When set to ``lf`` or ``crlf``, both files end of
890 are preserved. When set to ``lf`` or ``crlf``, both files end of
920 lines are ignored when patching and the result line endings are
891 lines are ignored when patching and the result line endings are
921 normalized to either LF (Unix) or CRLF (Windows). When set to
892 normalized to either LF (Unix) or CRLF (Windows). When set to
922 ``auto``, end of lines are again ignored while patching but line
893 ``auto``, end of lines are again ignored while patching but line
923 endings in patched files are normalized to their original setting
894 endings in patched files are normalized to their original setting
924 on a per-file basis. If target file does not exist or has no end
895 on a per-file basis. If target file does not exist or has no end
925 of line, patch line endings are preserved.
896 of line, patch line endings are preserved.
926 Default: strict.
897 Default: strict.
927
898
928
899
929 ``paths``
900 ``paths``
930 """""""""
901 """""""""
931
902
932 Assigns symbolic names to repositories. The left side is the
903 Assigns symbolic names to repositories. The left side is the
933 symbolic name, and the right gives the directory or URL that is the
904 symbolic name, and the right gives the directory or URL that is the
934 location of the repository. Default paths can be declared by setting
905 location of the repository. Default paths can be declared by setting
935 the following entries.
906 the following entries.
936
907
937 ``default``
908 ``default``
938 Directory or URL to use when pulling if no source is specified.
909 Directory or URL to use when pulling if no source is specified.
939 Default is set to repository from which the current repository was
910 Default is set to repository from which the current repository was
940 cloned.
911 cloned.
941
912
942 ``default-push``
913 ``default-push``
943 Optional. Directory or URL to use when pushing if no destination
914 Optional. Directory or URL to use when pushing if no destination
944 is specified.
915 is specified.
945
916
946 ``phases``
917 ``phases``
947 """"""""""
918 """"""""""
948
919
949 Specifies default handling of phases. See :hg:`help phases` for more
920 Specifies default handling of phases. See :hg:`help phases` for more
950 information about working with phases.
921 information about working with phases.
951
922
952 ``publish``
923 ``publish``
953 Controls draft phase behavior when working as a server. When true,
924 Controls draft phase behavior when working as a server. When true,
954 pushed changesets are set to public in both client and server and
925 pushed changesets are set to public in both client and server and
955 pulled or cloned changesets are set to public in the client.
926 pulled or cloned changesets are set to public in the client.
956 Default: True
927 Default: True
957
928
958 ``new-commit``
929 ``new-commit``
959 Phase of newly-created commits.
930 Phase of newly-created commits.
960 Default: draft
931 Default: draft
961
932
962 ``profiling``
933 ``profiling``
963 """""""""""""
934 """""""""""""
964
935
965 Specifies profiling format and file output. In this section
936 Specifies profiling format and file output. In this section
966 description, 'profiling data' stands for the raw data collected
937 description, 'profiling data' stands for the raw data collected
967 during profiling, while 'profiling report' stands for a statistical
938 during profiling, while 'profiling report' stands for a statistical
968 text report generated from the profiling data. The profiling is done
939 text report generated from the profiling data. The profiling is done
969 using lsprof.
940 using lsprof.
970
941
971 ``format``
942 ``format``
972 Profiling format.
943 Profiling format.
973 Default: text.
944 Default: text.
974
945
975 ``text``
946 ``text``
976 Generate a profiling report. When saving to a file, it should be
947 Generate a profiling report. When saving to a file, it should be
977 noted that only the report is saved, and the profiling data is
948 noted that only the report is saved, and the profiling data is
978 not kept.
949 not kept.
979 ``kcachegrind``
950 ``kcachegrind``
980 Format profiling data for kcachegrind use: when saving to a
951 Format profiling data for kcachegrind use: when saving to a
981 file, the generated file can directly be loaded into
952 file, the generated file can directly be loaded into
982 kcachegrind.
953 kcachegrind.
983
954
984 ``output``
955 ``output``
985 File path where profiling data or report should be saved. If the
956 File path where profiling data or report should be saved. If the
986 file exists, it is replaced. Default: None, data is printed on
957 file exists, it is replaced. Default: None, data is printed on
987 stderr
958 stderr
988
959
989 ``revsetalias``
960 ``revsetalias``
990 """""""""""""""
961 """""""""""""""
991
962
992 Alias definitions for revsets. See :hg:`help revsets` for details.
963 Alias definitions for revsets. See :hg:`help revsets` for details.
993
964
994 ``server``
965 ``server``
995 """"""""""
966 """"""""""
996
967
997 Controls generic server settings.
968 Controls generic server settings.
998
969
999 ``uncompressed``
970 ``uncompressed``
1000 Whether to allow clients to clone a repository using the
971 Whether to allow clients to clone a repository using the
1001 uncompressed streaming protocol. This transfers about 40% more
972 uncompressed streaming protocol. This transfers about 40% more
1002 data than a regular clone, but uses less memory and CPU on both
973 data than a regular clone, but uses less memory and CPU on both
1003 server and client. Over a LAN (100 Mbps or better) or a very fast
974 server and client. Over a LAN (100 Mbps or better) or a very fast
1004 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
975 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1005 regular clone. Over most WAN connections (anything slower than
976 regular clone. Over most WAN connections (anything slower than
1006 about 6 Mbps), uncompressed streaming is slower, because of the
977 about 6 Mbps), uncompressed streaming is slower, because of the
1007 extra data transfer overhead. This mode will also temporarily hold
978 extra data transfer overhead. This mode will also temporarily hold
1008 the write lock while determining what data to transfer.
979 the write lock while determining what data to transfer.
1009 Default is True.
980 Default is True.
1010
981
1011 ``validate``
982 ``validate``
1012 Whether to validate the completeness of pushed changesets by
983 Whether to validate the completeness of pushed changesets by
1013 checking that all new file revisions specified in manifests are
984 checking that all new file revisions specified in manifests are
1014 present. Default is False.
985 present. Default is False.
1015
986
987 ``smtp``
988 """"""""
989
990 Configuration for extensions that need to send email messages.
991
992 ``host``
993 Host name of mail server, e.g. "mail.example.com".
994
995 ``port``
996 Optional. Port to connect to on mail server. Default: 25.
997
998 ``tls``
999 Optional. Method to enable TLS when connecting to mail server: starttls,
1000 smtps or none. Default: none.
1001
1002 ``username``
1003 Optional. User name for authenticating with the SMTP server.
1004 Default: none.
1005
1006 ``password``
1007 Optional. Password for authenticating with the SMTP server. If not
1008 specified, interactive sessions will prompt the user for a
1009 password; non-interactive sessions will fail. Default: none.
1010
1011 ``local_hostname``
1012 Optional. It's the hostname that the sender can use to identify
1013 itself to the MTA.
1014
1015
1016 ``subpaths``
1016 ``subpaths``
1017 """"""""""""
1017 """"""""""""
1018
1018
1019 Defines subrepositories source locations rewriting rules of the form::
1019 Defines subrepositories source locations rewriting rules of the form::
1020
1020
1021 <pattern> = <replacement>
1021 <pattern> = <replacement>
1022
1022
1023 Where ``pattern`` is a regular expression matching the source and
1023 Where ``pattern`` is a regular expression matching the source and
1024 ``replacement`` is the replacement string used to rewrite it. Groups
1024 ``replacement`` is the replacement string used to rewrite it. Groups
1025 can be matched in ``pattern`` and referenced in ``replacements``. For
1025 can be matched in ``pattern`` and referenced in ``replacements``. For
1026 instance::
1026 instance::
1027
1027
1028 http://server/(.*)-hg/ = http://hg.server/\1/
1028 http://server/(.*)-hg/ = http://hg.server/\1/
1029
1029
1030 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1030 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1031
1031
1032 All patterns are applied in definition order.
1032 All patterns are applied in definition order.
1033
1033
1034 ``trusted``
1034 ``trusted``
1035 """""""""""
1035 """""""""""
1036
1036
1037 Mercurial will not use the settings in the
1037 Mercurial will not use the settings in the
1038 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1038 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1039 user or to a trusted group, as various hgrc features allow arbitrary
1039 user or to a trusted group, as various hgrc features allow arbitrary
1040 commands to be run. This issue is often encountered when configuring
1040 commands to be run. This issue is often encountered when configuring
1041 hooks or extensions for shared repositories or servers. However,
1041 hooks or extensions for shared repositories or servers. However,
1042 the web interface will use some safe settings from the ``[web]``
1042 the web interface will use some safe settings from the ``[web]``
1043 section.
1043 section.
1044
1044
1045 This section specifies what users and groups are trusted. The
1045 This section specifies what users and groups are trusted. The
1046 current user is always trusted. To trust everybody, list a user or a
1046 current user is always trusted. To trust everybody, list a user or a
1047 group with name ``*``. These settings must be placed in an
1047 group with name ``*``. These settings must be placed in an
1048 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1048 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1049 user or service running Mercurial.
1049 user or service running Mercurial.
1050
1050
1051 ``users``
1051 ``users``
1052 Comma-separated list of trusted users.
1052 Comma-separated list of trusted users.
1053
1053
1054 ``groups``
1054 ``groups``
1055 Comma-separated list of trusted groups.
1055 Comma-separated list of trusted groups.
1056
1056
1057
1057
1058 ``ui``
1058 ``ui``
1059 """"""
1059 """"""
1060
1060
1061 User interface controls.
1061 User interface controls.
1062
1062
1063 ``archivemeta``
1063 ``archivemeta``
1064 Whether to include the .hg_archival.txt file containing meta data
1064 Whether to include the .hg_archival.txt file containing meta data
1065 (hashes for the repository base and for tip) in archives created
1065 (hashes for the repository base and for tip) in archives created
1066 by the :hg:`archive` command or downloaded via hgweb.
1066 by the :hg:`archive` command or downloaded via hgweb.
1067 Default is True.
1067 Default is True.
1068
1068
1069 ``askusername``
1069 ``askusername``
1070 Whether to prompt for a username when committing. If True, and
1070 Whether to prompt for a username when committing. If True, and
1071 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1071 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1072 be prompted to enter a username. If no username is entered, the
1072 be prompted to enter a username. If no username is entered, the
1073 default ``USER@HOST`` is used instead.
1073 default ``USER@HOST`` is used instead.
1074 Default is False.
1074 Default is False.
1075
1075
1076 ``commitsubrepos``
1076 ``commitsubrepos``
1077 Whether to commit modified subrepositories when committing the
1077 Whether to commit modified subrepositories when committing the
1078 parent repository. If False and one subrepository has uncommitted
1078 parent repository. If False and one subrepository has uncommitted
1079 changes, abort the commit.
1079 changes, abort the commit.
1080 Default is False.
1080 Default is False.
1081
1081
1082 ``debug``
1082 ``debug``
1083 Print debugging information. True or False. Default is False.
1083 Print debugging information. True or False. Default is False.
1084
1084
1085 ``editor``
1085 ``editor``
1086 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
1086 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
1087
1087
1088 ``fallbackencoding``
1088 ``fallbackencoding``
1089 Encoding to try if it's not possible to decode the changelog using
1089 Encoding to try if it's not possible to decode the changelog using
1090 UTF-8. Default is ISO-8859-1.
1090 UTF-8. Default is ISO-8859-1.
1091
1091
1092 ``ignore``
1092 ``ignore``
1093 A file to read per-user ignore patterns from. This file should be
1093 A file to read per-user ignore patterns from. This file should be
1094 in the same format as a repository-wide .hgignore file. This
1094 in the same format as a repository-wide .hgignore file. This
1095 option supports hook syntax, so if you want to specify multiple
1095 option supports hook syntax, so if you want to specify multiple
1096 ignore files, you can do so by setting something like
1096 ignore files, you can do so by setting something like
1097 ``ignore.other = ~/.hgignore2``. For details of the ignore file
1097 ``ignore.other = ~/.hgignore2``. For details of the ignore file
1098 format, see the ``hgignore(5)`` man page.
1098 format, see the ``hgignore(5)`` man page.
1099
1099
1100 ``interactive``
1100 ``interactive``
1101 Allow to prompt the user. True or False. Default is True.
1101 Allow to prompt the user. True or False. Default is True.
1102
1102
1103 ``logtemplate``
1103 ``logtemplate``
1104 Template string for commands that print changesets.
1104 Template string for commands that print changesets.
1105
1105
1106 ``merge``
1106 ``merge``
1107 The conflict resolution program to use during a manual merge.
1107 The conflict resolution program to use during a manual merge.
1108 For more information on merge tools see :hg:`help merge-tools`.
1108 For more information on merge tools see :hg:`help merge-tools`.
1109 For configuring merge tools see the ``[merge-tools]`` section.
1109 For configuring merge tools see the ``[merge-tools]`` section.
1110
1110
1111 ``portablefilenames``
1111 ``portablefilenames``
1112 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1112 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1113 Default is ``warn``.
1113 Default is ``warn``.
1114 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1114 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1115 platforms, if a file with a non-portable filename is added (e.g. a file
1115 platforms, if a file with a non-portable filename is added (e.g. a file
1116 with a name that can't be created on Windows because it contains reserved
1116 with a name that can't be created on Windows because it contains reserved
1117 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1117 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1118 collision with an existing file).
1118 collision with an existing file).
1119 If set to ``ignore`` (or ``false``), no warning is printed.
1119 If set to ``ignore`` (or ``false``), no warning is printed.
1120 If set to ``abort``, the command is aborted.
1120 If set to ``abort``, the command is aborted.
1121 On Windows, this configuration option is ignored and the command aborted.
1121 On Windows, this configuration option is ignored and the command aborted.
1122
1122
1123 ``quiet``
1123 ``quiet``
1124 Reduce the amount of output printed. True or False. Default is False.
1124 Reduce the amount of output printed. True or False. Default is False.
1125
1125
1126 ``remotecmd``
1126 ``remotecmd``
1127 remote command to use for clone/push/pull operations. Default is ``hg``.
1127 remote command to use for clone/push/pull operations. Default is ``hg``.
1128
1128
1129 ``report_untrusted``
1129 ``report_untrusted``
1130 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1130 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1131 trusted user or group. True or False. Default is True.
1131 trusted user or group. True or False. Default is True.
1132
1132
1133 ``slash``
1133 ``slash``
1134 Display paths using a slash (``/``) as the path separator. This
1134 Display paths using a slash (``/``) as the path separator. This
1135 only makes a difference on systems where the default path
1135 only makes a difference on systems where the default path
1136 separator is not the slash character (e.g. Windows uses the
1136 separator is not the slash character (e.g. Windows uses the
1137 backslash character (``\``)).
1137 backslash character (``\``)).
1138 Default is False.
1138 Default is False.
1139
1139
1140 ``ssh``
1140 ``ssh``
1141 command to use for SSH connections. Default is ``ssh``.
1141 command to use for SSH connections. Default is ``ssh``.
1142
1142
1143 ``strict``
1143 ``strict``
1144 Require exact command names, instead of allowing unambiguous
1144 Require exact command names, instead of allowing unambiguous
1145 abbreviations. True or False. Default is False.
1145 abbreviations. True or False. Default is False.
1146
1146
1147 ``style``
1147 ``style``
1148 Name of style to use for command output.
1148 Name of style to use for command output.
1149
1149
1150 ``timeout``
1150 ``timeout``
1151 The timeout used when a lock is held (in seconds), a negative value
1151 The timeout used when a lock is held (in seconds), a negative value
1152 means no timeout. Default is 600.
1152 means no timeout. Default is 600.
1153
1153
1154 ``traceback``
1154 ``traceback``
1155 Mercurial always prints a traceback when an unknown exception
1155 Mercurial always prints a traceback when an unknown exception
1156 occurs. Setting this to True will make Mercurial print a traceback
1156 occurs. Setting this to True will make Mercurial print a traceback
1157 on all exceptions, even those recognized by Mercurial (such as
1157 on all exceptions, even those recognized by Mercurial (such as
1158 IOError or MemoryError). Default is False.
1158 IOError or MemoryError). Default is False.
1159
1159
1160 ``username``
1160 ``username``
1161 The committer of a changeset created when running "commit".
1161 The committer of a changeset created when running "commit".
1162 Typically a person's name and email address, e.g. ``Fred Widget
1162 Typically a person's name and email address, e.g. ``Fred Widget
1163 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
1163 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
1164 the username in hgrc is empty, it has to be specified manually or
1164 the username in hgrc is empty, it has to be specified manually or
1165 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
1165 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
1166 ``username =`` in the system hgrc). Environment variables in the
1166 ``username =`` in the system hgrc). Environment variables in the
1167 username are expanded.
1167 username are expanded.
1168
1168
1169 ``verbose``
1169 ``verbose``
1170 Increase the amount of output printed. True or False. Default is False.
1170 Increase the amount of output printed. True or False. Default is False.
1171
1171
1172
1172
1173 ``web``
1173 ``web``
1174 """""""
1174 """""""
1175
1175
1176 Web interface configuration. The settings in this section apply to
1176 Web interface configuration. The settings in this section apply to
1177 both the builtin webserver (started by :hg:`serve`) and the script you
1177 both the builtin webserver (started by :hg:`serve`) and the script you
1178 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1178 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1179 and WSGI).
1179 and WSGI).
1180
1180
1181 The Mercurial webserver does no authentication (it does not prompt for
1181 The Mercurial webserver does no authentication (it does not prompt for
1182 usernames and passwords to validate *who* users are), but it does do
1182 usernames and passwords to validate *who* users are), but it does do
1183 authorization (it grants or denies access for *authenticated users*
1183 authorization (it grants or denies access for *authenticated users*
1184 based on settings in this section). You must either configure your
1184 based on settings in this section). You must either configure your
1185 webserver to do authentication for you, or disable the authorization
1185 webserver to do authentication for you, or disable the authorization
1186 checks.
1186 checks.
1187
1187
1188 For a quick setup in a trusted environment, e.g., a private LAN, where
1188 For a quick setup in a trusted environment, e.g., a private LAN, where
1189 you want it to accept pushes from anybody, you can use the following
1189 you want it to accept pushes from anybody, you can use the following
1190 command line::
1190 command line::
1191
1191
1192 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1192 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1193
1193
1194 Note that this will allow anybody to push anything to the server and
1194 Note that this will allow anybody to push anything to the server and
1195 that this should not be used for public servers.
1195 that this should not be used for public servers.
1196
1196
1197 The full set of options is:
1197 The full set of options is:
1198
1198
1199 ``accesslog``
1199 ``accesslog``
1200 Where to output the access log. Default is stdout.
1200 Where to output the access log. Default is stdout.
1201
1201
1202 ``address``
1202 ``address``
1203 Interface address to bind to. Default is all.
1203 Interface address to bind to. Default is all.
1204
1204
1205 ``allow_archive``
1205 ``allow_archive``
1206 List of archive format (bz2, gz, zip) allowed for downloading.
1206 List of archive format (bz2, gz, zip) allowed for downloading.
1207 Default is empty.
1207 Default is empty.
1208
1208
1209 ``allowbz2``
1209 ``allowbz2``
1210 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1210 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1211 revisions.
1211 revisions.
1212 Default is False.
1212 Default is False.
1213
1213
1214 ``allowgz``
1214 ``allowgz``
1215 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1215 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1216 revisions.
1216 revisions.
1217 Default is False.
1217 Default is False.
1218
1218
1219 ``allowpull``
1219 ``allowpull``
1220 Whether to allow pulling from the repository. Default is True.
1220 Whether to allow pulling from the repository. Default is True.
1221
1221
1222 ``allow_push``
1222 ``allow_push``
1223 Whether to allow pushing to the repository. If empty or not set,
1223 Whether to allow pushing to the repository. If empty or not set,
1224 push is not allowed. If the special value ``*``, any remote user can
1224 push is not allowed. If the special value ``*``, any remote user can
1225 push, including unauthenticated users. Otherwise, the remote user
1225 push, including unauthenticated users. Otherwise, the remote user
1226 must have been authenticated, and the authenticated user name must
1226 must have been authenticated, and the authenticated user name must
1227 be present in this list. The contents of the allow_push list are
1227 be present in this list. The contents of the allow_push list are
1228 examined after the deny_push list.
1228 examined after the deny_push list.
1229
1229
1230 ``guessmime``
1230 ``guessmime``
1231 Control MIME types for raw download of file content.
1231 Control MIME types for raw download of file content.
1232 Set to True to let hgweb guess the content type from the file
1232 Set to True to let hgweb guess the content type from the file
1233 extension. This will serve HTML files as ``text/html`` and might
1233 extension. This will serve HTML files as ``text/html`` and might
1234 allow cross-site scripting attacks when serving untrusted
1234 allow cross-site scripting attacks when serving untrusted
1235 repositories. Default is False.
1235 repositories. Default is False.
1236
1236
1237 ``allow_read``
1237 ``allow_read``
1238 If the user has not already been denied repository access due to
1238 If the user has not already been denied repository access due to
1239 the contents of deny_read, this list determines whether to grant
1239 the contents of deny_read, this list determines whether to grant
1240 repository access to the user. If this list is not empty, and the
1240 repository access to the user. If this list is not empty, and the
1241 user is unauthenticated or not present in the list, then access is
1241 user is unauthenticated or not present in the list, then access is
1242 denied for the user. If the list is empty or not set, then access
1242 denied for the user. If the list is empty or not set, then access
1243 is permitted to all users by default. Setting allow_read to the
1243 is permitted to all users by default. Setting allow_read to the
1244 special value ``*`` is equivalent to it not being set (i.e. access
1244 special value ``*`` is equivalent to it not being set (i.e. access
1245 is permitted to all users). The contents of the allow_read list are
1245 is permitted to all users). The contents of the allow_read list are
1246 examined after the deny_read list.
1246 examined after the deny_read list.
1247
1247
1248 ``allowzip``
1248 ``allowzip``
1249 (DEPRECATED) Whether to allow .zip downloading of repository
1249 (DEPRECATED) Whether to allow .zip downloading of repository
1250 revisions. Default is False. This feature creates temporary files.
1250 revisions. Default is False. This feature creates temporary files.
1251
1251
1252 ``baseurl``
1252 ``baseurl``
1253 Base URL to use when publishing URLs in other locations, so
1253 Base URL to use when publishing URLs in other locations, so
1254 third-party tools like email notification hooks can construct
1254 third-party tools like email notification hooks can construct
1255 URLs. Example: ``http://hgserver/repos/``.
1255 URLs. Example: ``http://hgserver/repos/``.
1256
1256
1257 ``cacerts``
1257 ``cacerts``
1258 Path to file containing a list of PEM encoded certificate
1258 Path to file containing a list of PEM encoded certificate
1259 authority certificates. Environment variables and ``~user``
1259 authority certificates. Environment variables and ``~user``
1260 constructs are expanded in the filename. If specified on the
1260 constructs are expanded in the filename. If specified on the
1261 client, then it will verify the identity of remote HTTPS servers
1261 client, then it will verify the identity of remote HTTPS servers
1262 with these certificates. The form must be as follows::
1262 with these certificates. The form must be as follows::
1263
1263
1264 -----BEGIN CERTIFICATE-----
1264 -----BEGIN CERTIFICATE-----
1265 ... (certificate in base64 PEM encoding) ...
1265 ... (certificate in base64 PEM encoding) ...
1266 -----END CERTIFICATE-----
1266 -----END CERTIFICATE-----
1267 -----BEGIN CERTIFICATE-----
1267 -----BEGIN CERTIFICATE-----
1268 ... (certificate in base64 PEM encoding) ...
1268 ... (certificate in base64 PEM encoding) ...
1269 -----END CERTIFICATE-----
1269 -----END CERTIFICATE-----
1270
1270
1271 This feature is only supported when using Python 2.6 or later. If you wish
1271 This feature is only supported when using Python 2.6 or later. If you wish
1272 to use it with earlier versions of Python, install the backported
1272 to use it with earlier versions of Python, install the backported
1273 version of the ssl library that is available from
1273 version of the ssl library that is available from
1274 ``http://pypi.python.org``.
1274 ``http://pypi.python.org``.
1275
1275
1276 You can use OpenSSL's CA certificate file if your platform has one.
1276 You can use OpenSSL's CA certificate file if your platform has one.
1277 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
1277 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
1278 Otherwise you will have to generate this file manually.
1278 Otherwise you will have to generate this file manually.
1279
1279
1280 To disable SSL verification temporarily, specify ``--insecure`` from
1280 To disable SSL verification temporarily, specify ``--insecure`` from
1281 command line.
1281 command line.
1282
1282
1283 ``cache``
1283 ``cache``
1284 Whether to support caching in hgweb. Defaults to True.
1284 Whether to support caching in hgweb. Defaults to True.
1285
1285
1286 ``contact``
1286 ``contact``
1287 Name or email address of the person in charge of the repository.
1287 Name or email address of the person in charge of the repository.
1288 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
1288 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
1289
1289
1290 ``deny_push``
1290 ``deny_push``
1291 Whether to deny pushing to the repository. If empty or not set,
1291 Whether to deny pushing to the repository. If empty or not set,
1292 push is not denied. If the special value ``*``, all remote users are
1292 push is not denied. If the special value ``*``, all remote users are
1293 denied push. Otherwise, unauthenticated users are all denied, and
1293 denied push. Otherwise, unauthenticated users are all denied, and
1294 any authenticated user name present in this list is also denied. The
1294 any authenticated user name present in this list is also denied. The
1295 contents of the deny_push list are examined before the allow_push list.
1295 contents of the deny_push list are examined before the allow_push list.
1296
1296
1297 ``deny_read``
1297 ``deny_read``
1298 Whether to deny reading/viewing of the repository. If this list is
1298 Whether to deny reading/viewing of the repository. If this list is
1299 not empty, unauthenticated users are all denied, and any
1299 not empty, unauthenticated users are all denied, and any
1300 authenticated user name present in this list is also denied access to
1300 authenticated user name present in this list is also denied access to
1301 the repository. If set to the special value ``*``, all remote users
1301 the repository. If set to the special value ``*``, all remote users
1302 are denied access (rarely needed ;). If deny_read is empty or not set,
1302 are denied access (rarely needed ;). If deny_read is empty or not set,
1303 the determination of repository access depends on the presence and
1303 the determination of repository access depends on the presence and
1304 content of the allow_read list (see description). If both
1304 content of the allow_read list (see description). If both
1305 deny_read and allow_read are empty or not set, then access is
1305 deny_read and allow_read are empty or not set, then access is
1306 permitted to all users by default. If the repository is being
1306 permitted to all users by default. If the repository is being
1307 served via hgwebdir, denied users will not be able to see it in
1307 served via hgwebdir, denied users will not be able to see it in
1308 the list of repositories. The contents of the deny_read list have
1308 the list of repositories. The contents of the deny_read list have
1309 priority over (are examined before) the contents of the allow_read
1309 priority over (are examined before) the contents of the allow_read
1310 list.
1310 list.
1311
1311
1312 ``descend``
1312 ``descend``
1313 hgwebdir indexes will not descend into subdirectories. Only repositories
1313 hgwebdir indexes will not descend into subdirectories. Only repositories
1314 directly in the current path will be shown (other repositories are still
1314 directly in the current path will be shown (other repositories are still
1315 available from the index corresponding to their containing path).
1315 available from the index corresponding to their containing path).
1316
1316
1317 ``description``
1317 ``description``
1318 Textual description of the repository's purpose or contents.
1318 Textual description of the repository's purpose or contents.
1319 Default is "unknown".
1319 Default is "unknown".
1320
1320
1321 ``encoding``
1321 ``encoding``
1322 Character encoding name. Default is the current locale charset.
1322 Character encoding name. Default is the current locale charset.
1323 Example: "UTF-8"
1323 Example: "UTF-8"
1324
1324
1325 ``errorlog``
1325 ``errorlog``
1326 Where to output the error log. Default is stderr.
1326 Where to output the error log. Default is stderr.
1327
1327
1328 ``hidden``
1328 ``hidden``
1329 Whether to hide the repository in the hgwebdir index.
1329 Whether to hide the repository in the hgwebdir index.
1330 Default is False.
1330 Default is False.
1331
1331
1332 ``ipv6``
1332 ``ipv6``
1333 Whether to use IPv6. Default is False.
1333 Whether to use IPv6. Default is False.
1334
1334
1335 ``logoimg``
1335 ``logoimg``
1336 File name of the logo image that some templates display on each page.
1336 File name of the logo image that some templates display on each page.
1337 The file name is relative to ``staticurl``. That is, the full path to
1337 The file name is relative to ``staticurl``. That is, the full path to
1338 the logo image is "staticurl/logoimg".
1338 the logo image is "staticurl/logoimg".
1339 If unset, ``hglogo.png`` will be used.
1339 If unset, ``hglogo.png`` will be used.
1340
1340
1341 ``logourl``
1341 ``logourl``
1342 Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
1342 Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
1343 will be used.
1343 will be used.
1344
1344
1345 ``name``
1345 ``name``
1346 Repository name to use in the web interface. Default is current
1346 Repository name to use in the web interface. Default is current
1347 working directory.
1347 working directory.
1348
1348
1349 ``maxchanges``
1349 ``maxchanges``
1350 Maximum number of changes to list on the changelog. Default is 10.
1350 Maximum number of changes to list on the changelog. Default is 10.
1351
1351
1352 ``maxfiles``
1352 ``maxfiles``
1353 Maximum number of files to list per changeset. Default is 10.
1353 Maximum number of files to list per changeset. Default is 10.
1354
1354
1355 ``port``
1355 ``port``
1356 Port to listen on. Default is 8000.
1356 Port to listen on. Default is 8000.
1357
1357
1358 ``prefix``
1358 ``prefix``
1359 Prefix path to serve from. Default is '' (server root).
1359 Prefix path to serve from. Default is '' (server root).
1360
1360
1361 ``push_ssl``
1361 ``push_ssl``
1362 Whether to require that inbound pushes be transported over SSL to
1362 Whether to require that inbound pushes be transported over SSL to
1363 prevent password sniffing. Default is True.
1363 prevent password sniffing. Default is True.
1364
1364
1365 ``staticurl``
1365 ``staticurl``
1366 Base URL to use for static files. If unset, static files (e.g. the
1366 Base URL to use for static files. If unset, static files (e.g. the
1367 hgicon.png favicon) will be served by the CGI script itself. Use
1367 hgicon.png favicon) will be served by the CGI script itself. Use
1368 this setting to serve them directly with the HTTP server.
1368 this setting to serve them directly with the HTTP server.
1369 Example: ``http://hgserver/static/``.
1369 Example: ``http://hgserver/static/``.
1370
1370
1371 ``stripes``
1371 ``stripes``
1372 How many lines a "zebra stripe" should span in multiline output.
1372 How many lines a "zebra stripe" should span in multiline output.
1373 Default is 1; set to 0 to disable.
1373 Default is 1; set to 0 to disable.
1374
1374
1375 ``style``
1375 ``style``
1376 Which template map style to use.
1376 Which template map style to use.
1377
1377
1378 ``templates``
1378 ``templates``
1379 Where to find the HTML templates. Default is install path.
1379 Where to find the HTML templates. Default is install path.
General Comments 0
You need to be logged in to leave comments. Login now