##// END OF EJS Templates
help: add missing phase config items to config topic
Matt Mackall -
r15999:76625324 stable
parent child Browse files
Show More
@@ -1,1336 +1,1351 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``
492 ``hostfingerprints``
493 """"""""""""""""""""
493 """"""""""""""""""""
494
494
495 Fingerprints of the certificates of known HTTPS servers.
495 Fingerprints of the certificates of known HTTPS servers.
496 A HTTPS connection to a server with a fingerprint configured here will
496 A HTTPS connection to a server with a fingerprint configured here will
497 only succeed if the servers certificate matches the fingerprint.
497 only succeed if the servers certificate matches the fingerprint.
498 This is very similar to how ssh known hosts works.
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.
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.
500 The CA chain and web.cacerts is not used for servers with a fingerprint.
501
501
502 For example::
502 For example::
503
503
504 [hostfingerprints]
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
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
506
507 This feature is only supported when using Python 2.6 or later.
507 This feature is only supported when using Python 2.6 or later.
508
508
509
509
510 ``format``
510 ``format``
511 """"""""""
511 """"""""""
512
512
513 ``usestore``
513 ``usestore``
514 Enable or disable the "store" repository format which improves
514 Enable or disable the "store" repository format which improves
515 compatibility with systems that fold case or otherwise mangle
515 compatibility with systems that fold case or otherwise mangle
516 filenames. Enabled by default. Disabling this option will allow
516 filenames. Enabled by default. Disabling this option will allow
517 you to store longer filenames in some situations at the expense of
517 you to store longer filenames in some situations at the expense of
518 compatibility and ensures that the on-disk format of newly created
518 compatibility and ensures that the on-disk format of newly created
519 repositories will be compatible with Mercurial before version 0.9.4.
519 repositories will be compatible with Mercurial before version 0.9.4.
520
520
521 ``usefncache``
521 ``usefncache``
522 Enable or disable the "fncache" repository format which enhances
522 Enable or disable the "fncache" repository format which enhances
523 the "store" repository format (which has to be enabled to use
523 the "store" repository format (which has to be enabled to use
524 fncache) to allow longer filenames and avoids using Windows
524 fncache) to allow longer filenames and avoids using Windows
525 reserved names, e.g. "nul". Enabled by default. Disabling this
525 reserved names, e.g. "nul". Enabled by default. Disabling this
526 option ensures that the on-disk format of newly created
526 option ensures that the on-disk format of newly created
527 repositories will be compatible with Mercurial before version 1.1.
527 repositories will be compatible with Mercurial before version 1.1.
528
528
529 ``dotencode``
529 ``dotencode``
530 Enable or disable the "dotencode" repository format which enhances
530 Enable or disable the "dotencode" repository format which enhances
531 the "fncache" repository format (which has to be enabled to use
531 the "fncache" repository format (which has to be enabled to use
532 dotencode) to avoid issues with filenames starting with ._ on
532 dotencode) to avoid issues with filenames starting with ._ on
533 Mac OS X and spaces on Windows. Enabled by default. Disabling this
533 Mac OS X and spaces on Windows. Enabled by default. Disabling this
534 option ensures that the on-disk format of newly created
534 option ensures that the on-disk format of newly created
535 repositories will be compatible with Mercurial before version 1.7.
535 repositories will be compatible with Mercurial before version 1.7.
536
536
537 ``merge-patterns``
537 ``merge-patterns``
538 """"""""""""""""""
538 """"""""""""""""""
539
539
540 This section specifies merge tools to associate with particular file
540 This section specifies merge tools to associate with particular file
541 patterns. Tools matched here will take precedence over the default
541 patterns. Tools matched here will take precedence over the default
542 merge tool. Patterns are globs by default, rooted at the repository
542 merge tool. Patterns are globs by default, rooted at the repository
543 root.
543 root.
544
544
545 Example::
545 Example::
546
546
547 [merge-patterns]
547 [merge-patterns]
548 **.c = kdiff3
548 **.c = kdiff3
549 **.jpg = myimgmerge
549 **.jpg = myimgmerge
550
550
551 ``merge-tools``
551 ``merge-tools``
552 """""""""""""""
552 """""""""""""""
553
553
554 This section configures external merge tools to use for file-level
554 This section configures external merge tools to use for file-level
555 merges.
555 merges.
556
556
557 Example ``~/.hgrc``::
557 Example ``~/.hgrc``::
558
558
559 [merge-tools]
559 [merge-tools]
560 # Override stock tool location
560 # Override stock tool location
561 kdiff3.executable = ~/bin/kdiff3
561 kdiff3.executable = ~/bin/kdiff3
562 # Specify command line
562 # Specify command line
563 kdiff3.args = $base $local $other -o $output
563 kdiff3.args = $base $local $other -o $output
564 # Give higher priority
564 # Give higher priority
565 kdiff3.priority = 1
565 kdiff3.priority = 1
566
566
567 # Define new tool
567 # Define new tool
568 myHtmlTool.args = -m $local $other $base $output
568 myHtmlTool.args = -m $local $other $base $output
569 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
569 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
570 myHtmlTool.priority = 1
570 myHtmlTool.priority = 1
571
571
572 Supported arguments:
572 Supported arguments:
573
573
574 ``priority``
574 ``priority``
575 The priority in which to evaluate this tool.
575 The priority in which to evaluate this tool.
576 Default: 0.
576 Default: 0.
577
577
578 ``executable``
578 ``executable``
579 Either just the name of the executable or its pathname. On Windows,
579 Either just the name of the executable or its pathname. On Windows,
580 the path can use environment variables with ${ProgramFiles} syntax.
580 the path can use environment variables with ${ProgramFiles} syntax.
581 Default: the tool name.
581 Default: the tool name.
582
582
583 ``args``
583 ``args``
584 The arguments to pass to the tool executable. You can refer to the
584 The arguments to pass to the tool executable. You can refer to the
585 files being merged as well as the output file through these
585 files being merged as well as the output file through these
586 variables: ``$base``, ``$local``, ``$other``, ``$output``.
586 variables: ``$base``, ``$local``, ``$other``, ``$output``.
587 Default: ``$local $base $other``
587 Default: ``$local $base $other``
588
588
589 ``premerge``
589 ``premerge``
590 Attempt to run internal non-interactive 3-way merge tool before
590 Attempt to run internal non-interactive 3-way merge tool before
591 launching external tool. Options are ``true``, ``false``, or ``keep``
591 launching external tool. Options are ``true``, ``false``, or ``keep``
592 to leave markers in the file if the premerge fails.
592 to leave markers in the file if the premerge fails.
593 Default: True
593 Default: True
594
594
595 ``binary``
595 ``binary``
596 This tool can merge binary files. Defaults to False, unless tool
596 This tool can merge binary files. Defaults to False, unless tool
597 was selected by file pattern match.
597 was selected by file pattern match.
598
598
599 ``symlink``
599 ``symlink``
600 This tool can merge symlinks. Defaults to False, even if tool was
600 This tool can merge symlinks. Defaults to False, even if tool was
601 selected by file pattern match.
601 selected by file pattern match.
602
602
603 ``check``
603 ``check``
604 A list of merge success-checking options:
604 A list of merge success-checking options:
605
605
606 ``changed``
606 ``changed``
607 Ask whether merge was successful when the merged file shows no changes.
607 Ask whether merge was successful when the merged file shows no changes.
608 ``conflicts``
608 ``conflicts``
609 Check whether there are conflicts even though the tool reported success.
609 Check whether there are conflicts even though the tool reported success.
610 ``prompt``
610 ``prompt``
611 Always prompt for merge success, regardless of success reported by tool.
611 Always prompt for merge success, regardless of success reported by tool.
612
612
613 ``checkchanged``
613 ``checkchanged``
614 True is equivalent to ``check = changed``.
614 True is equivalent to ``check = changed``.
615 Default: False
615 Default: False
616
616
617 ``checkconflicts``
617 ``checkconflicts``
618 True is equivalent to ``check = conflicts``.
618 True is equivalent to ``check = conflicts``.
619 Default: False
619 Default: False
620
620
621 ``fixeol``
621 ``fixeol``
622 Attempt to fix up EOL changes caused by the merge tool.
622 Attempt to fix up EOL changes caused by the merge tool.
623 Default: False
623 Default: False
624
624
625 ``gui``
625 ``gui``
626 This tool requires a graphical interface to run. Default: False
626 This tool requires a graphical interface to run. Default: False
627
627
628 ``regkey``
628 ``regkey``
629 Windows registry key which describes install location of this
629 Windows registry key which describes install location of this
630 tool. Mercurial will search for this key first under
630 tool. Mercurial will search for this key first under
631 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
631 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
632 Default: None
632 Default: None
633
633
634 ``regkeyalt``
634 ``regkeyalt``
635 An alternate Windows registry key to try if the first key is not
635 An alternate Windows registry key to try if the first key is not
636 found. The alternate key uses the same ``regname`` and ``regappend``
636 found. The alternate key uses the same ``regname`` and ``regappend``
637 semantics of the primary key. The most common use for this key
637 semantics of the primary key. The most common use for this key
638 is to search for 32bit applications on 64bit operating systems.
638 is to search for 32bit applications on 64bit operating systems.
639 Default: None
639 Default: None
640
640
641 ``regname``
641 ``regname``
642 Name of value to read from specified registry key. Defaults to the
642 Name of value to read from specified registry key. Defaults to the
643 unnamed (default) value.
643 unnamed (default) value.
644
644
645 ``regappend``
645 ``regappend``
646 String to append to the value read from the registry, typically
646 String to append to the value read from the registry, typically
647 the executable name of the tool.
647 the executable name of the tool.
648 Default: None
648 Default: None
649
649
650
650
651 ``hooks``
651 ``hooks``
652 """""""""
652 """""""""
653
653
654 Commands or Python functions that get automatically executed by
654 Commands or Python functions that get automatically executed by
655 various actions such as starting or finishing a commit. Multiple
655 various actions such as starting or finishing a commit. Multiple
656 hooks can be run for the same action by appending a suffix to the
656 hooks can be run for the same action by appending a suffix to the
657 action. Overriding a site-wide hook can be done by changing its
657 action. Overriding a site-wide hook can be done by changing its
658 value or setting it to an empty string. Hooks can be prioritized
658 value or setting it to an empty string. Hooks can be prioritized
659 by adding a prefix of ``priority`` to the hook name on a new line
659 by adding a prefix of ``priority`` to the hook name on a new line
660 and setting the priority. The default priority is 0 if
660 and setting the priority. The default priority is 0 if
661 not specified.
661 not specified.
662
662
663 Example ``.hg/hgrc``::
663 Example ``.hg/hgrc``::
664
664
665 [hooks]
665 [hooks]
666 # update working directory after adding changesets
666 # update working directory after adding changesets
667 changegroup.update = hg update
667 changegroup.update = hg update
668 # do not use the site-wide hook
668 # do not use the site-wide hook
669 incoming =
669 incoming =
670 incoming.email = /my/email/hook
670 incoming.email = /my/email/hook
671 incoming.autobuild = /my/build/hook
671 incoming.autobuild = /my/build/hook
672 # force autobuild hook to run before other incoming hooks
672 # force autobuild hook to run before other incoming hooks
673 priority.incoming.autobuild = 1
673 priority.incoming.autobuild = 1
674
674
675 Most hooks are run with environment variables set that give useful
675 Most hooks are run with environment variables set that give useful
676 additional information. For each hook below, the environment
676 additional information. For each hook below, the environment
677 variables it is passed are listed with names of the form ``$HG_foo``.
677 variables it is passed are listed with names of the form ``$HG_foo``.
678
678
679 ``changegroup``
679 ``changegroup``
680 Run after a changegroup has been added via push, pull or unbundle.
680 Run after a changegroup has been added via push, pull or unbundle.
681 ID of the first new changeset is in ``$HG_NODE``. URL from which
681 ID of the first new changeset is in ``$HG_NODE``. URL from which
682 changes came is in ``$HG_URL``.
682 changes came is in ``$HG_URL``.
683
683
684 ``commit``
684 ``commit``
685 Run after a changeset has been created in the local repository. ID
685 Run after a changeset has been created in the local repository. ID
686 of the newly created changeset is in ``$HG_NODE``. Parent changeset
686 of the newly created changeset is in ``$HG_NODE``. Parent changeset
687 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
687 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
688
688
689 ``incoming``
689 ``incoming``
690 Run after a changeset has been pulled, pushed, or unbundled into
690 Run after a changeset has been pulled, pushed, or unbundled into
691 the local repository. The ID of the newly arrived changeset is in
691 the local repository. The ID of the newly arrived changeset is in
692 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
692 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
693
693
694 ``outgoing``
694 ``outgoing``
695 Run after sending changes from local repository to another. ID of
695 Run after sending changes from local repository to another. ID of
696 first changeset sent is in ``$HG_NODE``. Source of operation is in
696 first changeset sent is in ``$HG_NODE``. Source of operation is in
697 ``$HG_SOURCE``; see "preoutgoing" hook for description.
697 ``$HG_SOURCE``; see "preoutgoing" hook for description.
698
698
699 ``post-<command>``
699 ``post-<command>``
700 Run after successful invocations of the associated command. The
700 Run after successful invocations of the associated command. The
701 contents of the command line are passed as ``$HG_ARGS`` and the result
701 contents of the command line are passed as ``$HG_ARGS`` and the result
702 code in ``$HG_RESULT``. Parsed command line arguments are passed as
702 code in ``$HG_RESULT``. Parsed command line arguments are passed as
703 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
703 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
704 the python data internally passed to <command>. ``$HG_OPTS`` is a
704 the python data internally passed to <command>. ``$HG_OPTS`` is a
705 dictionary of options (with unspecified options set to their defaults).
705 dictionary of options (with unspecified options set to their defaults).
706 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
706 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
707
707
708 ``pre-<command>``
708 ``pre-<command>``
709 Run before executing the associated command. The contents of the
709 Run before executing the associated command. The contents of the
710 command line are passed as ``$HG_ARGS``. Parsed command line arguments
710 command line are passed as ``$HG_ARGS``. Parsed command line arguments
711 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
711 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
712 representations of the data internally passed to <command>. ``$HG_OPTS``
712 representations of the data internally passed to <command>. ``$HG_OPTS``
713 is a dictionary of options (with unspecified options set to their
713 is a dictionary of options (with unspecified options set to their
714 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
714 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
715 failure, the command doesn't execute and Mercurial returns the failure
715 failure, the command doesn't execute and Mercurial returns the failure
716 code.
716 code.
717
717
718 ``prechangegroup``
718 ``prechangegroup``
719 Run before a changegroup is added via push, pull or unbundle. Exit
719 Run before a changegroup is added via push, pull or unbundle. Exit
720 status 0 allows the changegroup to proceed. Non-zero status will
720 status 0 allows the changegroup to proceed. Non-zero status will
721 cause the push, pull or unbundle to fail. URL from which changes
721 cause the push, pull or unbundle to fail. URL from which changes
722 will come is in ``$HG_URL``.
722 will come is in ``$HG_URL``.
723
723
724 ``precommit``
724 ``precommit``
725 Run before starting a local commit. Exit status 0 allows the
725 Run before starting a local commit. Exit status 0 allows the
726 commit to proceed. Non-zero status will cause the commit to fail.
726 commit to proceed. Non-zero status will cause the commit to fail.
727 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
727 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
728
728
729 ``prelistkeys``
729 ``prelistkeys``
730 Run before listing pushkeys (like bookmarks) in the
730 Run before listing pushkeys (like bookmarks) in the
731 repository. Non-zero status will cause failure. The key namespace is
731 repository. Non-zero status will cause failure. The key namespace is
732 in ``$HG_NAMESPACE``.
732 in ``$HG_NAMESPACE``.
733
733
734 ``preoutgoing``
734 ``preoutgoing``
735 Run before collecting changes to send from the local repository to
735 Run before collecting changes to send from the local repository to
736 another. Non-zero status will cause failure. This lets you prevent
736 another. Non-zero status will cause failure. This lets you prevent
737 pull over HTTP or SSH. Also prevents against local pull, push
737 pull over HTTP or SSH. Also prevents against local pull, push
738 (outbound) or bundle commands, but not effective, since you can
738 (outbound) or bundle commands, but not effective, since you can
739 just copy files instead then. Source of operation is in
739 just copy files instead then. Source of operation is in
740 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
740 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
741 SSH or HTTP repository. If "push", "pull" or "bundle", operation
741 SSH or HTTP repository. If "push", "pull" or "bundle", operation
742 is happening on behalf of repository on same system.
742 is happening on behalf of repository on same system.
743
743
744 ``prepushkey``
744 ``prepushkey``
745 Run before a pushkey (like a bookmark) is added to the
745 Run before a pushkey (like a bookmark) is added to the
746 repository. Non-zero status will cause the key to be rejected. The
746 repository. Non-zero status will cause the key to be rejected. The
747 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
747 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
748 the old value (if any) is in ``$HG_OLD``, and the new value is in
748 the old value (if any) is in ``$HG_OLD``, and the new value is in
749 ``$HG_NEW``.
749 ``$HG_NEW``.
750
750
751 ``pretag``
751 ``pretag``
752 Run before creating a tag. Exit status 0 allows the tag to be
752 Run before creating a tag. Exit status 0 allows the tag to be
753 created. Non-zero status will cause the tag to fail. ID of
753 created. Non-zero status will cause the tag to fail. ID of
754 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
754 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
755 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
755 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
756
756
757 ``pretxnchangegroup``
757 ``pretxnchangegroup``
758 Run after a changegroup has been added via push, pull or unbundle,
758 Run after a changegroup has been added via push, pull or unbundle,
759 but before the transaction has been committed. Changegroup is
759 but before the transaction has been committed. Changegroup is
760 visible to hook program. This lets you validate incoming changes
760 visible to hook program. This lets you validate incoming changes
761 before accepting them. Passed the ID of the first new changeset in
761 before accepting them. Passed the ID of the first new changeset in
762 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
762 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
763 status will cause the transaction to be rolled back and the push,
763 status will cause the transaction to be rolled back and the push,
764 pull or unbundle will fail. URL that was source of changes is in
764 pull or unbundle will fail. URL that was source of changes is in
765 ``$HG_URL``.
765 ``$HG_URL``.
766
766
767 ``pretxncommit``
767 ``pretxncommit``
768 Run after a changeset has been created but the transaction not yet
768 Run after a changeset has been created but the transaction not yet
769 committed. Changeset is visible to hook program. This lets you
769 committed. Changeset is visible to hook program. This lets you
770 validate commit message and changes. Exit status 0 allows the
770 validate commit message and changes. Exit status 0 allows the
771 commit to proceed. Non-zero status will cause the transaction to
771 commit to proceed. Non-zero status will cause the transaction to
772 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
772 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
773 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
773 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
774
774
775 ``preupdate``
775 ``preupdate``
776 Run before updating the working directory. Exit status 0 allows
776 Run before updating the working directory. Exit status 0 allows
777 the update to proceed. Non-zero status will prevent the update.
777 the update to proceed. Non-zero status will prevent the update.
778 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
778 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
779 of second new parent is in ``$HG_PARENT2``.
779 of second new parent is in ``$HG_PARENT2``.
780
780
781 ``listkeys``
781 ``listkeys``
782 Run after listing pushkeys (like bookmarks) in the repository. The
782 Run after listing pushkeys (like bookmarks) in the repository. The
783 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
783 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
784 dictionary containing the keys and values.
784 dictionary containing the keys and values.
785
785
786 ``pushkey``
786 ``pushkey``
787 Run after a pushkey (like a bookmark) is added to the
787 Run after a pushkey (like a bookmark) is added to the
788 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
788 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
789 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
789 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
790 value is in ``$HG_NEW``.
790 value is in ``$HG_NEW``.
791
791
792 ``tag``
792 ``tag``
793 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
793 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
794 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
794 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
795 repository if ``$HG_LOCAL=0``.
795 repository if ``$HG_LOCAL=0``.
796
796
797 ``update``
797 ``update``
798 Run after updating the working directory. Changeset ID of first
798 Run after updating the working directory. Changeset ID of first
799 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
799 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
800 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
800 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
801 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
801 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
802
802
803 .. note:: It is generally better to use standard hooks rather than the
803 .. note:: It is generally better to use standard hooks rather than the
804 generic pre- and post- command hooks as they are guaranteed to be
804 generic pre- and post- command hooks as they are guaranteed to be
805 called in the appropriate contexts for influencing transactions.
805 called in the appropriate contexts for influencing transactions.
806 Also, hooks like "commit" will be called in all contexts that
806 Also, hooks like "commit" will be called in all contexts that
807 generate a commit (e.g. tag) and not just the commit command.
807 generate a commit (e.g. tag) and not just the commit command.
808
808
809 .. note:: Environment variables with empty values may not be passed to
809 .. note:: Environment variables with empty values may not be passed to
810 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
810 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
811 will have an empty value under Unix-like platforms for non-merge
811 will have an empty value under Unix-like platforms for non-merge
812 changesets, while it will not be available at all under Windows.
812 changesets, while it will not be available at all under Windows.
813
813
814 The syntax for Python hooks is as follows::
814 The syntax for Python hooks is as follows::
815
815
816 hookname = python:modulename.submodule.callable
816 hookname = python:modulename.submodule.callable
817 hookname = python:/path/to/python/module.py:callable
817 hookname = python:/path/to/python/module.py:callable
818
818
819 Python hooks are run within the Mercurial process. Each hook is
819 Python hooks are run within the Mercurial process. Each hook is
820 called with at least three keyword arguments: a ui object (keyword
820 called with at least three keyword arguments: a ui object (keyword
821 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
821 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
822 keyword that tells what kind of hook is used. Arguments listed as
822 keyword that tells what kind of hook is used. Arguments listed as
823 environment variables above are passed as keyword arguments, with no
823 environment variables above are passed as keyword arguments, with no
824 ``HG_`` prefix, and names in lower case.
824 ``HG_`` prefix, and names in lower case.
825
825
826 If a Python hook returns a "true" value or raises an exception, this
826 If a Python hook returns a "true" value or raises an exception, this
827 is treated as a failure.
827 is treated as a failure.
828
828
829
829
830 ``http_proxy``
830 ``http_proxy``
831 """"""""""""""
831 """"""""""""""
832
832
833 Used to access web-based Mercurial repositories through a HTTP
833 Used to access web-based Mercurial repositories through a HTTP
834 proxy.
834 proxy.
835
835
836 ``host``
836 ``host``
837 Host name and (optional) port of the proxy server, for example
837 Host name and (optional) port of the proxy server, for example
838 "myproxy:8000".
838 "myproxy:8000".
839
839
840 ``no``
840 ``no``
841 Optional. Comma-separated list of host names that should bypass
841 Optional. Comma-separated list of host names that should bypass
842 the proxy.
842 the proxy.
843
843
844 ``passwd``
844 ``passwd``
845 Optional. Password to authenticate with at the proxy server.
845 Optional. Password to authenticate with at the proxy server.
846
846
847 ``user``
847 ``user``
848 Optional. User name to authenticate with at the proxy server.
848 Optional. User name to authenticate with at the proxy server.
849
849
850 ``always``
850 ``always``
851 Optional. Always use the proxy, even for localhost and any entries
851 Optional. Always use the proxy, even for localhost and any entries
852 in ``http_proxy.no``. True or False. Default: False.
852 in ``http_proxy.no``. True or False. Default: False.
853
853
854 ``smtp``
854 ``smtp``
855 """"""""
855 """"""""
856
856
857 Configuration for extensions that need to send email messages.
857 Configuration for extensions that need to send email messages.
858
858
859 ``host``
859 ``host``
860 Host name of mail server, e.g. "mail.example.com".
860 Host name of mail server, e.g. "mail.example.com".
861
861
862 ``port``
862 ``port``
863 Optional. Port to connect to on mail server. Default: 25.
863 Optional. Port to connect to on mail server. Default: 25.
864
864
865 ``tls``
865 ``tls``
866 Optional. Method to enable TLS when connecting to mail server: starttls,
866 Optional. Method to enable TLS when connecting to mail server: starttls,
867 smtps or none. Default: none.
867 smtps or none. Default: none.
868
868
869 ``username``
869 ``username``
870 Optional. User name for authenticating with the SMTP server.
870 Optional. User name for authenticating with the SMTP server.
871 Default: none.
871 Default: none.
872
872
873 ``password``
873 ``password``
874 Optional. Password for authenticating with the SMTP server. If not
874 Optional. Password for authenticating with the SMTP server. If not
875 specified, interactive sessions will prompt the user for a
875 specified, interactive sessions will prompt the user for a
876 password; non-interactive sessions will fail. Default: none.
876 password; non-interactive sessions will fail. Default: none.
877
877
878 ``local_hostname``
878 ``local_hostname``
879 Optional. It's the hostname that the sender can use to identify
879 Optional. It's the hostname that the sender can use to identify
880 itself to the MTA.
880 itself to the MTA.
881
881
882
882
883 ``patch``
883 ``patch``
884 """""""""
884 """""""""
885
885
886 Settings used when applying patches, for instance through the 'import'
886 Settings used when applying patches, for instance through the 'import'
887 command or with Mercurial Queues extension.
887 command or with Mercurial Queues extension.
888
888
889 ``eol``
889 ``eol``
890 When set to 'strict' patch content and patched files end of lines
890 When set to 'strict' patch content and patched files end of lines
891 are preserved. When set to ``lf`` or ``crlf``, both files end of
891 are preserved. When set to ``lf`` or ``crlf``, both files end of
892 lines are ignored when patching and the result line endings are
892 lines are ignored when patching and the result line endings are
893 normalized to either LF (Unix) or CRLF (Windows). When set to
893 normalized to either LF (Unix) or CRLF (Windows). When set to
894 ``auto``, end of lines are again ignored while patching but line
894 ``auto``, end of lines are again ignored while patching but line
895 endings in patched files are normalized to their original setting
895 endings in patched files are normalized to their original setting
896 on a per-file basis. If target file does not exist or has no end
896 on a per-file basis. If target file does not exist or has no end
897 of line, patch line endings are preserved.
897 of line, patch line endings are preserved.
898 Default: strict.
898 Default: strict.
899
899
900
900
901 ``paths``
901 ``paths``
902 """""""""
902 """""""""
903
903
904 Assigns symbolic names to repositories. The left side is the
904 Assigns symbolic names to repositories. The left side is the
905 symbolic name, and the right gives the directory or URL that is the
905 symbolic name, and the right gives the directory or URL that is the
906 location of the repository. Default paths can be declared by setting
906 location of the repository. Default paths can be declared by setting
907 the following entries.
907 the following entries.
908
908
909 ``default``
909 ``default``
910 Directory or URL to use when pulling if no source is specified.
910 Directory or URL to use when pulling if no source is specified.
911 Default is set to repository from which the current repository was
911 Default is set to repository from which the current repository was
912 cloned.
912 cloned.
913
913
914 ``default-push``
914 ``default-push``
915 Optional. Directory or URL to use when pushing if no destination
915 Optional. Directory or URL to use when pushing if no destination
916 is specified.
916 is specified.
917
917
918 ``phases``
919 """"""""""
920
921 Specifies default handling of phases. See :hg:'help phases' for more
922 information about working with phases.
923
924 ``publish``
925 Controls draft phase behavior when working as a server. When true,
926 pushed changesets are set to public in both client and server and
927 pulled or cloned changesets are set to public in the client.
928 Default: True
929
930 ``new-commit``
931 Phase of newly-created commits.
932 Default: draft
918
933
919 ``profiling``
934 ``profiling``
920 """""""""""""
935 """""""""""""
921
936
922 Specifies profiling format and file output. In this section
937 Specifies profiling format and file output. In this section
923 description, 'profiling data' stands for the raw data collected
938 description, 'profiling data' stands for the raw data collected
924 during profiling, while 'profiling report' stands for a statistical
939 during profiling, while 'profiling report' stands for a statistical
925 text report generated from the profiling data. The profiling is done
940 text report generated from the profiling data. The profiling is done
926 using lsprof.
941 using lsprof.
927
942
928 ``format``
943 ``format``
929 Profiling format.
944 Profiling format.
930 Default: text.
945 Default: text.
931
946
932 ``text``
947 ``text``
933 Generate a profiling report. When saving to a file, it should be
948 Generate a profiling report. When saving to a file, it should be
934 noted that only the report is saved, and the profiling data is
949 noted that only the report is saved, and the profiling data is
935 not kept.
950 not kept.
936 ``kcachegrind``
951 ``kcachegrind``
937 Format profiling data for kcachegrind use: when saving to a
952 Format profiling data for kcachegrind use: when saving to a
938 file, the generated file can directly be loaded into
953 file, the generated file can directly be loaded into
939 kcachegrind.
954 kcachegrind.
940
955
941 ``output``
956 ``output``
942 File path where profiling data or report should be saved. If the
957 File path where profiling data or report should be saved. If the
943 file exists, it is replaced. Default: None, data is printed on
958 file exists, it is replaced. Default: None, data is printed on
944 stderr
959 stderr
945
960
946 ``revsetalias``
961 ``revsetalias``
947 """""""""""""""
962 """""""""""""""
948
963
949 Alias definitions for revsets. See :hg:`help revsets` for details.
964 Alias definitions for revsets. See :hg:`help revsets` for details.
950
965
951 ``server``
966 ``server``
952 """"""""""
967 """"""""""
953
968
954 Controls generic server settings.
969 Controls generic server settings.
955
970
956 ``uncompressed``
971 ``uncompressed``
957 Whether to allow clients to clone a repository using the
972 Whether to allow clients to clone a repository using the
958 uncompressed streaming protocol. This transfers about 40% more
973 uncompressed streaming protocol. This transfers about 40% more
959 data than a regular clone, but uses less memory and CPU on both
974 data than a regular clone, but uses less memory and CPU on both
960 server and client. Over a LAN (100 Mbps or better) or a very fast
975 server and client. Over a LAN (100 Mbps or better) or a very fast
961 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
976 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
962 regular clone. Over most WAN connections (anything slower than
977 regular clone. Over most WAN connections (anything slower than
963 about 6 Mbps), uncompressed streaming is slower, because of the
978 about 6 Mbps), uncompressed streaming is slower, because of the
964 extra data transfer overhead. This mode will also temporarily hold
979 extra data transfer overhead. This mode will also temporarily hold
965 the write lock while determining what data to transfer.
980 the write lock while determining what data to transfer.
966 Default is True.
981 Default is True.
967
982
968 ``validate``
983 ``validate``
969 Whether to validate the completeness of pushed changesets by
984 Whether to validate the completeness of pushed changesets by
970 checking that all new file revisions specified in manifests are
985 checking that all new file revisions specified in manifests are
971 present. Default is False.
986 present. Default is False.
972
987
973 ``subpaths``
988 ``subpaths``
974 """"""""""""
989 """"""""""""
975
990
976 Defines subrepositories source locations rewriting rules of the form::
991 Defines subrepositories source locations rewriting rules of the form::
977
992
978 <pattern> = <replacement>
993 <pattern> = <replacement>
979
994
980 Where ``pattern`` is a regular expression matching the source and
995 Where ``pattern`` is a regular expression matching the source and
981 ``replacement`` is the replacement string used to rewrite it. Groups
996 ``replacement`` is the replacement string used to rewrite it. Groups
982 can be matched in ``pattern`` and referenced in ``replacements``. For
997 can be matched in ``pattern`` and referenced in ``replacements``. For
983 instance::
998 instance::
984
999
985 http://server/(.*)-hg/ = http://hg.server/\1/
1000 http://server/(.*)-hg/ = http://hg.server/\1/
986
1001
987 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1002 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
988
1003
989 All patterns are applied in definition order.
1004 All patterns are applied in definition order.
990
1005
991 ``trusted``
1006 ``trusted``
992 """""""""""
1007 """""""""""
993
1008
994 Mercurial will not use the settings in the
1009 Mercurial will not use the settings in the
995 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1010 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
996 user or to a trusted group, as various hgrc features allow arbitrary
1011 user or to a trusted group, as various hgrc features allow arbitrary
997 commands to be run. This issue is often encountered when configuring
1012 commands to be run. This issue is often encountered when configuring
998 hooks or extensions for shared repositories or servers. However,
1013 hooks or extensions for shared repositories or servers. However,
999 the web interface will use some safe settings from the ``[web]``
1014 the web interface will use some safe settings from the ``[web]``
1000 section.
1015 section.
1001
1016
1002 This section specifies what users and groups are trusted. The
1017 This section specifies what users and groups are trusted. The
1003 current user is always trusted. To trust everybody, list a user or a
1018 current user is always trusted. To trust everybody, list a user or a
1004 group with name ``*``. These settings must be placed in an
1019 group with name ``*``. These settings must be placed in an
1005 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1020 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1006 user or service running Mercurial.
1021 user or service running Mercurial.
1007
1022
1008 ``users``
1023 ``users``
1009 Comma-separated list of trusted users.
1024 Comma-separated list of trusted users.
1010
1025
1011 ``groups``
1026 ``groups``
1012 Comma-separated list of trusted groups.
1027 Comma-separated list of trusted groups.
1013
1028
1014
1029
1015 ``ui``
1030 ``ui``
1016 """"""
1031 """"""
1017
1032
1018 User interface controls.
1033 User interface controls.
1019
1034
1020 ``archivemeta``
1035 ``archivemeta``
1021 Whether to include the .hg_archival.txt file containing meta data
1036 Whether to include the .hg_archival.txt file containing meta data
1022 (hashes for the repository base and for tip) in archives created
1037 (hashes for the repository base and for tip) in archives created
1023 by the :hg:`archive` command or downloaded via hgweb.
1038 by the :hg:`archive` command or downloaded via hgweb.
1024 Default is True.
1039 Default is True.
1025
1040
1026 ``askusername``
1041 ``askusername``
1027 Whether to prompt for a username when committing. If True, and
1042 Whether to prompt for a username when committing. If True, and
1028 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1043 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1029 be prompted to enter a username. If no username is entered, the
1044 be prompted to enter a username. If no username is entered, the
1030 default ``USER@HOST`` is used instead.
1045 default ``USER@HOST`` is used instead.
1031 Default is False.
1046 Default is False.
1032
1047
1033 ``commitsubrepos``
1048 ``commitsubrepos``
1034 Whether to commit modified subrepositories when committing the
1049 Whether to commit modified subrepositories when committing the
1035 parent repository. If False and one subrepository has uncommitted
1050 parent repository. If False and one subrepository has uncommitted
1036 changes, abort the commit.
1051 changes, abort the commit.
1037 Default is False.
1052 Default is False.
1038
1053
1039 ``debug``
1054 ``debug``
1040 Print debugging information. True or False. Default is False.
1055 Print debugging information. True or False. Default is False.
1041
1056
1042 ``editor``
1057 ``editor``
1043 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
1058 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
1044
1059
1045 ``fallbackencoding``
1060 ``fallbackencoding``
1046 Encoding to try if it's not possible to decode the changelog using
1061 Encoding to try if it's not possible to decode the changelog using
1047 UTF-8. Default is ISO-8859-1.
1062 UTF-8. Default is ISO-8859-1.
1048
1063
1049 ``ignore``
1064 ``ignore``
1050 A file to read per-user ignore patterns from. This file should be
1065 A file to read per-user ignore patterns from. This file should be
1051 in the same format as a repository-wide .hgignore file. This
1066 in the same format as a repository-wide .hgignore file. This
1052 option supports hook syntax, so if you want to specify multiple
1067 option supports hook syntax, so if you want to specify multiple
1053 ignore files, you can do so by setting something like
1068 ignore files, you can do so by setting something like
1054 ``ignore.other = ~/.hgignore2``. For details of the ignore file
1069 ``ignore.other = ~/.hgignore2``. For details of the ignore file
1055 format, see the ``hgignore(5)`` man page.
1070 format, see the ``hgignore(5)`` man page.
1056
1071
1057 ``interactive``
1072 ``interactive``
1058 Allow to prompt the user. True or False. Default is True.
1073 Allow to prompt the user. True or False. Default is True.
1059
1074
1060 ``logtemplate``
1075 ``logtemplate``
1061 Template string for commands that print changesets.
1076 Template string for commands that print changesets.
1062
1077
1063 ``merge``
1078 ``merge``
1064 The conflict resolution program to use during a manual merge.
1079 The conflict resolution program to use during a manual merge.
1065 For more information on merge tools see :hg:`help merge-tools`.
1080 For more information on merge tools see :hg:`help merge-tools`.
1066 For configuring merge tools see the ``[merge-tools]`` section.
1081 For configuring merge tools see the ``[merge-tools]`` section.
1067
1082
1068 ``portablefilenames``
1083 ``portablefilenames``
1069 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1084 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1070 Default is ``warn``.
1085 Default is ``warn``.
1071 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1086 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1072 platforms, if a file with a non-portable filename is added (e.g. a file
1087 platforms, if a file with a non-portable filename is added (e.g. a file
1073 with a name that can't be created on Windows because it contains reserved
1088 with a name that can't be created on Windows because it contains reserved
1074 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1089 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1075 collision with an existing file).
1090 collision with an existing file).
1076 If set to ``ignore`` (or ``false``), no warning is printed.
1091 If set to ``ignore`` (or ``false``), no warning is printed.
1077 If set to ``abort``, the command is aborted.
1092 If set to ``abort``, the command is aborted.
1078 On Windows, this configuration option is ignored and the command aborted.
1093 On Windows, this configuration option is ignored and the command aborted.
1079
1094
1080 ``quiet``
1095 ``quiet``
1081 Reduce the amount of output printed. True or False. Default is False.
1096 Reduce the amount of output printed. True or False. Default is False.
1082
1097
1083 ``remotecmd``
1098 ``remotecmd``
1084 remote command to use for clone/push/pull operations. Default is ``hg``.
1099 remote command to use for clone/push/pull operations. Default is ``hg``.
1085
1100
1086 ``report_untrusted``
1101 ``report_untrusted``
1087 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1102 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1088 trusted user or group. True or False. Default is True.
1103 trusted user or group. True or False. Default is True.
1089
1104
1090 ``slash``
1105 ``slash``
1091 Display paths using a slash (``/``) as the path separator. This
1106 Display paths using a slash (``/``) as the path separator. This
1092 only makes a difference on systems where the default path
1107 only makes a difference on systems where the default path
1093 separator is not the slash character (e.g. Windows uses the
1108 separator is not the slash character (e.g. Windows uses the
1094 backslash character (``\``)).
1109 backslash character (``\``)).
1095 Default is False.
1110 Default is False.
1096
1111
1097 ``ssh``
1112 ``ssh``
1098 command to use for SSH connections. Default is ``ssh``.
1113 command to use for SSH connections. Default is ``ssh``.
1099
1114
1100 ``strict``
1115 ``strict``
1101 Require exact command names, instead of allowing unambiguous
1116 Require exact command names, instead of allowing unambiguous
1102 abbreviations. True or False. Default is False.
1117 abbreviations. True or False. Default is False.
1103
1118
1104 ``style``
1119 ``style``
1105 Name of style to use for command output.
1120 Name of style to use for command output.
1106
1121
1107 ``timeout``
1122 ``timeout``
1108 The timeout used when a lock is held (in seconds), a negative value
1123 The timeout used when a lock is held (in seconds), a negative value
1109 means no timeout. Default is 600.
1124 means no timeout. Default is 600.
1110
1125
1111 ``traceback``
1126 ``traceback``
1112 Mercurial always prints a traceback when an unknown exception
1127 Mercurial always prints a traceback when an unknown exception
1113 occurs. Setting this to True will make Mercurial print a traceback
1128 occurs. Setting this to True will make Mercurial print a traceback
1114 on all exceptions, even those recognized by Mercurial (such as
1129 on all exceptions, even those recognized by Mercurial (such as
1115 IOError or MemoryError). Default is False.
1130 IOError or MemoryError). Default is False.
1116
1131
1117 ``username``
1132 ``username``
1118 The committer of a changeset created when running "commit".
1133 The committer of a changeset created when running "commit".
1119 Typically a person's name and email address, e.g. ``Fred Widget
1134 Typically a person's name and email address, e.g. ``Fred Widget
1120 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
1135 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
1121 the username in hgrc is empty, it has to be specified manually or
1136 the username in hgrc is empty, it has to be specified manually or
1122 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
1137 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
1123 ``username =`` in the system hgrc). Environment variables in the
1138 ``username =`` in the system hgrc). Environment variables in the
1124 username are expanded.
1139 username are expanded.
1125
1140
1126 ``verbose``
1141 ``verbose``
1127 Increase the amount of output printed. True or False. Default is False.
1142 Increase the amount of output printed. True or False. Default is False.
1128
1143
1129
1144
1130 ``web``
1145 ``web``
1131 """""""
1146 """""""
1132
1147
1133 Web interface configuration. The settings in this section apply to
1148 Web interface configuration. The settings in this section apply to
1134 both the builtin webserver (started by :hg:`serve`) and the script you
1149 both the builtin webserver (started by :hg:`serve`) and the script you
1135 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1150 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1136 and WSGI).
1151 and WSGI).
1137
1152
1138 The Mercurial webserver does no authentication (it does not prompt for
1153 The Mercurial webserver does no authentication (it does not prompt for
1139 usernames and passwords to validate *who* users are), but it does do
1154 usernames and passwords to validate *who* users are), but it does do
1140 authorization (it grants or denies access for *authenticated users*
1155 authorization (it grants or denies access for *authenticated users*
1141 based on settings in this section). You must either configure your
1156 based on settings in this section). You must either configure your
1142 webserver to do authentication for you, or disable the authorization
1157 webserver to do authentication for you, or disable the authorization
1143 checks.
1158 checks.
1144
1159
1145 For a quick setup in a trusted environment, e.g., a private LAN, where
1160 For a quick setup in a trusted environment, e.g., a private LAN, where
1146 you want it to accept pushes from anybody, you can use the following
1161 you want it to accept pushes from anybody, you can use the following
1147 command line::
1162 command line::
1148
1163
1149 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1164 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1150
1165
1151 Note that this will allow anybody to push anything to the server and
1166 Note that this will allow anybody to push anything to the server and
1152 that this should not be used for public servers.
1167 that this should not be used for public servers.
1153
1168
1154 The full set of options is:
1169 The full set of options is:
1155
1170
1156 ``accesslog``
1171 ``accesslog``
1157 Where to output the access log. Default is stdout.
1172 Where to output the access log. Default is stdout.
1158
1173
1159 ``address``
1174 ``address``
1160 Interface address to bind to. Default is all.
1175 Interface address to bind to. Default is all.
1161
1176
1162 ``allow_archive``
1177 ``allow_archive``
1163 List of archive format (bz2, gz, zip) allowed for downloading.
1178 List of archive format (bz2, gz, zip) allowed for downloading.
1164 Default is empty.
1179 Default is empty.
1165
1180
1166 ``allowbz2``
1181 ``allowbz2``
1167 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1182 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1168 revisions.
1183 revisions.
1169 Default is False.
1184 Default is False.
1170
1185
1171 ``allowgz``
1186 ``allowgz``
1172 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1187 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1173 revisions.
1188 revisions.
1174 Default is False.
1189 Default is False.
1175
1190
1176 ``allowpull``
1191 ``allowpull``
1177 Whether to allow pulling from the repository. Default is True.
1192 Whether to allow pulling from the repository. Default is True.
1178
1193
1179 ``allow_push``
1194 ``allow_push``
1180 Whether to allow pushing to the repository. If empty or not set,
1195 Whether to allow pushing to the repository. If empty or not set,
1181 push is not allowed. If the special value ``*``, any remote user can
1196 push is not allowed. If the special value ``*``, any remote user can
1182 push, including unauthenticated users. Otherwise, the remote user
1197 push, including unauthenticated users. Otherwise, the remote user
1183 must have been authenticated, and the authenticated user name must
1198 must have been authenticated, and the authenticated user name must
1184 be present in this list. The contents of the allow_push list are
1199 be present in this list. The contents of the allow_push list are
1185 examined after the deny_push list.
1200 examined after the deny_push list.
1186
1201
1187 ``guessmime``
1202 ``guessmime``
1188 Control MIME types for raw download of file content.
1203 Control MIME types for raw download of file content.
1189 Set to True to let hgweb guess the content type from the file
1204 Set to True to let hgweb guess the content type from the file
1190 extension. This will serve HTML files as ``text/html`` and might
1205 extension. This will serve HTML files as ``text/html`` and might
1191 allow cross-site scripting attacks when serving untrusted
1206 allow cross-site scripting attacks when serving untrusted
1192 repositories. Default is False.
1207 repositories. Default is False.
1193
1208
1194 ``allow_read``
1209 ``allow_read``
1195 If the user has not already been denied repository access due to
1210 If the user has not already been denied repository access due to
1196 the contents of deny_read, this list determines whether to grant
1211 the contents of deny_read, this list determines whether to grant
1197 repository access to the user. If this list is not empty, and the
1212 repository access to the user. If this list is not empty, and the
1198 user is unauthenticated or not present in the list, then access is
1213 user is unauthenticated or not present in the list, then access is
1199 denied for the user. If the list is empty or not set, then access
1214 denied for the user. If the list is empty or not set, then access
1200 is permitted to all users by default. Setting allow_read to the
1215 is permitted to all users by default. Setting allow_read to the
1201 special value ``*`` is equivalent to it not being set (i.e. access
1216 special value ``*`` is equivalent to it not being set (i.e. access
1202 is permitted to all users). The contents of the allow_read list are
1217 is permitted to all users). The contents of the allow_read list are
1203 examined after the deny_read list.
1218 examined after the deny_read list.
1204
1219
1205 ``allowzip``
1220 ``allowzip``
1206 (DEPRECATED) Whether to allow .zip downloading of repository
1221 (DEPRECATED) Whether to allow .zip downloading of repository
1207 revisions. Default is False. This feature creates temporary files.
1222 revisions. Default is False. This feature creates temporary files.
1208
1223
1209 ``baseurl``
1224 ``baseurl``
1210 Base URL to use when publishing URLs in other locations, so
1225 Base URL to use when publishing URLs in other locations, so
1211 third-party tools like email notification hooks can construct
1226 third-party tools like email notification hooks can construct
1212 URLs. Example: ``http://hgserver/repos/``.
1227 URLs. Example: ``http://hgserver/repos/``.
1213
1228
1214 ``cacerts``
1229 ``cacerts``
1215 Path to file containing a list of PEM encoded certificate
1230 Path to file containing a list of PEM encoded certificate
1216 authority certificates. Environment variables and ``~user``
1231 authority certificates. Environment variables and ``~user``
1217 constructs are expanded in the filename. If specified on the
1232 constructs are expanded in the filename. If specified on the
1218 client, then it will verify the identity of remote HTTPS servers
1233 client, then it will verify the identity of remote HTTPS servers
1219 with these certificates. The form must be as follows::
1234 with these certificates. The form must be as follows::
1220
1235
1221 -----BEGIN CERTIFICATE-----
1236 -----BEGIN CERTIFICATE-----
1222 ... (certificate in base64 PEM encoding) ...
1237 ... (certificate in base64 PEM encoding) ...
1223 -----END CERTIFICATE-----
1238 -----END CERTIFICATE-----
1224 -----BEGIN CERTIFICATE-----
1239 -----BEGIN CERTIFICATE-----
1225 ... (certificate in base64 PEM encoding) ...
1240 ... (certificate in base64 PEM encoding) ...
1226 -----END CERTIFICATE-----
1241 -----END CERTIFICATE-----
1227
1242
1228 This feature is only supported when using Python 2.6 or later. If you wish
1243 This feature is only supported when using Python 2.6 or later. If you wish
1229 to use it with earlier versions of Python, install the backported
1244 to use it with earlier versions of Python, install the backported
1230 version of the ssl library that is available from
1245 version of the ssl library that is available from
1231 ``http://pypi.python.org``.
1246 ``http://pypi.python.org``.
1232
1247
1233 You can use OpenSSL's CA certificate file if your platform has one.
1248 You can use OpenSSL's CA certificate file if your platform has one.
1234 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
1249 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
1235 Otherwise you will have to generate this file manually.
1250 Otherwise you will have to generate this file manually.
1236
1251
1237 To disable SSL verification temporarily, specify ``--insecure`` from
1252 To disable SSL verification temporarily, specify ``--insecure`` from
1238 command line.
1253 command line.
1239
1254
1240 ``cache``
1255 ``cache``
1241 Whether to support caching in hgweb. Defaults to True.
1256 Whether to support caching in hgweb. Defaults to True.
1242
1257
1243 ``contact``
1258 ``contact``
1244 Name or email address of the person in charge of the repository.
1259 Name or email address of the person in charge of the repository.
1245 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
1260 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
1246
1261
1247 ``deny_push``
1262 ``deny_push``
1248 Whether to deny pushing to the repository. If empty or not set,
1263 Whether to deny pushing to the repository. If empty or not set,
1249 push is not denied. If the special value ``*``, all remote users are
1264 push is not denied. If the special value ``*``, all remote users are
1250 denied push. Otherwise, unauthenticated users are all denied, and
1265 denied push. Otherwise, unauthenticated users are all denied, and
1251 any authenticated user name present in this list is also denied. The
1266 any authenticated user name present in this list is also denied. The
1252 contents of the deny_push list are examined before the allow_push list.
1267 contents of the deny_push list are examined before the allow_push list.
1253
1268
1254 ``deny_read``
1269 ``deny_read``
1255 Whether to deny reading/viewing of the repository. If this list is
1270 Whether to deny reading/viewing of the repository. If this list is
1256 not empty, unauthenticated users are all denied, and any
1271 not empty, unauthenticated users are all denied, and any
1257 authenticated user name present in this list is also denied access to
1272 authenticated user name present in this list is also denied access to
1258 the repository. If set to the special value ``*``, all remote users
1273 the repository. If set to the special value ``*``, all remote users
1259 are denied access (rarely needed ;). If deny_read is empty or not set,
1274 are denied access (rarely needed ;). If deny_read is empty or not set,
1260 the determination of repository access depends on the presence and
1275 the determination of repository access depends on the presence and
1261 content of the allow_read list (see description). If both
1276 content of the allow_read list (see description). If both
1262 deny_read and allow_read are empty or not set, then access is
1277 deny_read and allow_read are empty or not set, then access is
1263 permitted to all users by default. If the repository is being
1278 permitted to all users by default. If the repository is being
1264 served via hgwebdir, denied users will not be able to see it in
1279 served via hgwebdir, denied users will not be able to see it in
1265 the list of repositories. The contents of the deny_read list have
1280 the list of repositories. The contents of the deny_read list have
1266 priority over (are examined before) the contents of the allow_read
1281 priority over (are examined before) the contents of the allow_read
1267 list.
1282 list.
1268
1283
1269 ``descend``
1284 ``descend``
1270 hgwebdir indexes will not descend into subdirectories. Only repositories
1285 hgwebdir indexes will not descend into subdirectories. Only repositories
1271 directly in the current path will be shown (other repositories are still
1286 directly in the current path will be shown (other repositories are still
1272 available from the index corresponding to their containing path).
1287 available from the index corresponding to their containing path).
1273
1288
1274 ``description``
1289 ``description``
1275 Textual description of the repository's purpose or contents.
1290 Textual description of the repository's purpose or contents.
1276 Default is "unknown".
1291 Default is "unknown".
1277
1292
1278 ``encoding``
1293 ``encoding``
1279 Character encoding name. Default is the current locale charset.
1294 Character encoding name. Default is the current locale charset.
1280 Example: "UTF-8"
1295 Example: "UTF-8"
1281
1296
1282 ``errorlog``
1297 ``errorlog``
1283 Where to output the error log. Default is stderr.
1298 Where to output the error log. Default is stderr.
1284
1299
1285 ``hidden``
1300 ``hidden``
1286 Whether to hide the repository in the hgwebdir index.
1301 Whether to hide the repository in the hgwebdir index.
1287 Default is False.
1302 Default is False.
1288
1303
1289 ``ipv6``
1304 ``ipv6``
1290 Whether to use IPv6. Default is False.
1305 Whether to use IPv6. Default is False.
1291
1306
1292 ``logoimg``
1307 ``logoimg``
1293 File name of the logo image that some templates display on each page.
1308 File name of the logo image that some templates display on each page.
1294 The file name is relative to ``staticurl``. That is, the full path to
1309 The file name is relative to ``staticurl``. That is, the full path to
1295 the logo image is "staticurl/logoimg".
1310 the logo image is "staticurl/logoimg".
1296 If unset, ``hglogo.png`` will be used.
1311 If unset, ``hglogo.png`` will be used.
1297
1312
1298 ``logourl``
1313 ``logourl``
1299 Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
1314 Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
1300 will be used.
1315 will be used.
1301
1316
1302 ``name``
1317 ``name``
1303 Repository name to use in the web interface. Default is current
1318 Repository name to use in the web interface. Default is current
1304 working directory.
1319 working directory.
1305
1320
1306 ``maxchanges``
1321 ``maxchanges``
1307 Maximum number of changes to list on the changelog. Default is 10.
1322 Maximum number of changes to list on the changelog. Default is 10.
1308
1323
1309 ``maxfiles``
1324 ``maxfiles``
1310 Maximum number of files to list per changeset. Default is 10.
1325 Maximum number of files to list per changeset. Default is 10.
1311
1326
1312 ``port``
1327 ``port``
1313 Port to listen on. Default is 8000.
1328 Port to listen on. Default is 8000.
1314
1329
1315 ``prefix``
1330 ``prefix``
1316 Prefix path to serve from. Default is '' (server root).
1331 Prefix path to serve from. Default is '' (server root).
1317
1332
1318 ``push_ssl``
1333 ``push_ssl``
1319 Whether to require that inbound pushes be transported over SSL to
1334 Whether to require that inbound pushes be transported over SSL to
1320 prevent password sniffing. Default is True.
1335 prevent password sniffing. Default is True.
1321
1336
1322 ``staticurl``
1337 ``staticurl``
1323 Base URL to use for static files. If unset, static files (e.g. the
1338 Base URL to use for static files. If unset, static files (e.g. the
1324 hgicon.png favicon) will be served by the CGI script itself. Use
1339 hgicon.png favicon) will be served by the CGI script itself. Use
1325 this setting to serve them directly with the HTTP server.
1340 this setting to serve them directly with the HTTP server.
1326 Example: ``http://hgserver/static/``.
1341 Example: ``http://hgserver/static/``.
1327
1342
1328 ``stripes``
1343 ``stripes``
1329 How many lines a "zebra stripe" should span in multiline output.
1344 How many lines a "zebra stripe" should span in multiline output.
1330 Default is 1; set to 0 to disable.
1345 Default is 1; set to 0 to disable.
1331
1346
1332 ``style``
1347 ``style``
1333 Which template map style to use.
1348 Which template map style to use.
1334
1349
1335 ``templates``
1350 ``templates``
1336 Where to find the HTML templates. Default is install path.
1351 Where to find the HTML templates. Default is install path.
General Comments 0
You need to be logged in to leave comments. Login now