##// END OF EJS Templates
help: clarify that the config hook priority prefix includes a period
timeless -
r27551:822927d4 default
parent child Browse files
Show More
@@ -1,1915 +1,1915
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 Troubleshooting
4 Troubleshooting
5 ===============
5 ===============
6
6
7 If you're having problems with your configuration,
7 If you're having problems with your configuration,
8 :hg:`config --debug` can help you understand what is introducing
8 :hg:`config --debug` can help you understand what is introducing
9 a setting into your environment.
9 a setting into your environment.
10
10
11 See :hg:`help config.syntax` and :hg:`help config.files`
11 See :hg:`help config.syntax` and :hg:`help config.files`
12 for information about how and where to override things.
12 for information about how and where to override things.
13
13
14 Format
14 Format
15 ======
15 ======
16
16
17 The configuration files use a simple ini-file format. A configuration
17 The configuration files use a simple ini-file format. A configuration
18 file consists of sections, led by a ``[section]`` header and followed
18 file consists of sections, led by a ``[section]`` header and followed
19 by ``name = value`` entries::
19 by ``name = value`` entries::
20
20
21 [ui]
21 [ui]
22 username = Firstname Lastname <firstname.lastname@example.net>
22 username = Firstname Lastname <firstname.lastname@example.net>
23 verbose = True
23 verbose = True
24
24
25 The above entries will be referred to as ``ui.username`` and
25 The above entries will be referred to as ``ui.username`` and
26 ``ui.verbose``, respectively. See :hg:`help config.syntax`.
26 ``ui.verbose``, respectively. See :hg:`help config.syntax`.
27
27
28 Files
28 Files
29 =====
29 =====
30
30
31 Mercurial reads configuration data from several files, if they exist.
31 Mercurial reads configuration data from several files, if they exist.
32 These files do not exist by default and you will have to create the
32 These files do not exist by default and you will have to create the
33 appropriate configuration files yourself: global configuration like
33 appropriate configuration files yourself: global configuration like
34 the username setting is typically put into
34 the username setting is typically put into
35 ``%USERPROFILE%\mercurial.ini`` or ``$HOME/.hgrc`` and local
35 ``%USERPROFILE%\mercurial.ini`` or ``$HOME/.hgrc`` and local
36 configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
36 configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
37
37
38 The names of these files depend on the system on which Mercurial is
38 The names of these files depend on the system on which Mercurial is
39 installed. ``*.rc`` files from a single directory are read in
39 installed. ``*.rc`` files from a single directory are read in
40 alphabetical order, later ones overriding earlier ones. Where multiple
40 alphabetical order, later ones overriding earlier ones. Where multiple
41 paths are given below, settings from earlier paths override later
41 paths are given below, settings from earlier paths override later
42 ones.
42 ones.
43
43
44 .. container:: verbose.unix
44 .. container:: verbose.unix
45
45
46 On Unix, the following files are consulted:
46 On Unix, the following files are consulted:
47
47
48 - ``<repo>/.hg/hgrc`` (per-repository)
48 - ``<repo>/.hg/hgrc`` (per-repository)
49 - ``$HOME/.hgrc`` (per-user)
49 - ``$HOME/.hgrc`` (per-user)
50 - ``<install-root>/etc/mercurial/hgrc`` (per-installation)
50 - ``<install-root>/etc/mercurial/hgrc`` (per-installation)
51 - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)
51 - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)
52 - ``/etc/mercurial/hgrc`` (per-system)
52 - ``/etc/mercurial/hgrc`` (per-system)
53 - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)
53 - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)
54 - ``<internal>/default.d/*.rc`` (defaults)
54 - ``<internal>/default.d/*.rc`` (defaults)
55
55
56 .. container:: verbose.windows
56 .. container:: verbose.windows
57
57
58 On Windows, the following files are consulted:
58 On Windows, the following files are consulted:
59
59
60 - ``<repo>/.hg/hgrc`` (per-repository)
60 - ``<repo>/.hg/hgrc`` (per-repository)
61 - ``%USERPROFILE%\.hgrc`` (per-user)
61 - ``%USERPROFILE%\.hgrc`` (per-user)
62 - ``%USERPROFILE%\Mercurial.ini`` (per-user)
62 - ``%USERPROFILE%\Mercurial.ini`` (per-user)
63 - ``%HOME%\.hgrc`` (per-user)
63 - ``%HOME%\.hgrc`` (per-user)
64 - ``%HOME%\Mercurial.ini`` (per-user)
64 - ``%HOME%\Mercurial.ini`` (per-user)
65 - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation)
65 - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation)
66 - ``<install-dir>\hgrc.d\*.rc`` (per-installation)
66 - ``<install-dir>\hgrc.d\*.rc`` (per-installation)
67 - ``<install-dir>\Mercurial.ini`` (per-installation)
67 - ``<install-dir>\Mercurial.ini`` (per-installation)
68 - ``<internal>/default.d/*.rc`` (defaults)
68 - ``<internal>/default.d/*.rc`` (defaults)
69
69
70 .. note::
70 .. note::
71
71
72 The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial``
72 The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial``
73 is used when running 32-bit Python on 64-bit Windows.
73 is used when running 32-bit Python on 64-bit Windows.
74
74
75 .. container:: verbose.plan9
75 .. container:: verbose.plan9
76
76
77 On Plan9, the following files are consulted:
77 On Plan9, the following files are consulted:
78
78
79 - ``<repo>/.hg/hgrc`` (per-repository)
79 - ``<repo>/.hg/hgrc`` (per-repository)
80 - ``$home/lib/hgrc`` (per-user)
80 - ``$home/lib/hgrc`` (per-user)
81 - ``<install-root>/lib/mercurial/hgrc`` (per-installation)
81 - ``<install-root>/lib/mercurial/hgrc`` (per-installation)
82 - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)
82 - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)
83 - ``/lib/mercurial/hgrc`` (per-system)
83 - ``/lib/mercurial/hgrc`` (per-system)
84 - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)
84 - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)
85 - ``<internal>/default.d/*.rc`` (defaults)
85 - ``<internal>/default.d/*.rc`` (defaults)
86
86
87 Per-repository configuration options only apply in a
87 Per-repository configuration options only apply in a
88 particular repository. This file is not version-controlled, and
88 particular repository. This file is not version-controlled, and
89 will not get transferred during a "clone" operation. Options in
89 will not get transferred during a "clone" operation. Options in
90 this file override options in all other configuration files. On
90 this file override options in all other configuration files. On
91 Plan 9 and Unix, most of this file will be ignored if it doesn't
91 Plan 9 and Unix, most of this file will be ignored if it doesn't
92 belong to a trusted user or to a trusted group. See
92 belong to a trusted user or to a trusted group. See
93 :hg:`help config.trusted` for more details.
93 :hg:`help config.trusted` for more details.
94
94
95 Per-user configuration file(s) are for the user running Mercurial. On
95 Per-user configuration file(s) are for the user running Mercurial. On
96 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
96 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
97 files apply to all Mercurial commands executed by this user in any
97 files apply to all Mercurial commands executed by this user in any
98 directory. Options in these files override per-system and per-installation
98 directory. Options in these files override per-system and per-installation
99 options.
99 options.
100
100
101 Per-installation configuration files are searched for in the
101 Per-installation configuration files are searched for in the
102 directory where Mercurial is installed. ``<install-root>`` is the
102 directory where Mercurial is installed. ``<install-root>`` is the
103 parent directory of the **hg** executable (or symlink) being run. For
103 parent directory of the **hg** executable (or symlink) being run. For
104 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
104 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
105 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
105 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
106 to all Mercurial commands executed by any user in any directory.
106 to all Mercurial commands executed by any user in any directory.
107
107
108 Per-installation configuration files are for the system on
108 Per-installation configuration files are for the system on
109 which Mercurial is running. Options in these files apply to all
109 which Mercurial is running. Options in these files apply to all
110 Mercurial commands executed by any user in any directory. Registry
110 Mercurial commands executed by any user in any directory. Registry
111 keys contain PATH-like strings, every part of which must reference
111 keys contain PATH-like strings, every part of which must reference
112 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
112 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
113 be read. Mercurial checks each of these locations in the specified
113 be read. Mercurial checks each of these locations in the specified
114 order until one or more configuration files are detected.
114 order until one or more configuration files are detected.
115
115
116 Per-system configuration files are for the system on which Mercurial
116 Per-system configuration files are for the system on which Mercurial
117 is running. Options in these files apply to all Mercurial commands
117 is running. Options in these files apply to all Mercurial commands
118 executed by any user in any directory. Options in these files
118 executed by any user in any directory. Options in these files
119 override per-installation options.
119 override per-installation options.
120
120
121 Mercurial comes with some default configuration. The default configuration
121 Mercurial comes with some default configuration. The default configuration
122 files are installed with Mercurial and will be overwritten on upgrades. Default
122 files are installed with Mercurial and will be overwritten on upgrades. Default
123 configuration files should never be edited by users or administrators but can
123 configuration files should never be edited by users or administrators but can
124 be overridden in other configuration files. So far the directory only contains
124 be overridden in other configuration files. So far the directory only contains
125 merge tool configuration but packagers can also put other default configuration
125 merge tool configuration but packagers can also put other default configuration
126 there.
126 there.
127
127
128 Syntax
128 Syntax
129 ======
129 ======
130
130
131 A configuration file consists of sections, led by a ``[section]`` header
131 A configuration file consists of sections, led by a ``[section]`` header
132 and followed by ``name = value`` entries (sometimes called
132 and followed by ``name = value`` entries (sometimes called
133 ``configuration keys``)::
133 ``configuration keys``)::
134
134
135 [spam]
135 [spam]
136 eggs=ham
136 eggs=ham
137 green=
137 green=
138 eggs
138 eggs
139
139
140 Each line contains one entry. If the lines that follow are indented,
140 Each line contains one entry. If the lines that follow are indented,
141 they are treated as continuations of that entry. Leading whitespace is
141 they are treated as continuations of that entry. Leading whitespace is
142 removed from values. Empty lines are skipped. Lines beginning with
142 removed from values. Empty lines are skipped. Lines beginning with
143 ``#`` or ``;`` are ignored and may be used to provide comments.
143 ``#`` or ``;`` are ignored and may be used to provide comments.
144
144
145 Configuration keys can be set multiple times, in which case Mercurial
145 Configuration keys can be set multiple times, in which case Mercurial
146 will use the value that was configured last. As an example::
146 will use the value that was configured last. As an example::
147
147
148 [spam]
148 [spam]
149 eggs=large
149 eggs=large
150 ham=serrano
150 ham=serrano
151 eggs=small
151 eggs=small
152
152
153 This would set the configuration key named ``eggs`` to ``small``.
153 This would set the configuration key named ``eggs`` to ``small``.
154
154
155 It is also possible to define a section multiple times. A section can
155 It is also possible to define a section multiple times. A section can
156 be redefined on the same and/or on different configuration files. For
156 be redefined on the same and/or on different configuration files. For
157 example::
157 example::
158
158
159 [foo]
159 [foo]
160 eggs=large
160 eggs=large
161 ham=serrano
161 ham=serrano
162 eggs=small
162 eggs=small
163
163
164 [bar]
164 [bar]
165 eggs=ham
165 eggs=ham
166 green=
166 green=
167 eggs
167 eggs
168
168
169 [foo]
169 [foo]
170 ham=prosciutto
170 ham=prosciutto
171 eggs=medium
171 eggs=medium
172 bread=toasted
172 bread=toasted
173
173
174 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
174 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
175 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
175 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
176 respectively. As you can see there only thing that matters is the last
176 respectively. As you can see there only thing that matters is the last
177 value that was set for each of the configuration keys.
177 value that was set for each of the configuration keys.
178
178
179 If a configuration key is set multiple times in different
179 If a configuration key is set multiple times in different
180 configuration files the final value will depend on the order in which
180 configuration files the final value will depend on the order in which
181 the different configuration files are read, with settings from earlier
181 the different configuration files are read, with settings from earlier
182 paths overriding later ones as described on the ``Files`` section
182 paths overriding later ones as described on the ``Files`` section
183 above.
183 above.
184
184
185 A line of the form ``%include file`` will include ``file`` into the
185 A line of the form ``%include file`` will include ``file`` into the
186 current configuration file. The inclusion is recursive, which means
186 current configuration file. The inclusion is recursive, which means
187 that included files can include other files. Filenames are relative to
187 that included files can include other files. Filenames are relative to
188 the configuration file in which the ``%include`` directive is found.
188 the configuration file in which the ``%include`` directive is found.
189 Environment variables and ``~user`` constructs are expanded in
189 Environment variables and ``~user`` constructs are expanded in
190 ``file``. This lets you do something like::
190 ``file``. This lets you do something like::
191
191
192 %include ~/.hgrc.d/$HOST.rc
192 %include ~/.hgrc.d/$HOST.rc
193
193
194 to include a different configuration file on each computer you use.
194 to include a different configuration file on each computer you use.
195
195
196 A line with ``%unset name`` will remove ``name`` from the current
196 A line with ``%unset name`` will remove ``name`` from the current
197 section, if it has been set previously.
197 section, if it has been set previously.
198
198
199 The values are either free-form text strings, lists of text strings,
199 The values are either free-form text strings, lists of text strings,
200 or Boolean values. Boolean values can be set to true using any of "1",
200 or Boolean values. Boolean values can be set to true using any of "1",
201 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
201 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
202 (all case insensitive).
202 (all case insensitive).
203
203
204 List values are separated by whitespace or comma, except when values are
204 List values are separated by whitespace or comma, except when values are
205 placed in double quotation marks::
205 placed in double quotation marks::
206
206
207 allow_read = "John Doe, PhD", brian, betty
207 allow_read = "John Doe, PhD", brian, betty
208
208
209 Quotation marks can be escaped by prefixing them with a backslash. Only
209 Quotation marks can be escaped by prefixing them with a backslash. Only
210 quotation marks at the beginning of a word is counted as a quotation
210 quotation marks at the beginning of a word is counted as a quotation
211 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
211 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
212
212
213 Sections
213 Sections
214 ========
214 ========
215
215
216 This section describes the different sections that may appear in a
216 This section describes the different sections that may appear in a
217 Mercurial configuration file, the purpose of each section, its possible
217 Mercurial configuration file, the purpose of each section, its possible
218 keys, and their possible values.
218 keys, and their possible values.
219
219
220 ``alias``
220 ``alias``
221 ---------
221 ---------
222
222
223 Defines command aliases.
223 Defines command aliases.
224
224
225 Aliases allow you to define your own commands in terms of other
225 Aliases allow you to define your own commands in terms of other
226 commands (or aliases), optionally including arguments. Positional
226 commands (or aliases), optionally including arguments. Positional
227 arguments in the form of ``$1``, ``$2``, etc. in the alias definition
227 arguments in the form of ``$1``, ``$2``, etc. in the alias definition
228 are expanded by Mercurial before execution. Positional arguments not
228 are expanded by Mercurial before execution. Positional arguments not
229 already used by ``$N`` in the definition are put at the end of the
229 already used by ``$N`` in the definition are put at the end of the
230 command to be executed.
230 command to be executed.
231
231
232 Alias definitions consist of lines of the form::
232 Alias definitions consist of lines of the form::
233
233
234 <alias> = <command> [<argument>]...
234 <alias> = <command> [<argument>]...
235
235
236 For example, this definition::
236 For example, this definition::
237
237
238 latest = log --limit 5
238 latest = log --limit 5
239
239
240 creates a new command ``latest`` that shows only the five most recent
240 creates a new command ``latest`` that shows only the five most recent
241 changesets. You can define subsequent aliases using earlier ones::
241 changesets. You can define subsequent aliases using earlier ones::
242
242
243 stable5 = latest -b stable
243 stable5 = latest -b stable
244
244
245 .. note::
245 .. note::
246
246
247 It is possible to create aliases with the same names as
247 It is possible to create aliases with the same names as
248 existing commands, which will then override the original
248 existing commands, which will then override the original
249 definitions. This is almost always a bad idea!
249 definitions. This is almost always a bad idea!
250
250
251 An alias can start with an exclamation point (``!``) to make it a
251 An alias can start with an exclamation point (``!``) to make it a
252 shell alias. A shell alias is executed with the shell and will let you
252 shell alias. A shell alias is executed with the shell and will let you
253 run arbitrary commands. As an example, ::
253 run arbitrary commands. As an example, ::
254
254
255 echo = !echo $@
255 echo = !echo $@
256
256
257 will let you do ``hg echo foo`` to have ``foo`` printed in your
257 will let you do ``hg echo foo`` to have ``foo`` printed in your
258 terminal. A better example might be::
258 terminal. A better example might be::
259
259
260 purge = !$HG status --no-status --unknown -0 | xargs -0 rm
260 purge = !$HG status --no-status --unknown -0 | xargs -0 rm
261
261
262 which will make ``hg purge`` delete all unknown files in the
262 which will make ``hg purge`` delete all unknown files in the
263 repository in the same manner as the purge extension.
263 repository in the same manner as the purge extension.
264
264
265 Positional arguments like ``$1``, ``$2``, etc. in the alias definition
265 Positional arguments like ``$1``, ``$2``, etc. in the alias definition
266 expand to the command arguments. Unmatched arguments are
266 expand to the command arguments. Unmatched arguments are
267 removed. ``$0`` expands to the alias name and ``$@`` expands to all
267 removed. ``$0`` expands to the alias name and ``$@`` expands to all
268 arguments separated by a space. ``"$@"`` (with quotes) expands to all
268 arguments separated by a space. ``"$@"`` (with quotes) expands to all
269 arguments quoted individually and separated by a space. These expansions
269 arguments quoted individually and separated by a space. These expansions
270 happen before the command is passed to the shell.
270 happen before the command is passed to the shell.
271
271
272 Shell aliases are executed in an environment where ``$HG`` expands to
272 Shell aliases are executed in an environment where ``$HG`` expands to
273 the path of the Mercurial that was used to execute the alias. This is
273 the path of the Mercurial that was used to execute the alias. This is
274 useful when you want to call further Mercurial commands in a shell
274 useful when you want to call further Mercurial commands in a shell
275 alias, as was done above for the purge alias. In addition,
275 alias, as was done above for the purge alias. In addition,
276 ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
276 ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
277 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
277 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
278
278
279 .. note::
279 .. note::
280
280
281 Some global configuration options such as ``-R`` are
281 Some global configuration options such as ``-R`` are
282 processed before shell aliases and will thus not be passed to
282 processed before shell aliases and will thus not be passed to
283 aliases.
283 aliases.
284
284
285
285
286 ``annotate``
286 ``annotate``
287 ------------
287 ------------
288
288
289 Settings used when displaying file annotations. All values are
289 Settings used when displaying file annotations. All values are
290 Booleans and default to False. See :hg:`help config.diff` for
290 Booleans and default to False. See :hg:`help config.diff` for
291 related options for the diff command.
291 related options for the diff command.
292
292
293 ``ignorews``
293 ``ignorews``
294 Ignore white space when comparing lines.
294 Ignore white space when comparing lines.
295
295
296 ``ignorewsamount``
296 ``ignorewsamount``
297 Ignore changes in the amount of white space.
297 Ignore changes in the amount of white space.
298
298
299 ``ignoreblanklines``
299 ``ignoreblanklines``
300 Ignore changes whose lines are all blank.
300 Ignore changes whose lines are all blank.
301
301
302
302
303 ``auth``
303 ``auth``
304 --------
304 --------
305
305
306 Authentication credentials for HTTP authentication. This section
306 Authentication credentials for HTTP authentication. This section
307 allows you to store usernames and passwords for use when logging
307 allows you to store usernames and passwords for use when logging
308 *into* HTTP servers. See :hg:`help config.web` if
308 *into* HTTP servers. See :hg:`help config.web` if
309 you want to configure *who* can login to your HTTP server.
309 you want to configure *who* can login to your HTTP server.
310
310
311 Each line has the following format::
311 Each line has the following format::
312
312
313 <name>.<argument> = <value>
313 <name>.<argument> = <value>
314
314
315 where ``<name>`` is used to group arguments into authentication
315 where ``<name>`` is used to group arguments into authentication
316 entries. Example::
316 entries. Example::
317
317
318 foo.prefix = hg.intevation.org/mercurial
318 foo.prefix = hg.intevation.org/mercurial
319 foo.username = foo
319 foo.username = foo
320 foo.password = bar
320 foo.password = bar
321 foo.schemes = http https
321 foo.schemes = http https
322
322
323 bar.prefix = secure.example.org
323 bar.prefix = secure.example.org
324 bar.key = path/to/file.key
324 bar.key = path/to/file.key
325 bar.cert = path/to/file.cert
325 bar.cert = path/to/file.cert
326 bar.schemes = https
326 bar.schemes = https
327
327
328 Supported arguments:
328 Supported arguments:
329
329
330 ``prefix``
330 ``prefix``
331 Either ``*`` or a URI prefix with or without the scheme part.
331 Either ``*`` or a URI prefix with or without the scheme part.
332 The authentication entry with the longest matching prefix is used
332 The authentication entry with the longest matching prefix is used
333 (where ``*`` matches everything and counts as a match of length
333 (where ``*`` matches everything and counts as a match of length
334 1). If the prefix doesn't include a scheme, the match is performed
334 1). If the prefix doesn't include a scheme, the match is performed
335 against the URI with its scheme stripped as well, and the schemes
335 against the URI with its scheme stripped as well, and the schemes
336 argument, q.v., is then subsequently consulted.
336 argument, q.v., is then subsequently consulted.
337
337
338 ``username``
338 ``username``
339 Optional. Username to authenticate with. If not given, and the
339 Optional. Username to authenticate with. If not given, and the
340 remote site requires basic or digest authentication, the user will
340 remote site requires basic or digest authentication, the user will
341 be prompted for it. Environment variables are expanded in the
341 be prompted for it. Environment variables are expanded in the
342 username letting you do ``foo.username = $USER``. If the URI
342 username letting you do ``foo.username = $USER``. If the URI
343 includes a username, only ``[auth]`` entries with a matching
343 includes a username, only ``[auth]`` entries with a matching
344 username or without a username will be considered.
344 username or without a username will be considered.
345
345
346 ``password``
346 ``password``
347 Optional. Password to authenticate with. If not given, and the
347 Optional. Password to authenticate with. If not given, and the
348 remote site requires basic or digest authentication, the user
348 remote site requires basic or digest authentication, the user
349 will be prompted for it.
349 will be prompted for it.
350
350
351 ``key``
351 ``key``
352 Optional. PEM encoded client certificate key file. Environment
352 Optional. PEM encoded client certificate key file. Environment
353 variables are expanded in the filename.
353 variables are expanded in the filename.
354
354
355 ``cert``
355 ``cert``
356 Optional. PEM encoded client certificate chain file. Environment
356 Optional. PEM encoded client certificate chain file. Environment
357 variables are expanded in the filename.
357 variables are expanded in the filename.
358
358
359 ``schemes``
359 ``schemes``
360 Optional. Space separated list of URI schemes to use this
360 Optional. Space separated list of URI schemes to use this
361 authentication entry with. Only used if the prefix doesn't include
361 authentication entry with. Only used if the prefix doesn't include
362 a scheme. Supported schemes are http and https. They will match
362 a scheme. Supported schemes are http and https. They will match
363 static-http and static-https respectively, as well.
363 static-http and static-https respectively, as well.
364 (default: https)
364 (default: https)
365
365
366 If no suitable authentication entry is found, the user is prompted
366 If no suitable authentication entry is found, the user is prompted
367 for credentials as usual if required by the remote.
367 for credentials as usual if required by the remote.
368
368
369
369
370 ``committemplate``
370 ``committemplate``
371 ------------------
371 ------------------
372
372
373 ``changeset``
373 ``changeset``
374 String: configuration in this section is used as the template to
374 String: configuration in this section is used as the template to
375 customize the text shown in the editor when committing.
375 customize the text shown in the editor when committing.
376
376
377 In addition to pre-defined template keywords, commit log specific one
377 In addition to pre-defined template keywords, commit log specific one
378 below can be used for customization:
378 below can be used for customization:
379
379
380 ``extramsg``
380 ``extramsg``
381 String: Extra message (typically 'Leave message empty to abort
381 String: Extra message (typically 'Leave message empty to abort
382 commit.'). This may be changed by some commands or extensions.
382 commit.'). This may be changed by some commands or extensions.
383
383
384 For example, the template configuration below shows as same text as
384 For example, the template configuration below shows as same text as
385 one shown by default::
385 one shown by default::
386
386
387 [committemplate]
387 [committemplate]
388 changeset = {desc}\n\n
388 changeset = {desc}\n\n
389 HG: Enter commit message. Lines beginning with 'HG:' are removed.
389 HG: Enter commit message. Lines beginning with 'HG:' are removed.
390 HG: {extramsg}
390 HG: {extramsg}
391 HG: --
391 HG: --
392 HG: user: {author}\n{ifeq(p2rev, "-1", "",
392 HG: user: {author}\n{ifeq(p2rev, "-1", "",
393 "HG: branch merge\n")
393 "HG: branch merge\n")
394 }HG: branch '{branch}'\n{if(activebookmark,
394 }HG: branch '{branch}'\n{if(activebookmark,
395 "HG: bookmark '{activebookmark}'\n") }{subrepos %
395 "HG: bookmark '{activebookmark}'\n") }{subrepos %
396 "HG: subrepo {subrepo}\n" }{file_adds %
396 "HG: subrepo {subrepo}\n" }{file_adds %
397 "HG: added {file}\n" }{file_mods %
397 "HG: added {file}\n" }{file_mods %
398 "HG: changed {file}\n" }{file_dels %
398 "HG: changed {file}\n" }{file_dels %
399 "HG: removed {file}\n" }{if(files, "",
399 "HG: removed {file}\n" }{if(files, "",
400 "HG: no files changed\n")}
400 "HG: no files changed\n")}
401
401
402 .. note::
402 .. note::
403
403
404 For some problematic encodings (see :hg:`help win32mbcs` for
404 For some problematic encodings (see :hg:`help win32mbcs` for
405 detail), this customization should be configured carefully, to
405 detail), this customization should be configured carefully, to
406 avoid showing broken characters.
406 avoid showing broken characters.
407
407
408 For example, if a multibyte character ending with backslash (0x5c) is
408 For example, if a multibyte character ending with backslash (0x5c) is
409 followed by the ASCII character 'n' in the customized template,
409 followed by the ASCII character 'n' in the customized template,
410 the sequence of backslash and 'n' is treated as line-feed unexpectedly
410 the sequence of backslash and 'n' is treated as line-feed unexpectedly
411 (and the multibyte character is broken, too).
411 (and the multibyte character is broken, too).
412
412
413 Customized template is used for commands below (``--edit`` may be
413 Customized template is used for commands below (``--edit`` may be
414 required):
414 required):
415
415
416 - :hg:`backout`
416 - :hg:`backout`
417 - :hg:`commit`
417 - :hg:`commit`
418 - :hg:`fetch` (for merge commit only)
418 - :hg:`fetch` (for merge commit only)
419 - :hg:`graft`
419 - :hg:`graft`
420 - :hg:`histedit`
420 - :hg:`histedit`
421 - :hg:`import`
421 - :hg:`import`
422 - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`
422 - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`
423 - :hg:`rebase`
423 - :hg:`rebase`
424 - :hg:`shelve`
424 - :hg:`shelve`
425 - :hg:`sign`
425 - :hg:`sign`
426 - :hg:`tag`
426 - :hg:`tag`
427 - :hg:`transplant`
427 - :hg:`transplant`
428
428
429 Configuring items below instead of ``changeset`` allows showing
429 Configuring items below instead of ``changeset`` allows showing
430 customized message only for specific actions, or showing different
430 customized message only for specific actions, or showing different
431 messages for each action.
431 messages for each action.
432
432
433 - ``changeset.backout`` for :hg:`backout`
433 - ``changeset.backout`` for :hg:`backout`
434 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
434 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
435 - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other
435 - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other
436 - ``changeset.commit.normal.merge`` for :hg:`commit` on merges
436 - ``changeset.commit.normal.merge`` for :hg:`commit` on merges
437 - ``changeset.commit.normal.normal`` for :hg:`commit` on other
437 - ``changeset.commit.normal.normal`` for :hg:`commit` on other
438 - ``changeset.fetch`` for :hg:`fetch` (impling merge commit)
438 - ``changeset.fetch`` for :hg:`fetch` (impling merge commit)
439 - ``changeset.gpg.sign`` for :hg:`sign`
439 - ``changeset.gpg.sign`` for :hg:`sign`
440 - ``changeset.graft`` for :hg:`graft`
440 - ``changeset.graft`` for :hg:`graft`
441 - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`
441 - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`
442 - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`
442 - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`
443 - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`
443 - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`
444 - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`
444 - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`
445 - ``changeset.import.bypass`` for :hg:`import --bypass`
445 - ``changeset.import.bypass`` for :hg:`import --bypass`
446 - ``changeset.import.normal.merge`` for :hg:`import` on merges
446 - ``changeset.import.normal.merge`` for :hg:`import` on merges
447 - ``changeset.import.normal.normal`` for :hg:`import` on other
447 - ``changeset.import.normal.normal`` for :hg:`import` on other
448 - ``changeset.mq.qnew`` for :hg:`qnew`
448 - ``changeset.mq.qnew`` for :hg:`qnew`
449 - ``changeset.mq.qfold`` for :hg:`qfold`
449 - ``changeset.mq.qfold`` for :hg:`qfold`
450 - ``changeset.mq.qrefresh`` for :hg:`qrefresh`
450 - ``changeset.mq.qrefresh`` for :hg:`qrefresh`
451 - ``changeset.rebase.collapse`` for :hg:`rebase --collapse`
451 - ``changeset.rebase.collapse`` for :hg:`rebase --collapse`
452 - ``changeset.rebase.merge`` for :hg:`rebase` on merges
452 - ``changeset.rebase.merge`` for :hg:`rebase` on merges
453 - ``changeset.rebase.normal`` for :hg:`rebase` on other
453 - ``changeset.rebase.normal`` for :hg:`rebase` on other
454 - ``changeset.shelve.shelve`` for :hg:`shelve`
454 - ``changeset.shelve.shelve`` for :hg:`shelve`
455 - ``changeset.tag.add`` for :hg:`tag` without ``--remove``
455 - ``changeset.tag.add`` for :hg:`tag` without ``--remove``
456 - ``changeset.tag.remove`` for :hg:`tag --remove`
456 - ``changeset.tag.remove`` for :hg:`tag --remove`
457 - ``changeset.transplant.merge`` for :hg:`transplant` on merges
457 - ``changeset.transplant.merge`` for :hg:`transplant` on merges
458 - ``changeset.transplant.normal`` for :hg:`transplant` on other
458 - ``changeset.transplant.normal`` for :hg:`transplant` on other
459
459
460 These dot-separated lists of names are treated as hierarchical ones.
460 These dot-separated lists of names are treated as hierarchical ones.
461 For example, ``changeset.tag.remove`` customizes the commit message
461 For example, ``changeset.tag.remove`` customizes the commit message
462 only for :hg:`tag --remove`, but ``changeset.tag`` customizes the
462 only for :hg:`tag --remove`, but ``changeset.tag`` customizes the
463 commit message for :hg:`tag` regardless of ``--remove`` option.
463 commit message for :hg:`tag` regardless of ``--remove`` option.
464
464
465 When the external editor is invoked for a commit, the corresponding
465 When the external editor is invoked for a commit, the corresponding
466 dot-separated list of names without the ``changeset.`` prefix
466 dot-separated list of names without the ``changeset.`` prefix
467 (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment
467 (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment
468 variable.
468 variable.
469
469
470 In this section, items other than ``changeset`` can be referred from
470 In this section, items other than ``changeset`` can be referred from
471 others. For example, the configuration to list committed files up
471 others. For example, the configuration to list committed files up
472 below can be referred as ``{listupfiles}``::
472 below can be referred as ``{listupfiles}``::
473
473
474 [committemplate]
474 [committemplate]
475 listupfiles = {file_adds %
475 listupfiles = {file_adds %
476 "HG: added {file}\n" }{file_mods %
476 "HG: added {file}\n" }{file_mods %
477 "HG: changed {file}\n" }{file_dels %
477 "HG: changed {file}\n" }{file_dels %
478 "HG: removed {file}\n" }{if(files, "",
478 "HG: removed {file}\n" }{if(files, "",
479 "HG: no files changed\n")}
479 "HG: no files changed\n")}
480
480
481 ``decode/encode``
481 ``decode/encode``
482 -----------------
482 -----------------
483
483
484 Filters for transforming files on checkout/checkin. This would
484 Filters for transforming files on checkout/checkin. This would
485 typically be used for newline processing or other
485 typically be used for newline processing or other
486 localization/canonicalization of files.
486 localization/canonicalization of files.
487
487
488 Filters consist of a filter pattern followed by a filter command.
488 Filters consist of a filter pattern followed by a filter command.
489 Filter patterns are globs by default, rooted at the repository root.
489 Filter patterns are globs by default, rooted at the repository root.
490 For example, to match any file ending in ``.txt`` in the root
490 For example, to match any file ending in ``.txt`` in the root
491 directory only, use the pattern ``*.txt``. To match any file ending
491 directory only, use the pattern ``*.txt``. To match any file ending
492 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
492 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
493 For each file only the first matching filter applies.
493 For each file only the first matching filter applies.
494
494
495 The filter command can start with a specifier, either ``pipe:`` or
495 The filter command can start with a specifier, either ``pipe:`` or
496 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
496 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
497
497
498 A ``pipe:`` command must accept data on stdin and return the transformed
498 A ``pipe:`` command must accept data on stdin and return the transformed
499 data on stdout.
499 data on stdout.
500
500
501 Pipe example::
501 Pipe example::
502
502
503 [encode]
503 [encode]
504 # uncompress gzip files on checkin to improve delta compression
504 # uncompress gzip files on checkin to improve delta compression
505 # note: not necessarily a good idea, just an example
505 # note: not necessarily a good idea, just an example
506 *.gz = pipe: gunzip
506 *.gz = pipe: gunzip
507
507
508 [decode]
508 [decode]
509 # recompress gzip files when writing them to the working dir (we
509 # recompress gzip files when writing them to the working dir (we
510 # can safely omit "pipe:", because it's the default)
510 # can safely omit "pipe:", because it's the default)
511 *.gz = gzip
511 *.gz = gzip
512
512
513 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
513 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
514 with the name of a temporary file that contains the data to be
514 with the name of a temporary file that contains the data to be
515 filtered by the command. The string ``OUTFILE`` is replaced with the name
515 filtered by the command. The string ``OUTFILE`` is replaced with the name
516 of an empty temporary file, where the filtered data must be written by
516 of an empty temporary file, where the filtered data must be written by
517 the command.
517 the command.
518
518
519 .. note::
519 .. note::
520
520
521 The tempfile mechanism is recommended for Windows systems,
521 The tempfile mechanism is recommended for Windows systems,
522 where the standard shell I/O redirection operators often have
522 where the standard shell I/O redirection operators often have
523 strange effects and may corrupt the contents of your files.
523 strange effects and may corrupt the contents of your files.
524
524
525 This filter mechanism is used internally by the ``eol`` extension to
525 This filter mechanism is used internally by the ``eol`` extension to
526 translate line ending characters between Windows (CRLF) and Unix (LF)
526 translate line ending characters between Windows (CRLF) and Unix (LF)
527 format. We suggest you use the ``eol`` extension for convenience.
527 format. We suggest you use the ``eol`` extension for convenience.
528
528
529
529
530 ``defaults``
530 ``defaults``
531 ------------
531 ------------
532
532
533 (defaults are deprecated. Don't use them. Use aliases instead.)
533 (defaults are deprecated. Don't use them. Use aliases instead.)
534
534
535 Use the ``[defaults]`` section to define command defaults, i.e. the
535 Use the ``[defaults]`` section to define command defaults, i.e. the
536 default options/arguments to pass to the specified commands.
536 default options/arguments to pass to the specified commands.
537
537
538 The following example makes :hg:`log` run in verbose mode, and
538 The following example makes :hg:`log` run in verbose mode, and
539 :hg:`status` show only the modified files, by default::
539 :hg:`status` show only the modified files, by default::
540
540
541 [defaults]
541 [defaults]
542 log = -v
542 log = -v
543 status = -m
543 status = -m
544
544
545 The actual commands, instead of their aliases, must be used when
545 The actual commands, instead of their aliases, must be used when
546 defining command defaults. The command defaults will also be applied
546 defining command defaults. The command defaults will also be applied
547 to the aliases of the commands defined.
547 to the aliases of the commands defined.
548
548
549
549
550 ``diff``
550 ``diff``
551 --------
551 --------
552
552
553 Settings used when displaying diffs. Everything except for ``unified``
553 Settings used when displaying diffs. Everything except for ``unified``
554 is a Boolean and defaults to False. See :hg:`help config.annotate`
554 is a Boolean and defaults to False. See :hg:`help config.annotate`
555 for related options for the annotate command.
555 for related options for the annotate command.
556
556
557 ``git``
557 ``git``
558 Use git extended diff format.
558 Use git extended diff format.
559
559
560 ``nobinary``
560 ``nobinary``
561 Omit git binary patches.
561 Omit git binary patches.
562
562
563 ``nodates``
563 ``nodates``
564 Don't include dates in diff headers.
564 Don't include dates in diff headers.
565
565
566 ``noprefix``
566 ``noprefix``
567 Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
567 Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
568
568
569 ``showfunc``
569 ``showfunc``
570 Show which function each change is in.
570 Show which function each change is in.
571
571
572 ``ignorews``
572 ``ignorews``
573 Ignore white space when comparing lines.
573 Ignore white space when comparing lines.
574
574
575 ``ignorewsamount``
575 ``ignorewsamount``
576 Ignore changes in the amount of white space.
576 Ignore changes in the amount of white space.
577
577
578 ``ignoreblanklines``
578 ``ignoreblanklines``
579 Ignore changes whose lines are all blank.
579 Ignore changes whose lines are all blank.
580
580
581 ``unified``
581 ``unified``
582 Number of lines of context to show.
582 Number of lines of context to show.
583
583
584 ``email``
584 ``email``
585 ---------
585 ---------
586
586
587 Settings for extensions that send email messages.
587 Settings for extensions that send email messages.
588
588
589 ``from``
589 ``from``
590 Optional. Email address to use in "From" header and SMTP envelope
590 Optional. Email address to use in "From" header and SMTP envelope
591 of outgoing messages.
591 of outgoing messages.
592
592
593 ``to``
593 ``to``
594 Optional. Comma-separated list of recipients' email addresses.
594 Optional. Comma-separated list of recipients' email addresses.
595
595
596 ``cc``
596 ``cc``
597 Optional. Comma-separated list of carbon copy recipients'
597 Optional. Comma-separated list of carbon copy recipients'
598 email addresses.
598 email addresses.
599
599
600 ``bcc``
600 ``bcc``
601 Optional. Comma-separated list of blind carbon copy recipients'
601 Optional. Comma-separated list of blind carbon copy recipients'
602 email addresses.
602 email addresses.
603
603
604 ``method``
604 ``method``
605 Optional. Method to use to send email messages. If value is ``smtp``
605 Optional. Method to use to send email messages. If value is ``smtp``
606 (default), use SMTP (see the ``[smtp]`` section for configuration).
606 (default), use SMTP (see the ``[smtp]`` section for configuration).
607 Otherwise, use as name of program to run that acts like sendmail
607 Otherwise, use as name of program to run that acts like sendmail
608 (takes ``-f`` option for sender, list of recipients on command line,
608 (takes ``-f`` option for sender, list of recipients on command line,
609 message on stdin). Normally, setting this to ``sendmail`` or
609 message on stdin). Normally, setting this to ``sendmail`` or
610 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
610 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
611
611
612 ``charsets``
612 ``charsets``
613 Optional. Comma-separated list of character sets considered
613 Optional. Comma-separated list of character sets considered
614 convenient for recipients. Addresses, headers, and parts not
614 convenient for recipients. Addresses, headers, and parts not
615 containing patches of outgoing messages will be encoded in the
615 containing patches of outgoing messages will be encoded in the
616 first character set to which conversion from local encoding
616 first character set to which conversion from local encoding
617 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
617 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
618 conversion fails, the text in question is sent as is.
618 conversion fails, the text in question is sent as is.
619 (default: '')
619 (default: '')
620
620
621 Order of outgoing email character sets:
621 Order of outgoing email character sets:
622
622
623 1. ``us-ascii``: always first, regardless of settings
623 1. ``us-ascii``: always first, regardless of settings
624 2. ``email.charsets``: in order given by user
624 2. ``email.charsets``: in order given by user
625 3. ``ui.fallbackencoding``: if not in email.charsets
625 3. ``ui.fallbackencoding``: if not in email.charsets
626 4. ``$HGENCODING``: if not in email.charsets
626 4. ``$HGENCODING``: if not in email.charsets
627 5. ``utf-8``: always last, regardless of settings
627 5. ``utf-8``: always last, regardless of settings
628
628
629 Email example::
629 Email example::
630
630
631 [email]
631 [email]
632 from = Joseph User <joe.user@example.com>
632 from = Joseph User <joe.user@example.com>
633 method = /usr/sbin/sendmail
633 method = /usr/sbin/sendmail
634 # charsets for western Europeans
634 # charsets for western Europeans
635 # us-ascii, utf-8 omitted, as they are tried first and last
635 # us-ascii, utf-8 omitted, as they are tried first and last
636 charsets = iso-8859-1, iso-8859-15, windows-1252
636 charsets = iso-8859-1, iso-8859-15, windows-1252
637
637
638
638
639 ``extensions``
639 ``extensions``
640 --------------
640 --------------
641
641
642 Mercurial has an extension mechanism for adding new features. To
642 Mercurial has an extension mechanism for adding new features. To
643 enable an extension, create an entry for it in this section.
643 enable an extension, create an entry for it in this section.
644
644
645 If you know that the extension is already in Python's search path,
645 If you know that the extension is already in Python's search path,
646 you can give the name of the module, followed by ``=``, with nothing
646 you can give the name of the module, followed by ``=``, with nothing
647 after the ``=``.
647 after the ``=``.
648
648
649 Otherwise, give a name that you choose, followed by ``=``, followed by
649 Otherwise, give a name that you choose, followed by ``=``, followed by
650 the path to the ``.py`` file (including the file name extension) that
650 the path to the ``.py`` file (including the file name extension) that
651 defines the extension.
651 defines the extension.
652
652
653 To explicitly disable an extension that is enabled in an hgrc of
653 To explicitly disable an extension that is enabled in an hgrc of
654 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
654 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
655 or ``foo = !`` when path is not supplied.
655 or ``foo = !`` when path is not supplied.
656
656
657 Example for ``~/.hgrc``::
657 Example for ``~/.hgrc``::
658
658
659 [extensions]
659 [extensions]
660 # (the color extension will get loaded from Mercurial's path)
660 # (the color extension will get loaded from Mercurial's path)
661 color =
661 color =
662 # (this extension will get loaded from the file specified)
662 # (this extension will get loaded from the file specified)
663 myfeature = ~/.hgext/myfeature.py
663 myfeature = ~/.hgext/myfeature.py
664
664
665
665
666 ``format``
666 ``format``
667 ----------
667 ----------
668
668
669 ``usegeneraldelta``
669 ``usegeneraldelta``
670 Enable or disable the "generaldelta" repository format which improves
670 Enable or disable the "generaldelta" repository format which improves
671 repository compression by allowing "revlog" to store delta against arbitrary
671 repository compression by allowing "revlog" to store delta against arbitrary
672 revision instead of the previous stored one. This provides significant
672 revision instead of the previous stored one. This provides significant
673 improvement for repositories with branches. Enabled by default. Disabling
673 improvement for repositories with branches. Enabled by default. Disabling
674 this option ensures that the on-disk format of newly created repository will
674 this option ensures that the on-disk format of newly created repository will
675 be compatible with Mercurial before version 1.9.
675 be compatible with Mercurial before version 1.9.
676
676
677 ``usestore``
677 ``usestore``
678 Enable or disable the "store" repository format which improves
678 Enable or disable the "store" repository format which improves
679 compatibility with systems that fold case or otherwise mangle
679 compatibility with systems that fold case or otherwise mangle
680 filenames. Enabled by default. Disabling this option will allow
680 filenames. Enabled by default. Disabling this option will allow
681 you to store longer filenames in some situations at the expense of
681 you to store longer filenames in some situations at the expense of
682 compatibility and ensures that the on-disk format of newly created
682 compatibility and ensures that the on-disk format of newly created
683 repositories will be compatible with Mercurial before version 0.9.4.
683 repositories will be compatible with Mercurial before version 0.9.4.
684
684
685 ``usefncache``
685 ``usefncache``
686 Enable or disable the "fncache" repository format which enhances
686 Enable or disable the "fncache" repository format which enhances
687 the "store" repository format (which has to be enabled to use
687 the "store" repository format (which has to be enabled to use
688 fncache) to allow longer filenames and avoids using Windows
688 fncache) to allow longer filenames and avoids using Windows
689 reserved names, e.g. "nul". Enabled by default. Disabling this
689 reserved names, e.g. "nul". Enabled by default. Disabling this
690 option ensures that the on-disk format of newly created
690 option ensures that the on-disk format of newly created
691 repositories will be compatible with Mercurial before version 1.1.
691 repositories will be compatible with Mercurial before version 1.1.
692
692
693 ``dotencode``
693 ``dotencode``
694 Enable or disable the "dotencode" repository format which enhances
694 Enable or disable the "dotencode" repository format which enhances
695 the "fncache" repository format (which has to be enabled to use
695 the "fncache" repository format (which has to be enabled to use
696 dotencode) to avoid issues with filenames starting with ._ on
696 dotencode) to avoid issues with filenames starting with ._ on
697 Mac OS X and spaces on Windows. Enabled by default. Disabling this
697 Mac OS X and spaces on Windows. Enabled by default. Disabling this
698 option ensures that the on-disk format of newly created
698 option ensures that the on-disk format of newly created
699 repositories will be compatible with Mercurial before version 1.7.
699 repositories will be compatible with Mercurial before version 1.7.
700
700
701 ``graph``
701 ``graph``
702 ---------
702 ---------
703
703
704 Web graph view configuration. This section let you change graph
704 Web graph view configuration. This section let you change graph
705 elements display properties by branches, for instance to make the
705 elements display properties by branches, for instance to make the
706 ``default`` branch stand out.
706 ``default`` branch stand out.
707
707
708 Each line has the following format::
708 Each line has the following format::
709
709
710 <branch>.<argument> = <value>
710 <branch>.<argument> = <value>
711
711
712 where ``<branch>`` is the name of the branch being
712 where ``<branch>`` is the name of the branch being
713 customized. Example::
713 customized. Example::
714
714
715 [graph]
715 [graph]
716 # 2px width
716 # 2px width
717 default.width = 2
717 default.width = 2
718 # red color
718 # red color
719 default.color = FF0000
719 default.color = FF0000
720
720
721 Supported arguments:
721 Supported arguments:
722
722
723 ``width``
723 ``width``
724 Set branch edges width in pixels.
724 Set branch edges width in pixels.
725
725
726 ``color``
726 ``color``
727 Set branch edges color in hexadecimal RGB notation.
727 Set branch edges color in hexadecimal RGB notation.
728
728
729 ``hooks``
729 ``hooks``
730 ---------
730 ---------
731
731
732 Commands or Python functions that get automatically executed by
732 Commands or Python functions that get automatically executed by
733 various actions such as starting or finishing a commit. Multiple
733 various actions such as starting or finishing a commit. Multiple
734 hooks can be run for the same action by appending a suffix to the
734 hooks can be run for the same action by appending a suffix to the
735 action. Overriding a site-wide hook can be done by changing its
735 action. Overriding a site-wide hook can be done by changing its
736 value or setting it to an empty string. Hooks can be prioritized
736 value or setting it to an empty string. Hooks can be prioritized
737 by adding a prefix of ``priority`` to the hook name on a new line
737 by adding a prefix of ``priority.`` to the hook name on a new line
738 and setting the priority. The default priority is 0.
738 and setting the priority. The default priority is 0.
739
739
740 Example ``.hg/hgrc``::
740 Example ``.hg/hgrc``::
741
741
742 [hooks]
742 [hooks]
743 # update working directory after adding changesets
743 # update working directory after adding changesets
744 changegroup.update = hg update
744 changegroup.update = hg update
745 # do not use the site-wide hook
745 # do not use the site-wide hook
746 incoming =
746 incoming =
747 incoming.email = /my/email/hook
747 incoming.email = /my/email/hook
748 incoming.autobuild = /my/build/hook
748 incoming.autobuild = /my/build/hook
749 # force autobuild hook to run before other incoming hooks
749 # force autobuild hook to run before other incoming hooks
750 priority.incoming.autobuild = 1
750 priority.incoming.autobuild = 1
751
751
752 Most hooks are run with environment variables set that give useful
752 Most hooks are run with environment variables set that give useful
753 additional information. For each hook below, the environment
753 additional information. For each hook below, the environment
754 variables it is passed are listed with names of the form ``$HG_foo``.
754 variables it is passed are listed with names of the form ``$HG_foo``.
755
755
756 ``changegroup``
756 ``changegroup``
757 Run after a changegroup has been added via push, pull or unbundle.
757 Run after a changegroup has been added via push, pull or unbundle.
758 ID of the first new changeset is in ``$HG_NODE``. URL from which
758 ID of the first new changeset is in ``$HG_NODE``. URL from which
759 changes came is in ``$HG_URL``.
759 changes came is in ``$HG_URL``.
760
760
761 ``commit``
761 ``commit``
762 Run after a changeset has been created in the local repository. ID
762 Run after a changeset has been created in the local repository. ID
763 of the newly created changeset is in ``$HG_NODE``. Parent changeset
763 of the newly created changeset is in ``$HG_NODE``. Parent changeset
764 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
764 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
765
765
766 ``incoming``
766 ``incoming``
767 Run after a changeset has been pulled, pushed, or unbundled into
767 Run after a changeset has been pulled, pushed, or unbundled into
768 the local repository. The ID of the newly arrived changeset is in
768 the local repository. The ID of the newly arrived changeset is in
769 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
769 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
770
770
771 ``outgoing``
771 ``outgoing``
772 Run after sending changes from local repository to another. ID of
772 Run after sending changes from local repository to another. ID of
773 first changeset sent is in ``$HG_NODE``. Source of operation is in
773 first changeset sent is in ``$HG_NODE``. Source of operation is in
774 ``$HG_SOURCE``; Also see :hg:`help config.preoutgoing` hook.
774 ``$HG_SOURCE``; Also see :hg:`help config.preoutgoing` hook.
775
775
776 ``post-<command>``
776 ``post-<command>``
777 Run after successful invocations of the associated command. The
777 Run after successful invocations of the associated command. The
778 contents of the command line are passed as ``$HG_ARGS`` and the result
778 contents of the command line are passed as ``$HG_ARGS`` and the result
779 code in ``$HG_RESULT``. Parsed command line arguments are passed as
779 code in ``$HG_RESULT``. Parsed command line arguments are passed as
780 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
780 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
781 the python data internally passed to <command>. ``$HG_OPTS`` is a
781 the python data internally passed to <command>. ``$HG_OPTS`` is a
782 dictionary of options (with unspecified options set to their defaults).
782 dictionary of options (with unspecified options set to their defaults).
783 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
783 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
784
784
785 ``pre-<command>``
785 ``pre-<command>``
786 Run before executing the associated command. The contents of the
786 Run before executing the associated command. The contents of the
787 command line are passed as ``$HG_ARGS``. Parsed command line arguments
787 command line are passed as ``$HG_ARGS``. Parsed command line arguments
788 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
788 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
789 representations of the data internally passed to <command>. ``$HG_OPTS``
789 representations of the data internally passed to <command>. ``$HG_OPTS``
790 is a dictionary of options (with unspecified options set to their
790 is a dictionary of options (with unspecified options set to their
791 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
791 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
792 failure, the command doesn't execute and Mercurial returns the failure
792 failure, the command doesn't execute and Mercurial returns the failure
793 code.
793 code.
794
794
795 ``prechangegroup``
795 ``prechangegroup``
796 Run before a changegroup is added via push, pull or unbundle. Exit
796 Run before a changegroup is added via push, pull or unbundle. Exit
797 status 0 allows the changegroup to proceed. Non-zero status will
797 status 0 allows the changegroup to proceed. Non-zero status will
798 cause the push, pull or unbundle to fail. URL from which changes
798 cause the push, pull or unbundle to fail. URL from which changes
799 will come is in ``$HG_URL``.
799 will come is in ``$HG_URL``.
800
800
801 ``precommit``
801 ``precommit``
802 Run before starting a local commit. Exit status 0 allows the
802 Run before starting a local commit. Exit status 0 allows the
803 commit to proceed. Non-zero status will cause the commit to fail.
803 commit to proceed. Non-zero status will cause the commit to fail.
804 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
804 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
805
805
806 ``prelistkeys``
806 ``prelistkeys``
807 Run before listing pushkeys (like bookmarks) in the
807 Run before listing pushkeys (like bookmarks) in the
808 repository. Non-zero status will cause failure. The key namespace is
808 repository. Non-zero status will cause failure. The key namespace is
809 in ``$HG_NAMESPACE``.
809 in ``$HG_NAMESPACE``.
810
810
811 ``preoutgoing``
811 ``preoutgoing``
812 Run before collecting changes to send from the local repository to
812 Run before collecting changes to send from the local repository to
813 another. Non-zero status will cause failure. This lets you prevent
813 another. Non-zero status will cause failure. This lets you prevent
814 pull over HTTP or SSH. Also prevents against local pull, push
814 pull over HTTP or SSH. Also prevents against local pull, push
815 (outbound) or bundle commands, but not effective, since you can
815 (outbound) or bundle commands, but not effective, since you can
816 just copy files instead then. Source of operation is in
816 just copy files instead then. Source of operation is in
817 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
817 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
818 SSH or HTTP repository. If "push", "pull" or "bundle", operation
818 SSH or HTTP repository. If "push", "pull" or "bundle", operation
819 is happening on behalf of repository on same system.
819 is happening on behalf of repository on same system.
820
820
821 ``prepushkey``
821 ``prepushkey``
822 Run before a pushkey (like a bookmark) is added to the
822 Run before a pushkey (like a bookmark) is added to the
823 repository. Non-zero status will cause the key to be rejected. The
823 repository. Non-zero status will cause the key to be rejected. The
824 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
824 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
825 the old value (if any) is in ``$HG_OLD``, and the new value is in
825 the old value (if any) is in ``$HG_OLD``, and the new value is in
826 ``$HG_NEW``.
826 ``$HG_NEW``.
827
827
828 ``pretag``
828 ``pretag``
829 Run before creating a tag. Exit status 0 allows the tag to be
829 Run before creating a tag. Exit status 0 allows the tag to be
830 created. Non-zero status will cause the tag to fail. ID of
830 created. Non-zero status will cause the tag to fail. ID of
831 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
831 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
832 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
832 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
833
833
834 ``pretxnopen``
834 ``pretxnopen``
835 Run before any new repository transaction is open. The reason for the
835 Run before any new repository transaction is open. The reason for the
836 transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
836 transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
837 transaction will be in ``HG_TXNID``. A non-zero status will prevent the
837 transaction will be in ``HG_TXNID``. A non-zero status will prevent the
838 transaction from being opened.
838 transaction from being opened.
839
839
840 ``pretxnclose``
840 ``pretxnclose``
841 Run right before the transaction is actually finalized. Any
841 Run right before the transaction is actually finalized. Any
842 repository change will be visible to the hook program. This lets you
842 repository change will be visible to the hook program. This lets you
843 validate the transaction content or change it. Exit status 0 allows
843 validate the transaction content or change it. Exit status 0 allows
844 the commit to proceed. Non-zero status will cause the transaction to
844 the commit to proceed. Non-zero status will cause the transaction to
845 be rolled back. The reason for the transaction opening will be in
845 be rolled back. The reason for the transaction opening will be in
846 ``$HG_TXNNAME`` and a unique identifier for the transaction will be in
846 ``$HG_TXNNAME`` and a unique identifier for the transaction will be in
847 ``HG_TXNID``. The rest of the available data will vary according the
847 ``HG_TXNID``. The rest of the available data will vary according the
848 transaction type. New changesets will add ``$HG_NODE`` (id of the
848 transaction type. New changesets will add ``$HG_NODE`` (id of the
849 first added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables,
849 first added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables,
850 bookmarks and phases changes will set ``HG_BOOKMARK_MOVED`` and
850 bookmarks and phases changes will set ``HG_BOOKMARK_MOVED`` and
851 ``HG_PHASES_MOVED`` to ``1``, etc.
851 ``HG_PHASES_MOVED`` to ``1``, etc.
852
852
853 ``txnclose``
853 ``txnclose``
854 Run after any repository transaction has been committed. At this
854 Run after any repository transaction has been committed. At this
855 point, the transaction can no longer be rolled back. The hook will run
855 point, the transaction can no longer be rolled back. The hook will run
856 after the lock is released. See :hg:`help config.pretxnclose` docs for
856 after the lock is released. See :hg:`help config.pretxnclose` docs for
857 details about available variables.
857 details about available variables.
858
858
859 ``txnabort``
859 ``txnabort``
860 Run when a transaction is aborted. See :hg:`help config.pretxnclose`
860 Run when a transaction is aborted. See :hg:`help config.pretxnclose`
861 docs for details about available variables.
861 docs for details about available variables.
862
862
863 ``pretxnchangegroup``
863 ``pretxnchangegroup``
864 Run after a changegroup has been added via push, pull or unbundle,
864 Run after a changegroup has been added via push, pull or unbundle,
865 but before the transaction has been committed. Changegroup is
865 but before the transaction has been committed. Changegroup is
866 visible to hook program. This lets you validate incoming changes
866 visible to hook program. This lets you validate incoming changes
867 before accepting them. Passed the ID of the first new changeset in
867 before accepting them. Passed the ID of the first new changeset in
868 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
868 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
869 status will cause the transaction to be rolled back and the push,
869 status will cause the transaction to be rolled back and the push,
870 pull or unbundle will fail. URL that was source of changes is in
870 pull or unbundle will fail. URL that was source of changes is in
871 ``$HG_URL``.
871 ``$HG_URL``.
872
872
873 ``pretxncommit``
873 ``pretxncommit``
874 Run after a changeset has been created but the transaction not yet
874 Run after a changeset has been created but the transaction not yet
875 committed. Changeset is visible to hook program. This lets you
875 committed. Changeset is visible to hook program. This lets you
876 validate commit message and changes. Exit status 0 allows the
876 validate commit message and changes. Exit status 0 allows the
877 commit to proceed. Non-zero status will cause the transaction to
877 commit to proceed. Non-zero status will cause the transaction to
878 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
878 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
879 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
879 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
880
880
881 ``preupdate``
881 ``preupdate``
882 Run before updating the working directory. Exit status 0 allows
882 Run before updating the working directory. Exit status 0 allows
883 the update to proceed. Non-zero status will prevent the update.
883 the update to proceed. Non-zero status will prevent the update.
884 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
884 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
885 of second new parent is in ``$HG_PARENT2``.
885 of second new parent is in ``$HG_PARENT2``.
886
886
887 ``listkeys``
887 ``listkeys``
888 Run after listing pushkeys (like bookmarks) in the repository. The
888 Run after listing pushkeys (like bookmarks) in the repository. The
889 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
889 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
890 dictionary containing the keys and values.
890 dictionary containing the keys and values.
891
891
892 ``pushkey``
892 ``pushkey``
893 Run after a pushkey (like a bookmark) is added to the
893 Run after a pushkey (like a bookmark) is added to the
894 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
894 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
895 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
895 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
896 value is in ``$HG_NEW``.
896 value is in ``$HG_NEW``.
897
897
898 ``tag``
898 ``tag``
899 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
899 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
900 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
900 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
901 repository if ``$HG_LOCAL=0``.
901 repository if ``$HG_LOCAL=0``.
902
902
903 ``update``
903 ``update``
904 Run after updating the working directory. Changeset ID of first
904 Run after updating the working directory. Changeset ID of first
905 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
905 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
906 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
906 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
907 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
907 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
908
908
909 .. note::
909 .. note::
910
910
911 It is generally better to use standard hooks rather than the
911 It is generally better to use standard hooks rather than the
912 generic pre- and post- command hooks as they are guaranteed to be
912 generic pre- and post- command hooks as they are guaranteed to be
913 called in the appropriate contexts for influencing transactions.
913 called in the appropriate contexts for influencing transactions.
914 Also, hooks like "commit" will be called in all contexts that
914 Also, hooks like "commit" will be called in all contexts that
915 generate a commit (e.g. tag) and not just the commit command.
915 generate a commit (e.g. tag) and not just the commit command.
916
916
917 .. note::
917 .. note::
918
918
919 Environment variables with empty values may not be passed to
919 Environment variables with empty values may not be passed to
920 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
920 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
921 will have an empty value under Unix-like platforms for non-merge
921 will have an empty value under Unix-like platforms for non-merge
922 changesets, while it will not be available at all under Windows.
922 changesets, while it will not be available at all under Windows.
923
923
924 The syntax for Python hooks is as follows::
924 The syntax for Python hooks is as follows::
925
925
926 hookname = python:modulename.submodule.callable
926 hookname = python:modulename.submodule.callable
927 hookname = python:/path/to/python/module.py:callable
927 hookname = python:/path/to/python/module.py:callable
928
928
929 Python hooks are run within the Mercurial process. Each hook is
929 Python hooks are run within the Mercurial process. Each hook is
930 called with at least three keyword arguments: a ui object (keyword
930 called with at least three keyword arguments: a ui object (keyword
931 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
931 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
932 keyword that tells what kind of hook is used. Arguments listed as
932 keyword that tells what kind of hook is used. Arguments listed as
933 environment variables above are passed as keyword arguments, with no
933 environment variables above are passed as keyword arguments, with no
934 ``HG_`` prefix, and names in lower case.
934 ``HG_`` prefix, and names in lower case.
935
935
936 If a Python hook returns a "true" value or raises an exception, this
936 If a Python hook returns a "true" value or raises an exception, this
937 is treated as a failure.
937 is treated as a failure.
938
938
939
939
940 ``hostfingerprints``
940 ``hostfingerprints``
941 --------------------
941 --------------------
942
942
943 Fingerprints of the certificates of known HTTPS servers.
943 Fingerprints of the certificates of known HTTPS servers.
944 A HTTPS connection to a server with a fingerprint configured here will
944 A HTTPS connection to a server with a fingerprint configured here will
945 only succeed if the servers certificate matches the fingerprint.
945 only succeed if the servers certificate matches the fingerprint.
946 This is very similar to how ssh known hosts works.
946 This is very similar to how ssh known hosts works.
947 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
947 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
948 The CA chain and web.cacerts is not used for servers with a fingerprint.
948 The CA chain and web.cacerts is not used for servers with a fingerprint.
949
949
950 For example::
950 For example::
951
951
952 [hostfingerprints]
952 [hostfingerprints]
953 hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
953 hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
954
954
955 This feature is only supported when using Python 2.6 or later.
955 This feature is only supported when using Python 2.6 or later.
956
956
957
957
958 ``http_proxy``
958 ``http_proxy``
959 --------------
959 --------------
960
960
961 Used to access web-based Mercurial repositories through a HTTP
961 Used to access web-based Mercurial repositories through a HTTP
962 proxy.
962 proxy.
963
963
964 ``host``
964 ``host``
965 Host name and (optional) port of the proxy server, for example
965 Host name and (optional) port of the proxy server, for example
966 "myproxy:8000".
966 "myproxy:8000".
967
967
968 ``no``
968 ``no``
969 Optional. Comma-separated list of host names that should bypass
969 Optional. Comma-separated list of host names that should bypass
970 the proxy.
970 the proxy.
971
971
972 ``passwd``
972 ``passwd``
973 Optional. Password to authenticate with at the proxy server.
973 Optional. Password to authenticate with at the proxy server.
974
974
975 ``user``
975 ``user``
976 Optional. User name to authenticate with at the proxy server.
976 Optional. User name to authenticate with at the proxy server.
977
977
978 ``always``
978 ``always``
979 Optional. Always use the proxy, even for localhost and any entries
979 Optional. Always use the proxy, even for localhost and any entries
980 in ``http_proxy.no``. (default: False)
980 in ``http_proxy.no``. (default: False)
981
981
982 ``merge-patterns``
982 ``merge-patterns``
983 ------------------
983 ------------------
984
984
985 This section specifies merge tools to associate with particular file
985 This section specifies merge tools to associate with particular file
986 patterns. Tools matched here will take precedence over the default
986 patterns. Tools matched here will take precedence over the default
987 merge tool. Patterns are globs by default, rooted at the repository
987 merge tool. Patterns are globs by default, rooted at the repository
988 root.
988 root.
989
989
990 Example::
990 Example::
991
991
992 [merge-patterns]
992 [merge-patterns]
993 **.c = kdiff3
993 **.c = kdiff3
994 **.jpg = myimgmerge
994 **.jpg = myimgmerge
995
995
996 ``merge-tools``
996 ``merge-tools``
997 ---------------
997 ---------------
998
998
999 This section configures external merge tools to use for file-level
999 This section configures external merge tools to use for file-level
1000 merges. This section has likely been preconfigured at install time.
1000 merges. This section has likely been preconfigured at install time.
1001 Use :hg:`config merge-tools` to check the existing configuration.
1001 Use :hg:`config merge-tools` to check the existing configuration.
1002 Also see :hg:`help merge-tools` for more details.
1002 Also see :hg:`help merge-tools` for more details.
1003
1003
1004 Example ``~/.hgrc``::
1004 Example ``~/.hgrc``::
1005
1005
1006 [merge-tools]
1006 [merge-tools]
1007 # Override stock tool location
1007 # Override stock tool location
1008 kdiff3.executable = ~/bin/kdiff3
1008 kdiff3.executable = ~/bin/kdiff3
1009 # Specify command line
1009 # Specify command line
1010 kdiff3.args = $base $local $other -o $output
1010 kdiff3.args = $base $local $other -o $output
1011 # Give higher priority
1011 # Give higher priority
1012 kdiff3.priority = 1
1012 kdiff3.priority = 1
1013
1013
1014 # Changing the priority of preconfigured tool
1014 # Changing the priority of preconfigured tool
1015 meld.priority = 0
1015 meld.priority = 0
1016
1016
1017 # Disable a preconfigured tool
1017 # Disable a preconfigured tool
1018 vimdiff.disabled = yes
1018 vimdiff.disabled = yes
1019
1019
1020 # Define new tool
1020 # Define new tool
1021 myHtmlTool.args = -m $local $other $base $output
1021 myHtmlTool.args = -m $local $other $base $output
1022 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1022 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1023 myHtmlTool.priority = 1
1023 myHtmlTool.priority = 1
1024
1024
1025 Supported arguments:
1025 Supported arguments:
1026
1026
1027 ``priority``
1027 ``priority``
1028 The priority in which to evaluate this tool.
1028 The priority in which to evaluate this tool.
1029 (default: 0)
1029 (default: 0)
1030
1030
1031 ``executable``
1031 ``executable``
1032 Either just the name of the executable or its pathname. On Windows,
1032 Either just the name of the executable or its pathname. On Windows,
1033 the path can use environment variables with ${ProgramFiles} syntax.
1033 the path can use environment variables with ${ProgramFiles} syntax.
1034 (default: the tool name)
1034 (default: the tool name)
1035
1035
1036 ``args``
1036 ``args``
1037 The arguments to pass to the tool executable. You can refer to the
1037 The arguments to pass to the tool executable. You can refer to the
1038 files being merged as well as the output file through these
1038 files being merged as well as the output file through these
1039 variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning
1039 variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning
1040 of ``$local`` and ``$other`` can vary depending on which action is being
1040 of ``$local`` and ``$other`` can vary depending on which action is being
1041 performed. During and update or merge, ``$local`` represents the original
1041 performed. During and update or merge, ``$local`` represents the original
1042 state of the file, while ``$other`` represents the commit you are updating
1042 state of the file, while ``$other`` represents the commit you are updating
1043 to or the commit you are merging with. During a rebase ``$local``
1043 to or the commit you are merging with. During a rebase ``$local``
1044 represents the destination of the rebase, and ``$other`` represents the
1044 represents the destination of the rebase, and ``$other`` represents the
1045 commit being rebased.
1045 commit being rebased.
1046 (default: ``$local $base $other``)
1046 (default: ``$local $base $other``)
1047
1047
1048 ``premerge``
1048 ``premerge``
1049 Attempt to run internal non-interactive 3-way merge tool before
1049 Attempt to run internal non-interactive 3-way merge tool before
1050 launching external tool. Options are ``true``, ``false``, ``keep`` or
1050 launching external tool. Options are ``true``, ``false``, ``keep`` or
1051 ``keep-merge3``. The ``keep`` option will leave markers in the file if the
1051 ``keep-merge3``. The ``keep`` option will leave markers in the file if the
1052 premerge fails. The ``keep-merge3`` will do the same but include information
1052 premerge fails. The ``keep-merge3`` will do the same but include information
1053 about the base of the merge in the marker (see internal :merge3 in
1053 about the base of the merge in the marker (see internal :merge3 in
1054 :hg:`help merge-tools`).
1054 :hg:`help merge-tools`).
1055 (default: True)
1055 (default: True)
1056
1056
1057 ``binary``
1057 ``binary``
1058 This tool can merge binary files. (default: False, unless tool
1058 This tool can merge binary files. (default: False, unless tool
1059 was selected by file pattern match)
1059 was selected by file pattern match)
1060
1060
1061 ``symlink``
1061 ``symlink``
1062 This tool can merge symlinks. (default: False)
1062 This tool can merge symlinks. (default: False)
1063
1063
1064 ``check``
1064 ``check``
1065 A list of merge success-checking options:
1065 A list of merge success-checking options:
1066
1066
1067 ``changed``
1067 ``changed``
1068 Ask whether merge was successful when the merged file shows no changes.
1068 Ask whether merge was successful when the merged file shows no changes.
1069 ``conflicts``
1069 ``conflicts``
1070 Check whether there are conflicts even though the tool reported success.
1070 Check whether there are conflicts even though the tool reported success.
1071 ``prompt``
1071 ``prompt``
1072 Always prompt for merge success, regardless of success reported by tool.
1072 Always prompt for merge success, regardless of success reported by tool.
1073
1073
1074 ``fixeol``
1074 ``fixeol``
1075 Attempt to fix up EOL changes caused by the merge tool.
1075 Attempt to fix up EOL changes caused by the merge tool.
1076 (default: False)
1076 (default: False)
1077
1077
1078 ``gui``
1078 ``gui``
1079 This tool requires a graphical interface to run. (default: False)
1079 This tool requires a graphical interface to run. (default: False)
1080
1080
1081 ``regkey``
1081 ``regkey``
1082 Windows registry key which describes install location of this
1082 Windows registry key which describes install location of this
1083 tool. Mercurial will search for this key first under
1083 tool. Mercurial will search for this key first under
1084 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1084 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1085 (default: None)
1085 (default: None)
1086
1086
1087 ``regkeyalt``
1087 ``regkeyalt``
1088 An alternate Windows registry key to try if the first key is not
1088 An alternate Windows registry key to try if the first key is not
1089 found. The alternate key uses the same ``regname`` and ``regappend``
1089 found. The alternate key uses the same ``regname`` and ``regappend``
1090 semantics of the primary key. The most common use for this key
1090 semantics of the primary key. The most common use for this key
1091 is to search for 32bit applications on 64bit operating systems.
1091 is to search for 32bit applications on 64bit operating systems.
1092 (default: None)
1092 (default: None)
1093
1093
1094 ``regname``
1094 ``regname``
1095 Name of value to read from specified registry key.
1095 Name of value to read from specified registry key.
1096 (default: the unnamed (default) value)
1096 (default: the unnamed (default) value)
1097
1097
1098 ``regappend``
1098 ``regappend``
1099 String to append to the value read from the registry, typically
1099 String to append to the value read from the registry, typically
1100 the executable name of the tool.
1100 the executable name of the tool.
1101 (default: None)
1101 (default: None)
1102
1102
1103
1103
1104 ``patch``
1104 ``patch``
1105 ---------
1105 ---------
1106
1106
1107 Settings used when applying patches, for instance through the 'import'
1107 Settings used when applying patches, for instance through the 'import'
1108 command or with Mercurial Queues extension.
1108 command or with Mercurial Queues extension.
1109
1109
1110 ``eol``
1110 ``eol``
1111 When set to 'strict' patch content and patched files end of lines
1111 When set to 'strict' patch content and patched files end of lines
1112 are preserved. When set to ``lf`` or ``crlf``, both files end of
1112 are preserved. When set to ``lf`` or ``crlf``, both files end of
1113 lines are ignored when patching and the result line endings are
1113 lines are ignored when patching and the result line endings are
1114 normalized to either LF (Unix) or CRLF (Windows). When set to
1114 normalized to either LF (Unix) or CRLF (Windows). When set to
1115 ``auto``, end of lines are again ignored while patching but line
1115 ``auto``, end of lines are again ignored while patching but line
1116 endings in patched files are normalized to their original setting
1116 endings in patched files are normalized to their original setting
1117 on a per-file basis. If target file does not exist or has no end
1117 on a per-file basis. If target file does not exist or has no end
1118 of line, patch line endings are preserved.
1118 of line, patch line endings are preserved.
1119 (default: strict)
1119 (default: strict)
1120
1120
1121 ``fuzz``
1121 ``fuzz``
1122 The number of lines of 'fuzz' to allow when applying patches. This
1122 The number of lines of 'fuzz' to allow when applying patches. This
1123 controls how much context the patcher is allowed to ignore when
1123 controls how much context the patcher is allowed to ignore when
1124 trying to apply a patch.
1124 trying to apply a patch.
1125 (default: 2)
1125 (default: 2)
1126
1126
1127 ``paths``
1127 ``paths``
1128 ---------
1128 ---------
1129
1129
1130 Assigns symbolic names and behavior to repositories.
1130 Assigns symbolic names and behavior to repositories.
1131
1131
1132 Options are symbolic names defining the URL or directory that is the
1132 Options are symbolic names defining the URL or directory that is the
1133 location of the repository. Example::
1133 location of the repository. Example::
1134
1134
1135 [paths]
1135 [paths]
1136 my_server = https://example.com/my_repo
1136 my_server = https://example.com/my_repo
1137 local_path = /home/me/repo
1137 local_path = /home/me/repo
1138
1138
1139 These symbolic names can be used from the command line. To pull
1139 These symbolic names can be used from the command line. To pull
1140 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1140 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1141 :hg:`push local_path`.
1141 :hg:`push local_path`.
1142
1142
1143 Options containing colons (``:``) denote sub-options that can influence
1143 Options containing colons (``:``) denote sub-options that can influence
1144 behavior for that specific path. Example::
1144 behavior for that specific path. Example::
1145
1145
1146 [paths]
1146 [paths]
1147 my_server = https://example.com/my_path
1147 my_server = https://example.com/my_path
1148 my_server:pushurl = ssh://example.com/my_path
1148 my_server:pushurl = ssh://example.com/my_path
1149
1149
1150 The following sub-options can be defined:
1150 The following sub-options can be defined:
1151
1151
1152 ``pushurl``
1152 ``pushurl``
1153 The URL to use for push operations. If not defined, the location
1153 The URL to use for push operations. If not defined, the location
1154 defined by the path's main entry is used.
1154 defined by the path's main entry is used.
1155
1155
1156 The following special named paths exist:
1156 The following special named paths exist:
1157
1157
1158 ``default``
1158 ``default``
1159 The URL or directory to use when no source or remote is specified.
1159 The URL or directory to use when no source or remote is specified.
1160
1160
1161 :hg:`clone` will automatically define this path to the location the
1161 :hg:`clone` will automatically define this path to the location the
1162 repository was cloned from.
1162 repository was cloned from.
1163
1163
1164 ``default-push``
1164 ``default-push``
1165 (deprecated) The URL or directory for the default :hg:`push` location.
1165 (deprecated) The URL or directory for the default :hg:`push` location.
1166 ``default:pushurl`` should be used instead.
1166 ``default:pushurl`` should be used instead.
1167
1167
1168 ``phases``
1168 ``phases``
1169 ----------
1169 ----------
1170
1170
1171 Specifies default handling of phases. See :hg:`help phases` for more
1171 Specifies default handling of phases. See :hg:`help phases` for more
1172 information about working with phases.
1172 information about working with phases.
1173
1173
1174 ``publish``
1174 ``publish``
1175 Controls draft phase behavior when working as a server. When true,
1175 Controls draft phase behavior when working as a server. When true,
1176 pushed changesets are set to public in both client and server and
1176 pushed changesets are set to public in both client and server and
1177 pulled or cloned changesets are set to public in the client.
1177 pulled or cloned changesets are set to public in the client.
1178 (default: True)
1178 (default: True)
1179
1179
1180 ``new-commit``
1180 ``new-commit``
1181 Phase of newly-created commits.
1181 Phase of newly-created commits.
1182 (default: draft)
1182 (default: draft)
1183
1183
1184 ``checksubrepos``
1184 ``checksubrepos``
1185 Check the phase of the current revision of each subrepository. Allowed
1185 Check the phase of the current revision of each subrepository. Allowed
1186 values are "ignore", "follow" and "abort". For settings other than
1186 values are "ignore", "follow" and "abort". For settings other than
1187 "ignore", the phase of the current revision of each subrepository is
1187 "ignore", the phase of the current revision of each subrepository is
1188 checked before committing the parent repository. If any of those phases is
1188 checked before committing the parent repository. If any of those phases is
1189 greater than the phase of the parent repository (e.g. if a subrepo is in a
1189 greater than the phase of the parent repository (e.g. if a subrepo is in a
1190 "secret" phase while the parent repo is in "draft" phase), the commit is
1190 "secret" phase while the parent repo is in "draft" phase), the commit is
1191 either aborted (if checksubrepos is set to "abort") or the higher phase is
1191 either aborted (if checksubrepos is set to "abort") or the higher phase is
1192 used for the parent repository commit (if set to "follow").
1192 used for the parent repository commit (if set to "follow").
1193 (default: follow)
1193 (default: follow)
1194
1194
1195
1195
1196 ``profiling``
1196 ``profiling``
1197 -------------
1197 -------------
1198
1198
1199 Specifies profiling type, format, and file output. Two profilers are
1199 Specifies profiling type, format, and file output. Two profilers are
1200 supported: an instrumenting profiler (named ``ls``), and a sampling
1200 supported: an instrumenting profiler (named ``ls``), and a sampling
1201 profiler (named ``stat``).
1201 profiler (named ``stat``).
1202
1202
1203 In this section description, 'profiling data' stands for the raw data
1203 In this section description, 'profiling data' stands for the raw data
1204 collected during profiling, while 'profiling report' stands for a
1204 collected during profiling, while 'profiling report' stands for a
1205 statistical text report generated from the profiling data. The
1205 statistical text report generated from the profiling data. The
1206 profiling is done using lsprof.
1206 profiling is done using lsprof.
1207
1207
1208 ``type``
1208 ``type``
1209 The type of profiler to use.
1209 The type of profiler to use.
1210 (default: ls)
1210 (default: ls)
1211
1211
1212 ``ls``
1212 ``ls``
1213 Use Python's built-in instrumenting profiler. This profiler
1213 Use Python's built-in instrumenting profiler. This profiler
1214 works on all platforms, but each line number it reports is the
1214 works on all platforms, but each line number it reports is the
1215 first line of a function. This restriction makes it difficult to
1215 first line of a function. This restriction makes it difficult to
1216 identify the expensive parts of a non-trivial function.
1216 identify the expensive parts of a non-trivial function.
1217 ``stat``
1217 ``stat``
1218 Use a third-party statistical profiler, statprof. This profiler
1218 Use a third-party statistical profiler, statprof. This profiler
1219 currently runs only on Unix systems, and is most useful for
1219 currently runs only on Unix systems, and is most useful for
1220 profiling commands that run for longer than about 0.1 seconds.
1220 profiling commands that run for longer than about 0.1 seconds.
1221
1221
1222 ``format``
1222 ``format``
1223 Profiling format. Specific to the ``ls`` instrumenting profiler.
1223 Profiling format. Specific to the ``ls`` instrumenting profiler.
1224 (default: text)
1224 (default: text)
1225
1225
1226 ``text``
1226 ``text``
1227 Generate a profiling report. When saving to a file, it should be
1227 Generate a profiling report. When saving to a file, it should be
1228 noted that only the report is saved, and the profiling data is
1228 noted that only the report is saved, and the profiling data is
1229 not kept.
1229 not kept.
1230 ``kcachegrind``
1230 ``kcachegrind``
1231 Format profiling data for kcachegrind use: when saving to a
1231 Format profiling data for kcachegrind use: when saving to a
1232 file, the generated file can directly be loaded into
1232 file, the generated file can directly be loaded into
1233 kcachegrind.
1233 kcachegrind.
1234
1234
1235 ``frequency``
1235 ``frequency``
1236 Sampling frequency. Specific to the ``stat`` sampling profiler.
1236 Sampling frequency. Specific to the ``stat`` sampling profiler.
1237 (default: 1000)
1237 (default: 1000)
1238
1238
1239 ``output``
1239 ``output``
1240 File path where profiling data or report should be saved. If the
1240 File path where profiling data or report should be saved. If the
1241 file exists, it is replaced. (default: None, data is printed on
1241 file exists, it is replaced. (default: None, data is printed on
1242 stderr)
1242 stderr)
1243
1243
1244 ``sort``
1244 ``sort``
1245 Sort field. Specific to the ``ls`` instrumenting profiler.
1245 Sort field. Specific to the ``ls`` instrumenting profiler.
1246 One of ``callcount``, ``reccallcount``, ``totaltime`` and
1246 One of ``callcount``, ``reccallcount``, ``totaltime`` and
1247 ``inlinetime``.
1247 ``inlinetime``.
1248 (default: inlinetime)
1248 (default: inlinetime)
1249
1249
1250 ``limit``
1250 ``limit``
1251 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
1251 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
1252 (default: 30)
1252 (default: 30)
1253
1253
1254 ``nested``
1254 ``nested``
1255 Show at most this number of lines of drill-down info after each main entry.
1255 Show at most this number of lines of drill-down info after each main entry.
1256 This can help explain the difference between Total and Inline.
1256 This can help explain the difference between Total and Inline.
1257 Specific to the ``ls`` instrumenting profiler.
1257 Specific to the ``ls`` instrumenting profiler.
1258 (default: 5)
1258 (default: 5)
1259
1259
1260 ``progress``
1260 ``progress``
1261 ------------
1261 ------------
1262
1262
1263 Mercurial commands can draw progress bars that are as informative as
1263 Mercurial commands can draw progress bars that are as informative as
1264 possible. Some progress bars only offer indeterminate information, while others
1264 possible. Some progress bars only offer indeterminate information, while others
1265 have a definite end point.
1265 have a definite end point.
1266
1266
1267 ``delay``
1267 ``delay``
1268 Number of seconds (float) before showing the progress bar. (default: 3)
1268 Number of seconds (float) before showing the progress bar. (default: 3)
1269
1269
1270 ``changedelay``
1270 ``changedelay``
1271 Minimum delay before showing a new topic. When set to less than 3 * refresh,
1271 Minimum delay before showing a new topic. When set to less than 3 * refresh,
1272 that value will be used instead. (default: 1)
1272 that value will be used instead. (default: 1)
1273
1273
1274 ``refresh``
1274 ``refresh``
1275 Time in seconds between refreshes of the progress bar. (default: 0.1)
1275 Time in seconds between refreshes of the progress bar. (default: 0.1)
1276
1276
1277 ``format``
1277 ``format``
1278 Format of the progress bar.
1278 Format of the progress bar.
1279
1279
1280 Valid entries for the format field are ``topic``, ``bar``, ``number``,
1280 Valid entries for the format field are ``topic``, ``bar``, ``number``,
1281 ``unit``, ``estimate``, speed, and item. item defaults to the last 20
1281 ``unit``, ``estimate``, speed, and item. item defaults to the last 20
1282 characters of the item, but this can be changed by adding either ``-<num>``
1282 characters of the item, but this can be changed by adding either ``-<num>``
1283 which would take the last num characters, or ``+<num>`` for the first num
1283 which would take the last num characters, or ``+<num>`` for the first num
1284 characters.
1284 characters.
1285
1285
1286 (default: Topic bar number estimate)
1286 (default: Topic bar number estimate)
1287
1287
1288 ``width``
1288 ``width``
1289 If set, the maximum width of the progress information (that is, min(width,
1289 If set, the maximum width of the progress information (that is, min(width,
1290 term width) will be used).
1290 term width) will be used).
1291
1291
1292 ``clear-complete``
1292 ``clear-complete``
1293 Clear the progress bar after it's done. (default: True)
1293 Clear the progress bar after it's done. (default: True)
1294
1294
1295 ``disable``
1295 ``disable``
1296 If true, don't show a progress bar.
1296 If true, don't show a progress bar.
1297
1297
1298 ``assume-tty``
1298 ``assume-tty``
1299 If true, ALWAYS show a progress bar, unless disable is given.
1299 If true, ALWAYS show a progress bar, unless disable is given.
1300
1300
1301 ``revsetalias``
1301 ``revsetalias``
1302 ---------------
1302 ---------------
1303
1303
1304 Alias definitions for revsets. See :hg:`help revsets` for details.
1304 Alias definitions for revsets. See :hg:`help revsets` for details.
1305
1305
1306 ``server``
1306 ``server``
1307 ----------
1307 ----------
1308
1308
1309 Controls generic server settings.
1309 Controls generic server settings.
1310
1310
1311 ``uncompressed``
1311 ``uncompressed``
1312 Whether to allow clients to clone a repository using the
1312 Whether to allow clients to clone a repository using the
1313 uncompressed streaming protocol. This transfers about 40% more
1313 uncompressed streaming protocol. This transfers about 40% more
1314 data than a regular clone, but uses less memory and CPU on both
1314 data than a regular clone, but uses less memory and CPU on both
1315 server and client. Over a LAN (100 Mbps or better) or a very fast
1315 server and client. Over a LAN (100 Mbps or better) or a very fast
1316 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1316 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1317 regular clone. Over most WAN connections (anything slower than
1317 regular clone. Over most WAN connections (anything slower than
1318 about 6 Mbps), uncompressed streaming is slower, because of the
1318 about 6 Mbps), uncompressed streaming is slower, because of the
1319 extra data transfer overhead. This mode will also temporarily hold
1319 extra data transfer overhead. This mode will also temporarily hold
1320 the write lock while determining what data to transfer.
1320 the write lock while determining what data to transfer.
1321 (default: True)
1321 (default: True)
1322
1322
1323 ``preferuncompressed``
1323 ``preferuncompressed``
1324 When set, clients will try to use the uncompressed streaming
1324 When set, clients will try to use the uncompressed streaming
1325 protocol. (default: False)
1325 protocol. (default: False)
1326
1326
1327 ``validate``
1327 ``validate``
1328 Whether to validate the completeness of pushed changesets by
1328 Whether to validate the completeness of pushed changesets by
1329 checking that all new file revisions specified in manifests are
1329 checking that all new file revisions specified in manifests are
1330 present. (default: False)
1330 present. (default: False)
1331
1331
1332 ``maxhttpheaderlen``
1332 ``maxhttpheaderlen``
1333 Instruct HTTP clients not to send request headers longer than this
1333 Instruct HTTP clients not to send request headers longer than this
1334 many bytes. (default: 1024)
1334 many bytes. (default: 1024)
1335
1335
1336 ``bundle1``
1336 ``bundle1``
1337 Whether to allow clients to push and pull using the legacy bundle1
1337 Whether to allow clients to push and pull using the legacy bundle1
1338 exchange format. (default: True)
1338 exchange format. (default: True)
1339
1339
1340 ``bundle1.push``
1340 ``bundle1.push``
1341 Whether to allow clients to push using the legacy bundle1 exchange
1341 Whether to allow clients to push using the legacy bundle1 exchange
1342 format. (default: True)
1342 format. (default: True)
1343
1343
1344 ``bundle1.pull``
1344 ``bundle1.pull``
1345 Whether to allow clients to pull using the legacy bundle1 exchange
1345 Whether to allow clients to pull using the legacy bundle1 exchange
1346 format. (default: True)
1346 format. (default: True)
1347
1347
1348 Large repositories using the *generaldelta* storage format should
1348 Large repositories using the *generaldelta* storage format should
1349 consider setting this option because converting *generaldelta*
1349 consider setting this option because converting *generaldelta*
1350 repositories to the exchange format required by the bundle1 data
1350 repositories to the exchange format required by the bundle1 data
1351 format can consume a lot of CPU.
1351 format can consume a lot of CPU.
1352
1352
1353 ``smtp``
1353 ``smtp``
1354 --------
1354 --------
1355
1355
1356 Configuration for extensions that need to send email messages.
1356 Configuration for extensions that need to send email messages.
1357
1357
1358 ``host``
1358 ``host``
1359 Host name of mail server, e.g. "mail.example.com".
1359 Host name of mail server, e.g. "mail.example.com".
1360
1360
1361 ``port``
1361 ``port``
1362 Optional. Port to connect to on mail server. (default: 465 if
1362 Optional. Port to connect to on mail server. (default: 465 if
1363 ``tls`` is smtps; 25 otherwise)
1363 ``tls`` is smtps; 25 otherwise)
1364
1364
1365 ``tls``
1365 ``tls``
1366 Optional. Method to enable TLS when connecting to mail server: starttls,
1366 Optional. Method to enable TLS when connecting to mail server: starttls,
1367 smtps or none. (default: none)
1367 smtps or none. (default: none)
1368
1368
1369 ``verifycert``
1369 ``verifycert``
1370 Optional. Verification for the certificate of mail server, when
1370 Optional. Verification for the certificate of mail server, when
1371 ``tls`` is starttls or smtps. "strict", "loose" or False. For
1371 ``tls`` is starttls or smtps. "strict", "loose" or False. For
1372 "strict" or "loose", the certificate is verified as same as the
1372 "strict" or "loose", the certificate is verified as same as the
1373 verification for HTTPS connections (see ``[hostfingerprints]`` and
1373 verification for HTTPS connections (see ``[hostfingerprints]`` and
1374 ``[web] cacerts`` also). For "strict", sending email is also
1374 ``[web] cacerts`` also). For "strict", sending email is also
1375 aborted, if there is no configuration for mail server in
1375 aborted, if there is no configuration for mail server in
1376 ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
1376 ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
1377 :hg:`email` overwrites this as "loose". (default: strict)
1377 :hg:`email` overwrites this as "loose". (default: strict)
1378
1378
1379 ``username``
1379 ``username``
1380 Optional. User name for authenticating with the SMTP server.
1380 Optional. User name for authenticating with the SMTP server.
1381 (default: None)
1381 (default: None)
1382
1382
1383 ``password``
1383 ``password``
1384 Optional. Password for authenticating with the SMTP server. If not
1384 Optional. Password for authenticating with the SMTP server. If not
1385 specified, interactive sessions will prompt the user for a
1385 specified, interactive sessions will prompt the user for a
1386 password; non-interactive sessions will fail. (default: None)
1386 password; non-interactive sessions will fail. (default: None)
1387
1387
1388 ``local_hostname``
1388 ``local_hostname``
1389 Optional. The hostname that the sender can use to identify
1389 Optional. The hostname that the sender can use to identify
1390 itself to the MTA.
1390 itself to the MTA.
1391
1391
1392
1392
1393 ``subpaths``
1393 ``subpaths``
1394 ------------
1394 ------------
1395
1395
1396 Subrepository source URLs can go stale if a remote server changes name
1396 Subrepository source URLs can go stale if a remote server changes name
1397 or becomes temporarily unavailable. This section lets you define
1397 or becomes temporarily unavailable. This section lets you define
1398 rewrite rules of the form::
1398 rewrite rules of the form::
1399
1399
1400 <pattern> = <replacement>
1400 <pattern> = <replacement>
1401
1401
1402 where ``pattern`` is a regular expression matching a subrepository
1402 where ``pattern`` is a regular expression matching a subrepository
1403 source URL and ``replacement`` is the replacement string used to
1403 source URL and ``replacement`` is the replacement string used to
1404 rewrite it. Groups can be matched in ``pattern`` and referenced in
1404 rewrite it. Groups can be matched in ``pattern`` and referenced in
1405 ``replacements``. For instance::
1405 ``replacements``. For instance::
1406
1406
1407 http://server/(.*)-hg/ = http://hg.server/\1/
1407 http://server/(.*)-hg/ = http://hg.server/\1/
1408
1408
1409 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1409 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1410
1410
1411 Relative subrepository paths are first made absolute, and the
1411 Relative subrepository paths are first made absolute, and the
1412 rewrite rules are then applied on the full (absolute) path. The rules
1412 rewrite rules are then applied on the full (absolute) path. The rules
1413 are applied in definition order.
1413 are applied in definition order.
1414
1414
1415 ``trusted``
1415 ``trusted``
1416 -----------
1416 -----------
1417
1417
1418 Mercurial will not use the settings in the
1418 Mercurial will not use the settings in the
1419 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1419 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1420 user or to a trusted group, as various hgrc features allow arbitrary
1420 user or to a trusted group, as various hgrc features allow arbitrary
1421 commands to be run. This issue is often encountered when configuring
1421 commands to be run. This issue is often encountered when configuring
1422 hooks or extensions for shared repositories or servers. However,
1422 hooks or extensions for shared repositories or servers. However,
1423 the web interface will use some safe settings from the ``[web]``
1423 the web interface will use some safe settings from the ``[web]``
1424 section.
1424 section.
1425
1425
1426 This section specifies what users and groups are trusted. The
1426 This section specifies what users and groups are trusted. The
1427 current user is always trusted. To trust everybody, list a user or a
1427 current user is always trusted. To trust everybody, list a user or a
1428 group with name ``*``. These settings must be placed in an
1428 group with name ``*``. These settings must be placed in an
1429 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1429 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1430 user or service running Mercurial.
1430 user or service running Mercurial.
1431
1431
1432 ``users``
1432 ``users``
1433 Comma-separated list of trusted users.
1433 Comma-separated list of trusted users.
1434
1434
1435 ``groups``
1435 ``groups``
1436 Comma-separated list of trusted groups.
1436 Comma-separated list of trusted groups.
1437
1437
1438
1438
1439 ``ui``
1439 ``ui``
1440 ------
1440 ------
1441
1441
1442 User interface controls.
1442 User interface controls.
1443
1443
1444 ``archivemeta``
1444 ``archivemeta``
1445 Whether to include the .hg_archival.txt file containing meta data
1445 Whether to include the .hg_archival.txt file containing meta data
1446 (hashes for the repository base and for tip) in archives created
1446 (hashes for the repository base and for tip) in archives created
1447 by the :hg:`archive` command or downloaded via hgweb.
1447 by the :hg:`archive` command or downloaded via hgweb.
1448 (default: True)
1448 (default: True)
1449
1449
1450 ``askusername``
1450 ``askusername``
1451 Whether to prompt for a username when committing. If True, and
1451 Whether to prompt for a username when committing. If True, and
1452 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1452 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1453 be prompted to enter a username. If no username is entered, the
1453 be prompted to enter a username. If no username is entered, the
1454 default ``USER@HOST`` is used instead.
1454 default ``USER@HOST`` is used instead.
1455 (default: False)
1455 (default: False)
1456
1456
1457 ``clonebundlefallback``
1457 ``clonebundlefallback``
1458 Whether failure to apply an advertised "clone bundle" from a server
1458 Whether failure to apply an advertised "clone bundle" from a server
1459 should result in fallback to a regular clone.
1459 should result in fallback to a regular clone.
1460
1460
1461 This is disabled by default because servers advertising "clone
1461 This is disabled by default because servers advertising "clone
1462 bundles" often do so to reduce server load. If advertised bundles
1462 bundles" often do so to reduce server load. If advertised bundles
1463 start mass failing and clients automatically fall back to a regular
1463 start mass failing and clients automatically fall back to a regular
1464 clone, this would add significant and unexpected load to the server
1464 clone, this would add significant and unexpected load to the server
1465 since the server is expecting clone operations to be offloaded to
1465 since the server is expecting clone operations to be offloaded to
1466 pre-generated bundles. Failing fast (the default behavior) ensures
1466 pre-generated bundles. Failing fast (the default behavior) ensures
1467 clients don't overwhelm the server when "clone bundle" application
1467 clients don't overwhelm the server when "clone bundle" application
1468 fails.
1468 fails.
1469
1469
1470 (default: False)
1470 (default: False)
1471
1471
1472 ``commitsubrepos``
1472 ``commitsubrepos``
1473 Whether to commit modified subrepositories when committing the
1473 Whether to commit modified subrepositories when committing the
1474 parent repository. If False and one subrepository has uncommitted
1474 parent repository. If False and one subrepository has uncommitted
1475 changes, abort the commit.
1475 changes, abort the commit.
1476 (default: False)
1476 (default: False)
1477
1477
1478 ``debug``
1478 ``debug``
1479 Print debugging information. (default: False)
1479 Print debugging information. (default: False)
1480
1480
1481 ``editor``
1481 ``editor``
1482 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
1482 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
1483
1483
1484 ``fallbackencoding``
1484 ``fallbackencoding``
1485 Encoding to try if it's not possible to decode the changelog using
1485 Encoding to try if it's not possible to decode the changelog using
1486 UTF-8. (default: ISO-8859-1)
1486 UTF-8. (default: ISO-8859-1)
1487
1487
1488 ``graphnodetemplate``
1488 ``graphnodetemplate``
1489 The template used to print changeset nodes in an ASCII revision graph.
1489 The template used to print changeset nodes in an ASCII revision graph.
1490 (default: ``{graphnode}``)
1490 (default: ``{graphnode}``)
1491
1491
1492 ``ignore``
1492 ``ignore``
1493 A file to read per-user ignore patterns from. This file should be
1493 A file to read per-user ignore patterns from. This file should be
1494 in the same format as a repository-wide .hgignore file. Filenames
1494 in the same format as a repository-wide .hgignore file. Filenames
1495 are relative to the repository root. This option supports hook syntax,
1495 are relative to the repository root. This option supports hook syntax,
1496 so if you want to specify multiple ignore files, you can do so by
1496 so if you want to specify multiple ignore files, you can do so by
1497 setting something like ``ignore.other = ~/.hgignore2``. For details
1497 setting something like ``ignore.other = ~/.hgignore2``. For details
1498 of the ignore file format, see the ``hgignore(5)`` man page.
1498 of the ignore file format, see the ``hgignore(5)`` man page.
1499
1499
1500 ``interactive``
1500 ``interactive``
1501 Allow to prompt the user. (default: True)
1501 Allow to prompt the user. (default: True)
1502
1502
1503 ``logtemplate``
1503 ``logtemplate``
1504 Template string for commands that print changesets.
1504 Template string for commands that print changesets.
1505
1505
1506 ``merge``
1506 ``merge``
1507 The conflict resolution program to use during a manual merge.
1507 The conflict resolution program to use during a manual merge.
1508 For more information on merge tools see :hg:`help merge-tools`.
1508 For more information on merge tools see :hg:`help merge-tools`.
1509 For configuring merge tools see the ``[merge-tools]`` section.
1509 For configuring merge tools see the ``[merge-tools]`` section.
1510
1510
1511 ``mergemarkers``
1511 ``mergemarkers``
1512 Sets the merge conflict marker label styling. The ``detailed``
1512 Sets the merge conflict marker label styling. The ``detailed``
1513 style uses the ``mergemarkertemplate`` setting to style the labels.
1513 style uses the ``mergemarkertemplate`` setting to style the labels.
1514 The ``basic`` style just uses 'local' and 'other' as the marker label.
1514 The ``basic`` style just uses 'local' and 'other' as the marker label.
1515 One of ``basic`` or ``detailed``.
1515 One of ``basic`` or ``detailed``.
1516 (default: ``basic``)
1516 (default: ``basic``)
1517
1517
1518 ``mergemarkertemplate``
1518 ``mergemarkertemplate``
1519 The template used to print the commit description next to each conflict
1519 The template used to print the commit description next to each conflict
1520 marker during merge conflicts. See :hg:`help templates` for the template
1520 marker during merge conflicts. See :hg:`help templates` for the template
1521 format.
1521 format.
1522
1522
1523 Defaults to showing the hash, tags, branches, bookmarks, author, and
1523 Defaults to showing the hash, tags, branches, bookmarks, author, and
1524 the first line of the commit description.
1524 the first line of the commit description.
1525
1525
1526 If you use non-ASCII characters in names for tags, branches, bookmarks,
1526 If you use non-ASCII characters in names for tags, branches, bookmarks,
1527 authors, and/or commit descriptions, you must pay attention to encodings of
1527 authors, and/or commit descriptions, you must pay attention to encodings of
1528 managed files. At template expansion, non-ASCII characters use the encoding
1528 managed files. At template expansion, non-ASCII characters use the encoding
1529 specified by the ``--encoding`` global option, ``HGENCODING`` or other
1529 specified by the ``--encoding`` global option, ``HGENCODING`` or other
1530 environment variables that govern your locale. If the encoding of the merge
1530 environment variables that govern your locale. If the encoding of the merge
1531 markers is different from the encoding of the merged files,
1531 markers is different from the encoding of the merged files,
1532 serious problems may occur.
1532 serious problems may occur.
1533
1533
1534 ``origbackuppath``
1534 ``origbackuppath``
1535 The path to a directory used to store generated .orig files. If the path is
1535 The path to a directory used to store generated .orig files. If the path is
1536 not a directory, one will be created.
1536 not a directory, one will be created.
1537
1537
1538 ``patch``
1538 ``patch``
1539 An optional external tool that ``hg import`` and some extensions
1539 An optional external tool that ``hg import`` and some extensions
1540 will use for applying patches. By default Mercurial uses an
1540 will use for applying patches. By default Mercurial uses an
1541 internal patch utility. The external tool must work as the common
1541 internal patch utility. The external tool must work as the common
1542 Unix ``patch`` program. In particular, it must accept a ``-p``
1542 Unix ``patch`` program. In particular, it must accept a ``-p``
1543 argument to strip patch headers, a ``-d`` argument to specify the
1543 argument to strip patch headers, a ``-d`` argument to specify the
1544 current directory, a file name to patch, and a patch file to take
1544 current directory, a file name to patch, and a patch file to take
1545 from stdin.
1545 from stdin.
1546
1546
1547 It is possible to specify a patch tool together with extra
1547 It is possible to specify a patch tool together with extra
1548 arguments. For example, setting this option to ``patch --merge``
1548 arguments. For example, setting this option to ``patch --merge``
1549 will use the ``patch`` program with its 2-way merge option.
1549 will use the ``patch`` program with its 2-way merge option.
1550
1550
1551 ``portablefilenames``
1551 ``portablefilenames``
1552 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1552 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1553 (default: ``warn``)
1553 (default: ``warn``)
1554 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1554 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1555 platforms, if a file with a non-portable filename is added (e.g. a file
1555 platforms, if a file with a non-portable filename is added (e.g. a file
1556 with a name that can't be created on Windows because it contains reserved
1556 with a name that can't be created on Windows because it contains reserved
1557 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1557 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1558 collision with an existing file).
1558 collision with an existing file).
1559 If set to ``ignore`` (or ``false``), no warning is printed.
1559 If set to ``ignore`` (or ``false``), no warning is printed.
1560 If set to ``abort``, the command is aborted.
1560 If set to ``abort``, the command is aborted.
1561 On Windows, this configuration option is ignored and the command aborted.
1561 On Windows, this configuration option is ignored and the command aborted.
1562
1562
1563 ``quiet``
1563 ``quiet``
1564 Reduce the amount of output printed. (default: False)
1564 Reduce the amount of output printed. (default: False)
1565
1565
1566 ``remotecmd``
1566 ``remotecmd``
1567 Remote command to use for clone/push/pull operations. (default: ``hg``)
1567 Remote command to use for clone/push/pull operations. (default: ``hg``)
1568
1568
1569 ``report_untrusted``
1569 ``report_untrusted``
1570 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1570 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1571 trusted user or group. (default: True)
1571 trusted user or group. (default: True)
1572
1572
1573 ``slash``
1573 ``slash``
1574 Display paths using a slash (``/``) as the path separator. This
1574 Display paths using a slash (``/``) as the path separator. This
1575 only makes a difference on systems where the default path
1575 only makes a difference on systems where the default path
1576 separator is not the slash character (e.g. Windows uses the
1576 separator is not the slash character (e.g. Windows uses the
1577 backslash character (``\``)).
1577 backslash character (``\``)).
1578 (default: False)
1578 (default: False)
1579
1579
1580 ``statuscopies``
1580 ``statuscopies``
1581 Display copies in the status command.
1581 Display copies in the status command.
1582
1582
1583 ``ssh``
1583 ``ssh``
1584 Command to use for SSH connections. (default: ``ssh``)
1584 Command to use for SSH connections. (default: ``ssh``)
1585
1585
1586 ``strict``
1586 ``strict``
1587 Require exact command names, instead of allowing unambiguous
1587 Require exact command names, instead of allowing unambiguous
1588 abbreviations. (default: False)
1588 abbreviations. (default: False)
1589
1589
1590 ``style``
1590 ``style``
1591 Name of style to use for command output.
1591 Name of style to use for command output.
1592
1592
1593 ``supportcontact``
1593 ``supportcontact``
1594 A URL where users should report a Mercurial traceback. Use this if you are a
1594 A URL where users should report a Mercurial traceback. Use this if you are a
1595 large organisation with its own Mercurial deployment process and crash
1595 large organisation with its own Mercurial deployment process and crash
1596 reports should be addressed to your internal support.
1596 reports should be addressed to your internal support.
1597
1597
1598 ``timeout``
1598 ``timeout``
1599 The timeout used when a lock is held (in seconds), a negative value
1599 The timeout used when a lock is held (in seconds), a negative value
1600 means no timeout. (default: 600)
1600 means no timeout. (default: 600)
1601
1601
1602 ``traceback``
1602 ``traceback``
1603 Mercurial always prints a traceback when an unknown exception
1603 Mercurial always prints a traceback when an unknown exception
1604 occurs. Setting this to True will make Mercurial print a traceback
1604 occurs. Setting this to True will make Mercurial print a traceback
1605 on all exceptions, even those recognized by Mercurial (such as
1605 on all exceptions, even those recognized by Mercurial (such as
1606 IOError or MemoryError). (default: False)
1606 IOError or MemoryError). (default: False)
1607
1607
1608 ``username``
1608 ``username``
1609 The committer of a changeset created when running "commit".
1609 The committer of a changeset created when running "commit".
1610 Typically a person's name and email address, e.g. ``Fred Widget
1610 Typically a person's name and email address, e.g. ``Fred Widget
1611 <fred@example.com>``. Environment variables in the
1611 <fred@example.com>``. Environment variables in the
1612 username are expanded.
1612 username are expanded.
1613
1613
1614 (default: ``$EMAIL`` or ``username@hostname``. If the username in
1614 (default: ``$EMAIL`` or ``username@hostname``. If the username in
1615 hgrc is empty, e.g. if the system admin set ``username =`` in the
1615 hgrc is empty, e.g. if the system admin set ``username =`` in the
1616 system hgrc, it has to be specified manually or in a different
1616 system hgrc, it has to be specified manually or in a different
1617 hgrc file)
1617 hgrc file)
1618
1618
1619 ``verbose``
1619 ``verbose``
1620 Increase the amount of output printed. (default: False)
1620 Increase the amount of output printed. (default: False)
1621
1621
1622
1622
1623 ``web``
1623 ``web``
1624 -------
1624 -------
1625
1625
1626 Web interface configuration. The settings in this section apply to
1626 Web interface configuration. The settings in this section apply to
1627 both the builtin webserver (started by :hg:`serve`) and the script you
1627 both the builtin webserver (started by :hg:`serve`) and the script you
1628 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1628 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1629 and WSGI).
1629 and WSGI).
1630
1630
1631 The Mercurial webserver does no authentication (it does not prompt for
1631 The Mercurial webserver does no authentication (it does not prompt for
1632 usernames and passwords to validate *who* users are), but it does do
1632 usernames and passwords to validate *who* users are), but it does do
1633 authorization (it grants or denies access for *authenticated users*
1633 authorization (it grants or denies access for *authenticated users*
1634 based on settings in this section). You must either configure your
1634 based on settings in this section). You must either configure your
1635 webserver to do authentication for you, or disable the authorization
1635 webserver to do authentication for you, or disable the authorization
1636 checks.
1636 checks.
1637
1637
1638 For a quick setup in a trusted environment, e.g., a private LAN, where
1638 For a quick setup in a trusted environment, e.g., a private LAN, where
1639 you want it to accept pushes from anybody, you can use the following
1639 you want it to accept pushes from anybody, you can use the following
1640 command line::
1640 command line::
1641
1641
1642 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1642 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1643
1643
1644 Note that this will allow anybody to push anything to the server and
1644 Note that this will allow anybody to push anything to the server and
1645 that this should not be used for public servers.
1645 that this should not be used for public servers.
1646
1646
1647 The full set of options is:
1647 The full set of options is:
1648
1648
1649 ``accesslog``
1649 ``accesslog``
1650 Where to output the access log. (default: stdout)
1650 Where to output the access log. (default: stdout)
1651
1651
1652 ``address``
1652 ``address``
1653 Interface address to bind to. (default: all)
1653 Interface address to bind to. (default: all)
1654
1654
1655 ``allow_archive``
1655 ``allow_archive``
1656 List of archive format (bz2, gz, zip) allowed for downloading.
1656 List of archive format (bz2, gz, zip) allowed for downloading.
1657 (default: empty)
1657 (default: empty)
1658
1658
1659 ``allowbz2``
1659 ``allowbz2``
1660 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1660 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1661 revisions.
1661 revisions.
1662 (default: False)
1662 (default: False)
1663
1663
1664 ``allowgz``
1664 ``allowgz``
1665 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1665 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1666 revisions.
1666 revisions.
1667 (default: False)
1667 (default: False)
1668
1668
1669 ``allowpull``
1669 ``allowpull``
1670 Whether to allow pulling from the repository. (default: True)
1670 Whether to allow pulling from the repository. (default: True)
1671
1671
1672 ``allow_push``
1672 ``allow_push``
1673 Whether to allow pushing to the repository. If empty or not set,
1673 Whether to allow pushing to the repository. If empty or not set,
1674 pushing is not allowed. If the special value ``*``, any remote
1674 pushing is not allowed. If the special value ``*``, any remote
1675 user can push, including unauthenticated users. Otherwise, the
1675 user can push, including unauthenticated users. Otherwise, the
1676 remote user must have been authenticated, and the authenticated
1676 remote user must have been authenticated, and the authenticated
1677 user name must be present in this list. The contents of the
1677 user name must be present in this list. The contents of the
1678 allow_push list are examined after the deny_push list.
1678 allow_push list are examined after the deny_push list.
1679
1679
1680 ``allow_read``
1680 ``allow_read``
1681 If the user has not already been denied repository access due to
1681 If the user has not already been denied repository access due to
1682 the contents of deny_read, this list determines whether to grant
1682 the contents of deny_read, this list determines whether to grant
1683 repository access to the user. If this list is not empty, and the
1683 repository access to the user. If this list is not empty, and the
1684 user is unauthenticated or not present in the list, then access is
1684 user is unauthenticated or not present in the list, then access is
1685 denied for the user. If the list is empty or not set, then access
1685 denied for the user. If the list is empty or not set, then access
1686 is permitted to all users by default. Setting allow_read to the
1686 is permitted to all users by default. Setting allow_read to the
1687 special value ``*`` is equivalent to it not being set (i.e. access
1687 special value ``*`` is equivalent to it not being set (i.e. access
1688 is permitted to all users). The contents of the allow_read list are
1688 is permitted to all users). The contents of the allow_read list are
1689 examined after the deny_read list.
1689 examined after the deny_read list.
1690
1690
1691 ``allowzip``
1691 ``allowzip``
1692 (DEPRECATED) Whether to allow .zip downloading of repository
1692 (DEPRECATED) Whether to allow .zip downloading of repository
1693 revisions. This feature creates temporary files.
1693 revisions. This feature creates temporary files.
1694 (default: False)
1694 (default: False)
1695
1695
1696 ``archivesubrepos``
1696 ``archivesubrepos``
1697 Whether to recurse into subrepositories when archiving.
1697 Whether to recurse into subrepositories when archiving.
1698 (default: False)
1698 (default: False)
1699
1699
1700 ``baseurl``
1700 ``baseurl``
1701 Base URL to use when publishing URLs in other locations, so
1701 Base URL to use when publishing URLs in other locations, so
1702 third-party tools like email notification hooks can construct
1702 third-party tools like email notification hooks can construct
1703 URLs. Example: ``http://hgserver/repos/``.
1703 URLs. Example: ``http://hgserver/repos/``.
1704
1704
1705 ``cacerts``
1705 ``cacerts``
1706 Path to file containing a list of PEM encoded certificate
1706 Path to file containing a list of PEM encoded certificate
1707 authority certificates. Environment variables and ``~user``
1707 authority certificates. Environment variables and ``~user``
1708 constructs are expanded in the filename. If specified on the
1708 constructs are expanded in the filename. If specified on the
1709 client, then it will verify the identity of remote HTTPS servers
1709 client, then it will verify the identity of remote HTTPS servers
1710 with these certificates.
1710 with these certificates.
1711
1711
1712 This feature is only supported when using Python 2.6 or later. If you wish
1712 This feature is only supported when using Python 2.6 or later. If you wish
1713 to use it with earlier versions of Python, install the backported
1713 to use it with earlier versions of Python, install the backported
1714 version of the ssl library that is available from
1714 version of the ssl library that is available from
1715 ``http://pypi.python.org``.
1715 ``http://pypi.python.org``.
1716
1716
1717 To disable SSL verification temporarily, specify ``--insecure`` from
1717 To disable SSL verification temporarily, specify ``--insecure`` from
1718 command line.
1718 command line.
1719
1719
1720 You can use OpenSSL's CA certificate file if your platform has
1720 You can use OpenSSL's CA certificate file if your platform has
1721 one. On most Linux systems this will be
1721 one. On most Linux systems this will be
1722 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
1722 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
1723 generate this file manually. The form must be as follows::
1723 generate this file manually. The form must be as follows::
1724
1724
1725 -----BEGIN CERTIFICATE-----
1725 -----BEGIN CERTIFICATE-----
1726 ... (certificate in base64 PEM encoding) ...
1726 ... (certificate in base64 PEM encoding) ...
1727 -----END CERTIFICATE-----
1727 -----END CERTIFICATE-----
1728 -----BEGIN CERTIFICATE-----
1728 -----BEGIN CERTIFICATE-----
1729 ... (certificate in base64 PEM encoding) ...
1729 ... (certificate in base64 PEM encoding) ...
1730 -----END CERTIFICATE-----
1730 -----END CERTIFICATE-----
1731
1731
1732 ``cache``
1732 ``cache``
1733 Whether to support caching in hgweb. (default: True)
1733 Whether to support caching in hgweb. (default: True)
1734
1734
1735 ``certificate``
1735 ``certificate``
1736 Certificate to use when running :hg:`serve`.
1736 Certificate to use when running :hg:`serve`.
1737
1737
1738 ``collapse``
1738 ``collapse``
1739 With ``descend`` enabled, repositories in subdirectories are shown at
1739 With ``descend`` enabled, repositories in subdirectories are shown at
1740 a single level alongside repositories in the current path. With
1740 a single level alongside repositories in the current path. With
1741 ``collapse`` also enabled, repositories residing at a deeper level than
1741 ``collapse`` also enabled, repositories residing at a deeper level than
1742 the current path are grouped behind navigable directory entries that
1742 the current path are grouped behind navigable directory entries that
1743 lead to the locations of these repositories. In effect, this setting
1743 lead to the locations of these repositories. In effect, this setting
1744 collapses each collection of repositories found within a subdirectory
1744 collapses each collection of repositories found within a subdirectory
1745 into a single entry for that subdirectory. (default: False)
1745 into a single entry for that subdirectory. (default: False)
1746
1746
1747 ``comparisoncontext``
1747 ``comparisoncontext``
1748 Number of lines of context to show in side-by-side file comparison. If
1748 Number of lines of context to show in side-by-side file comparison. If
1749 negative or the value ``full``, whole files are shown. (default: 5)
1749 negative or the value ``full``, whole files are shown. (default: 5)
1750
1750
1751 This setting can be overridden by a ``context`` request parameter to the
1751 This setting can be overridden by a ``context`` request parameter to the
1752 ``comparison`` command, taking the same values.
1752 ``comparison`` command, taking the same values.
1753
1753
1754 ``contact``
1754 ``contact``
1755 Name or email address of the person in charge of the repository.
1755 Name or email address of the person in charge of the repository.
1756 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
1756 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
1757
1757
1758 ``deny_push``
1758 ``deny_push``
1759 Whether to deny pushing to the repository. If empty or not set,
1759 Whether to deny pushing to the repository. If empty or not set,
1760 push is not denied. If the special value ``*``, all remote users are
1760 push is not denied. If the special value ``*``, all remote users are
1761 denied push. Otherwise, unauthenticated users are all denied, and
1761 denied push. Otherwise, unauthenticated users are all denied, and
1762 any authenticated user name present in this list is also denied. The
1762 any authenticated user name present in this list is also denied. The
1763 contents of the deny_push list are examined before the allow_push list.
1763 contents of the deny_push list are examined before the allow_push list.
1764
1764
1765 ``deny_read``
1765 ``deny_read``
1766 Whether to deny reading/viewing of the repository. If this list is
1766 Whether to deny reading/viewing of the repository. If this list is
1767 not empty, unauthenticated users are all denied, and any
1767 not empty, unauthenticated users are all denied, and any
1768 authenticated user name present in this list is also denied access to
1768 authenticated user name present in this list is also denied access to
1769 the repository. If set to the special value ``*``, all remote users
1769 the repository. If set to the special value ``*``, all remote users
1770 are denied access (rarely needed ;). If deny_read is empty or not set,
1770 are denied access (rarely needed ;). If deny_read is empty or not set,
1771 the determination of repository access depends on the presence and
1771 the determination of repository access depends on the presence and
1772 content of the allow_read list (see description). If both
1772 content of the allow_read list (see description). If both
1773 deny_read and allow_read are empty or not set, then access is
1773 deny_read and allow_read are empty or not set, then access is
1774 permitted to all users by default. If the repository is being
1774 permitted to all users by default. If the repository is being
1775 served via hgwebdir, denied users will not be able to see it in
1775 served via hgwebdir, denied users will not be able to see it in
1776 the list of repositories. The contents of the deny_read list have
1776 the list of repositories. The contents of the deny_read list have
1777 priority over (are examined before) the contents of the allow_read
1777 priority over (are examined before) the contents of the allow_read
1778 list.
1778 list.
1779
1779
1780 ``descend``
1780 ``descend``
1781 hgwebdir indexes will not descend into subdirectories. Only repositories
1781 hgwebdir indexes will not descend into subdirectories. Only repositories
1782 directly in the current path will be shown (other repositories are still
1782 directly in the current path will be shown (other repositories are still
1783 available from the index corresponding to their containing path).
1783 available from the index corresponding to their containing path).
1784
1784
1785 ``description``
1785 ``description``
1786 Textual description of the repository's purpose or contents.
1786 Textual description of the repository's purpose or contents.
1787 (default: "unknown")
1787 (default: "unknown")
1788
1788
1789 ``encoding``
1789 ``encoding``
1790 Character encoding name. (default: the current locale charset)
1790 Character encoding name. (default: the current locale charset)
1791 Example: "UTF-8".
1791 Example: "UTF-8".
1792
1792
1793 ``errorlog``
1793 ``errorlog``
1794 Where to output the error log. (default: stderr)
1794 Where to output the error log. (default: stderr)
1795
1795
1796 ``guessmime``
1796 ``guessmime``
1797 Control MIME types for raw download of file content.
1797 Control MIME types for raw download of file content.
1798 Set to True to let hgweb guess the content type from the file
1798 Set to True to let hgweb guess the content type from the file
1799 extension. This will serve HTML files as ``text/html`` and might
1799 extension. This will serve HTML files as ``text/html`` and might
1800 allow cross-site scripting attacks when serving untrusted
1800 allow cross-site scripting attacks when serving untrusted
1801 repositories. (default: False)
1801 repositories. (default: False)
1802
1802
1803 ``hidden``
1803 ``hidden``
1804 Whether to hide the repository in the hgwebdir index.
1804 Whether to hide the repository in the hgwebdir index.
1805 (default: False)
1805 (default: False)
1806
1806
1807 ``ipv6``
1807 ``ipv6``
1808 Whether to use IPv6. (default: False)
1808 Whether to use IPv6. (default: False)
1809
1809
1810 ``logoimg``
1810 ``logoimg``
1811 File name of the logo image that some templates display on each page.
1811 File name of the logo image that some templates display on each page.
1812 The file name is relative to ``staticurl``. That is, the full path to
1812 The file name is relative to ``staticurl``. That is, the full path to
1813 the logo image is "staticurl/logoimg".
1813 the logo image is "staticurl/logoimg".
1814 If unset, ``hglogo.png`` will be used.
1814 If unset, ``hglogo.png`` will be used.
1815
1815
1816 ``logourl``
1816 ``logourl``
1817 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
1817 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
1818 will be used.
1818 will be used.
1819
1819
1820 ``maxchanges``
1820 ``maxchanges``
1821 Maximum number of changes to list on the changelog. (default: 10)
1821 Maximum number of changes to list on the changelog. (default: 10)
1822
1822
1823 ``maxfiles``
1823 ``maxfiles``
1824 Maximum number of files to list per changeset. (default: 10)
1824 Maximum number of files to list per changeset. (default: 10)
1825
1825
1826 ``maxshortchanges``
1826 ``maxshortchanges``
1827 Maximum number of changes to list on the shortlog, graph or filelog
1827 Maximum number of changes to list on the shortlog, graph or filelog
1828 pages. (default: 60)
1828 pages. (default: 60)
1829
1829
1830 ``name``
1830 ``name``
1831 Repository name to use in the web interface.
1831 Repository name to use in the web interface.
1832 (default: current working directory)
1832 (default: current working directory)
1833
1833
1834 ``port``
1834 ``port``
1835 Port to listen on. (default: 8000)
1835 Port to listen on. (default: 8000)
1836
1836
1837 ``prefix``
1837 ``prefix``
1838 Prefix path to serve from. (default: '' (server root))
1838 Prefix path to serve from. (default: '' (server root))
1839
1839
1840 ``push_ssl``
1840 ``push_ssl``
1841 Whether to require that inbound pushes be transported over SSL to
1841 Whether to require that inbound pushes be transported over SSL to
1842 prevent password sniffing. (default: True)
1842 prevent password sniffing. (default: True)
1843
1843
1844 ``refreshinterval``
1844 ``refreshinterval``
1845 How frequently directory listings re-scan the filesystem for new
1845 How frequently directory listings re-scan the filesystem for new
1846 repositories, in seconds. This is relevant when wildcards are used
1846 repositories, in seconds. This is relevant when wildcards are used
1847 to define paths. Depending on how much filesystem traversal is
1847 to define paths. Depending on how much filesystem traversal is
1848 required, refreshing may negatively impact performance.
1848 required, refreshing may negatively impact performance.
1849
1849
1850 Values less than or equal to 0 always refresh.
1850 Values less than or equal to 0 always refresh.
1851 (default: 20)
1851 (default: 20)
1852
1852
1853 ``staticurl``
1853 ``staticurl``
1854 Base URL to use for static files. If unset, static files (e.g. the
1854 Base URL to use for static files. If unset, static files (e.g. the
1855 hgicon.png favicon) will be served by the CGI script itself. Use
1855 hgicon.png favicon) will be served by the CGI script itself. Use
1856 this setting to serve them directly with the HTTP server.
1856 this setting to serve them directly with the HTTP server.
1857 Example: ``http://hgserver/static/``.
1857 Example: ``http://hgserver/static/``.
1858
1858
1859 ``stripes``
1859 ``stripes``
1860 How many lines a "zebra stripe" should span in multi-line output.
1860 How many lines a "zebra stripe" should span in multi-line output.
1861 Set to 0 to disable. (default: 1)
1861 Set to 0 to disable. (default: 1)
1862
1862
1863 ``style``
1863 ``style``
1864 Which template map style to use. The available options are the names of
1864 Which template map style to use. The available options are the names of
1865 subdirectories in the HTML templates path. (default: ``paper``)
1865 subdirectories in the HTML templates path. (default: ``paper``)
1866 Example: ``monoblue``.
1866 Example: ``monoblue``.
1867
1867
1868 ``templates``
1868 ``templates``
1869 Where to find the HTML templates. The default path to the HTML templates
1869 Where to find the HTML templates. The default path to the HTML templates
1870 can be obtained from ``hg debuginstall``.
1870 can be obtained from ``hg debuginstall``.
1871
1871
1872 ``websub``
1872 ``websub``
1873 ----------
1873 ----------
1874
1874
1875 Web substitution filter definition. You can use this section to
1875 Web substitution filter definition. You can use this section to
1876 define a set of regular expression substitution patterns which
1876 define a set of regular expression substitution patterns which
1877 let you automatically modify the hgweb server output.
1877 let you automatically modify the hgweb server output.
1878
1878
1879 The default hgweb templates only apply these substitution patterns
1879 The default hgweb templates only apply these substitution patterns
1880 on the revision description fields. You can apply them anywhere
1880 on the revision description fields. You can apply them anywhere
1881 you want when you create your own templates by adding calls to the
1881 you want when you create your own templates by adding calls to the
1882 "websub" filter (usually after calling the "escape" filter).
1882 "websub" filter (usually after calling the "escape" filter).
1883
1883
1884 This can be used, for example, to convert issue references to links
1884 This can be used, for example, to convert issue references to links
1885 to your issue tracker, or to convert "markdown-like" syntax into
1885 to your issue tracker, or to convert "markdown-like" syntax into
1886 HTML (see the examples below).
1886 HTML (see the examples below).
1887
1887
1888 Each entry in this section names a substitution filter.
1888 Each entry in this section names a substitution filter.
1889 The value of each entry defines the substitution expression itself.
1889 The value of each entry defines the substitution expression itself.
1890 The websub expressions follow the old interhg extension syntax,
1890 The websub expressions follow the old interhg extension syntax,
1891 which in turn imitates the Unix sed replacement syntax::
1891 which in turn imitates the Unix sed replacement syntax::
1892
1892
1893 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
1893 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
1894
1894
1895 You can use any separator other than "/". The final "i" is optional
1895 You can use any separator other than "/". The final "i" is optional
1896 and indicates that the search must be case insensitive.
1896 and indicates that the search must be case insensitive.
1897
1897
1898 Examples::
1898 Examples::
1899
1899
1900 [websub]
1900 [websub]
1901 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
1901 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
1902 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
1902 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
1903 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
1903 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
1904
1904
1905 ``worker``
1905 ``worker``
1906 ----------
1906 ----------
1907
1907
1908 Parallel master/worker configuration. We currently perform working
1908 Parallel master/worker configuration. We currently perform working
1909 directory updates in parallel on Unix-like systems, which greatly
1909 directory updates in parallel on Unix-like systems, which greatly
1910 helps performance.
1910 helps performance.
1911
1911
1912 ``numcpus``
1912 ``numcpus``
1913 Number of CPUs to use for parallel operations. A zero or
1913 Number of CPUs to use for parallel operations. A zero or
1914 negative value is treated as ``use the default``.
1914 negative value is treated as ``use the default``.
1915 (default: 4 or the number of CPUs on the system, whichever is larger)
1915 (default: 4 or the number of CPUs on the system, whichever is larger)
General Comments 0
You need to be logged in to leave comments. Login now