##// END OF EJS Templates
help: fix quoting for bundle1 options
Gregory Szorc -
r27683:76fc5ac2 default
parent child Browse files
Show More
@@ -1,1948 +1,1948 b''
1 The Mercurial system uses a set of configuration files to control
1 The Mercurial system uses a set of configuration files to control
2 aspects of its behavior.
2 aspects of its behavior.
3
3
4 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 Structure
14 Structure
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.
673 improvement for repositories with branches.
674
674
675 Repositories with this on-disk format require Mercurial version 1.9.
675 Repositories with this on-disk format require Mercurial version 1.9.
676
676
677 Enabled by default.
677 Enabled by default.
678
678
679 ``dotencode``
679 ``dotencode``
680 Enable or disable the "dotencode" repository format which enhances
680 Enable or disable the "dotencode" repository format which enhances
681 the "fncache" repository format (which has to be enabled to use
681 the "fncache" repository format (which has to be enabled to use
682 dotencode) to avoid issues with filenames starting with ._ on
682 dotencode) to avoid issues with filenames starting with ._ on
683 Mac OS X and spaces on Windows.
683 Mac OS X and spaces on Windows.
684
684
685 Repositories with this on-disk format require Mercurial version 1.7.
685 Repositories with this on-disk format require Mercurial version 1.7.
686
686
687 Enabled by default.
687 Enabled by default.
688
688
689 ``usefncache``
689 ``usefncache``
690 Enable or disable the "fncache" repository format which enhances
690 Enable or disable the "fncache" repository format which enhances
691 the "store" repository format (which has to be enabled to use
691 the "store" repository format (which has to be enabled to use
692 fncache) to allow longer filenames and avoids using Windows
692 fncache) to allow longer filenames and avoids using Windows
693 reserved names, e.g. "nul".
693 reserved names, e.g. "nul".
694
694
695 Repositories with this on-disk format require Mercurial version 1.1.
695 Repositories with this on-disk format require Mercurial version 1.1.
696
696
697 Enabled by default.
697 Enabled by default.
698
698
699 ``usestore``
699 ``usestore``
700 Enable or disable the "store" repository format which improves
700 Enable or disable the "store" repository format which improves
701 compatibility with systems that fold case or otherwise mangle
701 compatibility with systems that fold case or otherwise mangle
702 filenames. Disabling this option will allow you to store longer filenames
702 filenames. Disabling this option will allow you to store longer filenames
703 in some situations at the expense of compatibility.
703 in some situations at the expense of compatibility.
704
704
705 Repositories with this on-disk format require Mercurial version 0.9.4.
705 Repositories with this on-disk format require Mercurial version 0.9.4.
706
706
707 Enabled by default.
707 Enabled by default.
708
708
709 ``graph``
709 ``graph``
710 ---------
710 ---------
711
711
712 Web graph view configuration. This section let you change graph
712 Web graph view configuration. This section let you change graph
713 elements display properties by branches, for instance to make the
713 elements display properties by branches, for instance to make the
714 ``default`` branch stand out.
714 ``default`` branch stand out.
715
715
716 Each line has the following format::
716 Each line has the following format::
717
717
718 <branch>.<argument> = <value>
718 <branch>.<argument> = <value>
719
719
720 where ``<branch>`` is the name of the branch being
720 where ``<branch>`` is the name of the branch being
721 customized. Example::
721 customized. Example::
722
722
723 [graph]
723 [graph]
724 # 2px width
724 # 2px width
725 default.width = 2
725 default.width = 2
726 # red color
726 # red color
727 default.color = FF0000
727 default.color = FF0000
728
728
729 Supported arguments:
729 Supported arguments:
730
730
731 ``width``
731 ``width``
732 Set branch edges width in pixels.
732 Set branch edges width in pixels.
733
733
734 ``color``
734 ``color``
735 Set branch edges color in hexadecimal RGB notation.
735 Set branch edges color in hexadecimal RGB notation.
736
736
737 ``hooks``
737 ``hooks``
738 ---------
738 ---------
739
739
740 Commands or Python functions that get automatically executed by
740 Commands or Python functions that get automatically executed by
741 various actions such as starting or finishing a commit. Multiple
741 various actions such as starting or finishing a commit. Multiple
742 hooks can be run for the same action by appending a suffix to the
742 hooks can be run for the same action by appending a suffix to the
743 action. Overriding a site-wide hook can be done by changing its
743 action. Overriding a site-wide hook can be done by changing its
744 value or setting it to an empty string. Hooks can be prioritized
744 value or setting it to an empty string. Hooks can be prioritized
745 by adding a prefix of ``priority.`` to the hook name on a new line
745 by adding a prefix of ``priority.`` to the hook name on a new line
746 and setting the priority. The default priority is 0.
746 and setting the priority. The default priority is 0.
747
747
748 Example ``.hg/hgrc``::
748 Example ``.hg/hgrc``::
749
749
750 [hooks]
750 [hooks]
751 # update working directory after adding changesets
751 # update working directory after adding changesets
752 changegroup.update = hg update
752 changegroup.update = hg update
753 # do not use the site-wide hook
753 # do not use the site-wide hook
754 incoming =
754 incoming =
755 incoming.email = /my/email/hook
755 incoming.email = /my/email/hook
756 incoming.autobuild = /my/build/hook
756 incoming.autobuild = /my/build/hook
757 # force autobuild hook to run before other incoming hooks
757 # force autobuild hook to run before other incoming hooks
758 priority.incoming.autobuild = 1
758 priority.incoming.autobuild = 1
759
759
760 Most hooks are run with environment variables set that give useful
760 Most hooks are run with environment variables set that give useful
761 additional information. For each hook below, the environment
761 additional information. For each hook below, the environment
762 variables it is passed are listed with names of the form ``$HG_foo``.
762 variables it is passed are listed with names of the form ``$HG_foo``.
763
763
764 ``changegroup``
764 ``changegroup``
765 Run after a changegroup has been added via push, pull or unbundle.
765 Run after a changegroup has been added via push, pull or unbundle.
766 ID of the first new changeset is in ``$HG_NODE``. URL from which
766 ID of the first new changeset is in ``$HG_NODE``. URL from which
767 changes came is in ``$HG_URL``.
767 changes came is in ``$HG_URL``.
768
768
769 ``commit``
769 ``commit``
770 Run after a changeset has been created in the local repository. ID
770 Run after a changeset has been created in the local repository. ID
771 of the newly created changeset is in ``$HG_NODE``. Parent changeset
771 of the newly created changeset is in ``$HG_NODE``. Parent changeset
772 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
772 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
773
773
774 ``incoming``
774 ``incoming``
775 Run after a changeset has been pulled, pushed, or unbundled into
775 Run after a changeset has been pulled, pushed, or unbundled into
776 the local repository. The ID of the newly arrived changeset is in
776 the local repository. The ID of the newly arrived changeset is in
777 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
777 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
778
778
779 ``outgoing``
779 ``outgoing``
780 Run after sending changes from local repository to another. ID of
780 Run after sending changes from local repository to another. ID of
781 first changeset sent is in ``$HG_NODE``. Source of operation is in
781 first changeset sent is in ``$HG_NODE``. Source of operation is in
782 ``$HG_SOURCE``; Also see :hg:`help config.preoutgoing` hook.
782 ``$HG_SOURCE``; Also see :hg:`help config.preoutgoing` hook.
783
783
784 ``post-<command>``
784 ``post-<command>``
785 Run after successful invocations of the associated command. The
785 Run after successful invocations of the associated command. The
786 contents of the command line are passed as ``$HG_ARGS`` and the result
786 contents of the command line are passed as ``$HG_ARGS`` and the result
787 code in ``$HG_RESULT``. Parsed command line arguments are passed as
787 code in ``$HG_RESULT``. Parsed command line arguments are passed as
788 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
788 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
789 the python data internally passed to <command>. ``$HG_OPTS`` is a
789 the python data internally passed to <command>. ``$HG_OPTS`` is a
790 dictionary of options (with unspecified options set to their defaults).
790 dictionary of options (with unspecified options set to their defaults).
791 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
791 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
792
792
793 ``pre-<command>``
793 ``pre-<command>``
794 Run before executing the associated command. The contents of the
794 Run before executing the associated command. The contents of the
795 command line are passed as ``$HG_ARGS``. Parsed command line arguments
795 command line are passed as ``$HG_ARGS``. Parsed command line arguments
796 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
796 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
797 representations of the data internally passed to <command>. ``$HG_OPTS``
797 representations of the data internally passed to <command>. ``$HG_OPTS``
798 is a dictionary of options (with unspecified options set to their
798 is a dictionary of options (with unspecified options set to their
799 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
799 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
800 failure, the command doesn't execute and Mercurial returns the failure
800 failure, the command doesn't execute and Mercurial returns the failure
801 code.
801 code.
802
802
803 ``prechangegroup``
803 ``prechangegroup``
804 Run before a changegroup is added via push, pull or unbundle. Exit
804 Run before a changegroup is added via push, pull or unbundle. Exit
805 status 0 allows the changegroup to proceed. Non-zero status will
805 status 0 allows the changegroup to proceed. Non-zero status will
806 cause the push, pull or unbundle to fail. URL from which changes
806 cause the push, pull or unbundle to fail. URL from which changes
807 will come is in ``$HG_URL``.
807 will come is in ``$HG_URL``.
808
808
809 ``precommit``
809 ``precommit``
810 Run before starting a local commit. Exit status 0 allows the
810 Run before starting a local commit. Exit status 0 allows the
811 commit to proceed. Non-zero status will cause the commit to fail.
811 commit to proceed. Non-zero status will cause the commit to fail.
812 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
812 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
813
813
814 ``prelistkeys``
814 ``prelistkeys``
815 Run before listing pushkeys (like bookmarks) in the
815 Run before listing pushkeys (like bookmarks) in the
816 repository. Non-zero status will cause failure. The key namespace is
816 repository. Non-zero status will cause failure. The key namespace is
817 in ``$HG_NAMESPACE``.
817 in ``$HG_NAMESPACE``.
818
818
819 ``preoutgoing``
819 ``preoutgoing``
820 Run before collecting changes to send from the local repository to
820 Run before collecting changes to send from the local repository to
821 another. Non-zero status will cause failure. This lets you prevent
821 another. Non-zero status will cause failure. This lets you prevent
822 pull over HTTP or SSH. Also prevents against local pull, push
822 pull over HTTP or SSH. Also prevents against local pull, push
823 (outbound) or bundle commands, but not effective, since you can
823 (outbound) or bundle commands, but not effective, since you can
824 just copy files instead then. Source of operation is in
824 just copy files instead then. Source of operation is in
825 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
825 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
826 SSH or HTTP repository. If "push", "pull" or "bundle", operation
826 SSH or HTTP repository. If "push", "pull" or "bundle", operation
827 is happening on behalf of repository on same system.
827 is happening on behalf of repository on same system.
828
828
829 ``prepushkey``
829 ``prepushkey``
830 Run before a pushkey (like a bookmark) is added to the
830 Run before a pushkey (like a bookmark) is added to the
831 repository. Non-zero status will cause the key to be rejected. The
831 repository. Non-zero status will cause the key to be rejected. The
832 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
832 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
833 the old value (if any) is in ``$HG_OLD``, and the new value is in
833 the old value (if any) is in ``$HG_OLD``, and the new value is in
834 ``$HG_NEW``.
834 ``$HG_NEW``.
835
835
836 ``pretag``
836 ``pretag``
837 Run before creating a tag. Exit status 0 allows the tag to be
837 Run before creating a tag. Exit status 0 allows the tag to be
838 created. Non-zero status will cause the tag to fail. ID of
838 created. Non-zero status will cause the tag to fail. ID of
839 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
839 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
840 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
840 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
841
841
842 ``pretxnopen``
842 ``pretxnopen``
843 Run before any new repository transaction is open. The reason for the
843 Run before any new repository transaction is open. The reason for the
844 transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
844 transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
845 transaction will be in ``HG_TXNID``. A non-zero status will prevent the
845 transaction will be in ``HG_TXNID``. A non-zero status will prevent the
846 transaction from being opened.
846 transaction from being opened.
847
847
848 ``pretxnclose``
848 ``pretxnclose``
849 Run right before the transaction is actually finalized. Any
849 Run right before the transaction is actually finalized. Any
850 repository change will be visible to the hook program. This lets you
850 repository change will be visible to the hook program. This lets you
851 validate the transaction content or change it. Exit status 0 allows
851 validate the transaction content or change it. Exit status 0 allows
852 the commit to proceed. Non-zero status will cause the transaction to
852 the commit to proceed. Non-zero status will cause the transaction to
853 be rolled back. The reason for the transaction opening will be in
853 be rolled back. The reason for the transaction opening will be in
854 ``$HG_TXNNAME`` and a unique identifier for the transaction will be in
854 ``$HG_TXNNAME`` and a unique identifier for the transaction will be in
855 ``HG_TXNID``. The rest of the available data will vary according the
855 ``HG_TXNID``. The rest of the available data will vary according the
856 transaction type. New changesets will add ``$HG_NODE`` (id of the
856 transaction type. New changesets will add ``$HG_NODE`` (id of the
857 first added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables,
857 first added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables,
858 bookmarks and phases changes will set ``HG_BOOKMARK_MOVED`` and
858 bookmarks and phases changes will set ``HG_BOOKMARK_MOVED`` and
859 ``HG_PHASES_MOVED`` to ``1``, etc.
859 ``HG_PHASES_MOVED`` to ``1``, etc.
860
860
861 ``txnclose``
861 ``txnclose``
862 Run after any repository transaction has been committed. At this
862 Run after any repository transaction has been committed. At this
863 point, the transaction can no longer be rolled back. The hook will run
863 point, the transaction can no longer be rolled back. The hook will run
864 after the lock is released. See :hg:`help config.pretxnclose` docs for
864 after the lock is released. See :hg:`help config.pretxnclose` docs for
865 details about available variables.
865 details about available variables.
866
866
867 ``txnabort``
867 ``txnabort``
868 Run when a transaction is aborted. See :hg:`help config.pretxnclose`
868 Run when a transaction is aborted. See :hg:`help config.pretxnclose`
869 docs for details about available variables.
869 docs for details about available variables.
870
870
871 ``pretxnchangegroup``
871 ``pretxnchangegroup``
872 Run after a changegroup has been added via push, pull or unbundle,
872 Run after a changegroup has been added via push, pull or unbundle,
873 but before the transaction has been committed. Changegroup is
873 but before the transaction has been committed. Changegroup is
874 visible to hook program. This lets you validate incoming changes
874 visible to hook program. This lets you validate incoming changes
875 before accepting them. Passed the ID of the first new changeset in
875 before accepting them. Passed the ID of the first new changeset in
876 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
876 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
877 status will cause the transaction to be rolled back and the push,
877 status will cause the transaction to be rolled back and the push,
878 pull or unbundle will fail. URL that was source of changes is in
878 pull or unbundle will fail. URL that was source of changes is in
879 ``$HG_URL``.
879 ``$HG_URL``.
880
880
881 ``pretxncommit``
881 ``pretxncommit``
882 Run after a changeset has been created but the transaction not yet
882 Run after a changeset has been created but the transaction not yet
883 committed. Changeset is visible to hook program. This lets you
883 committed. Changeset is visible to hook program. This lets you
884 validate commit message and changes. Exit status 0 allows the
884 validate commit message and changes. Exit status 0 allows the
885 commit to proceed. Non-zero status will cause the transaction to
885 commit to proceed. Non-zero status will cause the transaction to
886 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
886 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
887 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
887 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
888
888
889 ``preupdate``
889 ``preupdate``
890 Run before updating the working directory. Exit status 0 allows
890 Run before updating the working directory. Exit status 0 allows
891 the update to proceed. Non-zero status will prevent the update.
891 the update to proceed. Non-zero status will prevent the update.
892 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
892 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
893 of second new parent is in ``$HG_PARENT2``.
893 of second new parent is in ``$HG_PARENT2``.
894
894
895 ``listkeys``
895 ``listkeys``
896 Run after listing pushkeys (like bookmarks) in the repository. The
896 Run after listing pushkeys (like bookmarks) in the repository. The
897 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
897 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
898 dictionary containing the keys and values.
898 dictionary containing the keys and values.
899
899
900 ``pushkey``
900 ``pushkey``
901 Run after a pushkey (like a bookmark) is added to the
901 Run after a pushkey (like a bookmark) is added to the
902 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
902 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
903 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
903 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
904 value is in ``$HG_NEW``.
904 value is in ``$HG_NEW``.
905
905
906 ``tag``
906 ``tag``
907 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
907 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
908 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
908 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
909 repository if ``$HG_LOCAL=0``.
909 repository if ``$HG_LOCAL=0``.
910
910
911 ``update``
911 ``update``
912 Run after updating the working directory. Changeset ID of first
912 Run after updating the working directory. Changeset ID of first
913 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
913 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
914 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
914 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
915 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
915 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
916
916
917 .. note::
917 .. note::
918
918
919 It is generally better to use standard hooks rather than the
919 It is generally better to use standard hooks rather than the
920 generic pre- and post- command hooks as they are guaranteed to be
920 generic pre- and post- command hooks as they are guaranteed to be
921 called in the appropriate contexts for influencing transactions.
921 called in the appropriate contexts for influencing transactions.
922 Also, hooks like "commit" will be called in all contexts that
922 Also, hooks like "commit" will be called in all contexts that
923 generate a commit (e.g. tag) and not just the commit command.
923 generate a commit (e.g. tag) and not just the commit command.
924
924
925 .. note::
925 .. note::
926
926
927 Environment variables with empty values may not be passed to
927 Environment variables with empty values may not be passed to
928 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
928 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
929 will have an empty value under Unix-like platforms for non-merge
929 will have an empty value under Unix-like platforms for non-merge
930 changesets, while it will not be available at all under Windows.
930 changesets, while it will not be available at all under Windows.
931
931
932 The syntax for Python hooks is as follows::
932 The syntax for Python hooks is as follows::
933
933
934 hookname = python:modulename.submodule.callable
934 hookname = python:modulename.submodule.callable
935 hookname = python:/path/to/python/module.py:callable
935 hookname = python:/path/to/python/module.py:callable
936
936
937 Python hooks are run within the Mercurial process. Each hook is
937 Python hooks are run within the Mercurial process. Each hook is
938 called with at least three keyword arguments: a ui object (keyword
938 called with at least three keyword arguments: a ui object (keyword
939 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
939 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
940 keyword that tells what kind of hook is used. Arguments listed as
940 keyword that tells what kind of hook is used. Arguments listed as
941 environment variables above are passed as keyword arguments, with no
941 environment variables above are passed as keyword arguments, with no
942 ``HG_`` prefix, and names in lower case.
942 ``HG_`` prefix, and names in lower case.
943
943
944 If a Python hook returns a "true" value or raises an exception, this
944 If a Python hook returns a "true" value or raises an exception, this
945 is treated as a failure.
945 is treated as a failure.
946
946
947
947
948 ``hostfingerprints``
948 ``hostfingerprints``
949 --------------------
949 --------------------
950
950
951 Fingerprints of the certificates of known HTTPS servers.
951 Fingerprints of the certificates of known HTTPS servers.
952 A HTTPS connection to a server with a fingerprint configured here will
952 A HTTPS connection to a server with a fingerprint configured here will
953 only succeed if the servers certificate matches the fingerprint.
953 only succeed if the servers certificate matches the fingerprint.
954 This is very similar to how ssh known hosts works.
954 This is very similar to how ssh known hosts works.
955 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
955 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
956 The CA chain and web.cacerts is not used for servers with a fingerprint.
956 The CA chain and web.cacerts is not used for servers with a fingerprint.
957
957
958 For example::
958 For example::
959
959
960 [hostfingerprints]
960 [hostfingerprints]
961 hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
961 hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
962
962
963 This feature is only supported when using Python 2.6 or later.
963 This feature is only supported when using Python 2.6 or later.
964
964
965
965
966 ``http_proxy``
966 ``http_proxy``
967 --------------
967 --------------
968
968
969 Used to access web-based Mercurial repositories through a HTTP
969 Used to access web-based Mercurial repositories through a HTTP
970 proxy.
970 proxy.
971
971
972 ``host``
972 ``host``
973 Host name and (optional) port of the proxy server, for example
973 Host name and (optional) port of the proxy server, for example
974 "myproxy:8000".
974 "myproxy:8000".
975
975
976 ``no``
976 ``no``
977 Optional. Comma-separated list of host names that should bypass
977 Optional. Comma-separated list of host names that should bypass
978 the proxy.
978 the proxy.
979
979
980 ``passwd``
980 ``passwd``
981 Optional. Password to authenticate with at the proxy server.
981 Optional. Password to authenticate with at the proxy server.
982
982
983 ``user``
983 ``user``
984 Optional. User name to authenticate with at the proxy server.
984 Optional. User name to authenticate with at the proxy server.
985
985
986 ``always``
986 ``always``
987 Optional. Always use the proxy, even for localhost and any entries
987 Optional. Always use the proxy, even for localhost and any entries
988 in ``http_proxy.no``. (default: False)
988 in ``http_proxy.no``. (default: False)
989
989
990 ``merge``
990 ``merge``
991 ---------
991 ---------
992
992
993 This section specifies behavior during merges and updates.
993 This section specifies behavior during merges and updates.
994
994
995 ``checkunknown``
995 ``checkunknown``
996 Controls behavior when an unknown file on disk has the same name as a tracked
996 Controls behavior when an unknown file on disk has the same name as a tracked
997 file in the changeset being merged or updated to, and has different
997 file in the changeset being merged or updated to, and has different
998 contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``,
998 contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``,
999 abort on such files. With ``warn``, warn on such files and back them up as
999 abort on such files. With ``warn``, warn on such files and back them up as
1000 .orig. With ``ignore``, don't print a warning and back them up as
1000 .orig. With ``ignore``, don't print a warning and back them up as
1001 .orig. (default: ``abort``)
1001 .orig. (default: ``abort``)
1002
1002
1003 ``merge-patterns``
1003 ``merge-patterns``
1004 ------------------
1004 ------------------
1005
1005
1006 This section specifies merge tools to associate with particular file
1006 This section specifies merge tools to associate with particular file
1007 patterns. Tools matched here will take precedence over the default
1007 patterns. Tools matched here will take precedence over the default
1008 merge tool. Patterns are globs by default, rooted at the repository
1008 merge tool. Patterns are globs by default, rooted at the repository
1009 root.
1009 root.
1010
1010
1011 Example::
1011 Example::
1012
1012
1013 [merge-patterns]
1013 [merge-patterns]
1014 **.c = kdiff3
1014 **.c = kdiff3
1015 **.jpg = myimgmerge
1015 **.jpg = myimgmerge
1016
1016
1017 ``merge-tools``
1017 ``merge-tools``
1018 ---------------
1018 ---------------
1019
1019
1020 This section configures external merge tools to use for file-level
1020 This section configures external merge tools to use for file-level
1021 merges. This section has likely been preconfigured at install time.
1021 merges. This section has likely been preconfigured at install time.
1022 Use :hg:`config merge-tools` to check the existing configuration.
1022 Use :hg:`config merge-tools` to check the existing configuration.
1023 Also see :hg:`help merge-tools` for more details.
1023 Also see :hg:`help merge-tools` for more details.
1024
1024
1025 Example ``~/.hgrc``::
1025 Example ``~/.hgrc``::
1026
1026
1027 [merge-tools]
1027 [merge-tools]
1028 # Override stock tool location
1028 # Override stock tool location
1029 kdiff3.executable = ~/bin/kdiff3
1029 kdiff3.executable = ~/bin/kdiff3
1030 # Specify command line
1030 # Specify command line
1031 kdiff3.args = $base $local $other -o $output
1031 kdiff3.args = $base $local $other -o $output
1032 # Give higher priority
1032 # Give higher priority
1033 kdiff3.priority = 1
1033 kdiff3.priority = 1
1034
1034
1035 # Changing the priority of preconfigured tool
1035 # Changing the priority of preconfigured tool
1036 meld.priority = 0
1036 meld.priority = 0
1037
1037
1038 # Disable a preconfigured tool
1038 # Disable a preconfigured tool
1039 vimdiff.disabled = yes
1039 vimdiff.disabled = yes
1040
1040
1041 # Define new tool
1041 # Define new tool
1042 myHtmlTool.args = -m $local $other $base $output
1042 myHtmlTool.args = -m $local $other $base $output
1043 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1043 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1044 myHtmlTool.priority = 1
1044 myHtmlTool.priority = 1
1045
1045
1046 Supported arguments:
1046 Supported arguments:
1047
1047
1048 ``priority``
1048 ``priority``
1049 The priority in which to evaluate this tool.
1049 The priority in which to evaluate this tool.
1050 (default: 0)
1050 (default: 0)
1051
1051
1052 ``executable``
1052 ``executable``
1053 Either just the name of the executable or its pathname. On Windows,
1053 Either just the name of the executable or its pathname. On Windows,
1054 the path can use environment variables with ${ProgramFiles} syntax.
1054 the path can use environment variables with ${ProgramFiles} syntax.
1055 (default: the tool name)
1055 (default: the tool name)
1056
1056
1057 ``args``
1057 ``args``
1058 The arguments to pass to the tool executable. You can refer to the
1058 The arguments to pass to the tool executable. You can refer to the
1059 files being merged as well as the output file through these
1059 files being merged as well as the output file through these
1060 variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning
1060 variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning
1061 of ``$local`` and ``$other`` can vary depending on which action is being
1061 of ``$local`` and ``$other`` can vary depending on which action is being
1062 performed. During and update or merge, ``$local`` represents the original
1062 performed. During and update or merge, ``$local`` represents the original
1063 state of the file, while ``$other`` represents the commit you are updating
1063 state of the file, while ``$other`` represents the commit you are updating
1064 to or the commit you are merging with. During a rebase ``$local``
1064 to or the commit you are merging with. During a rebase ``$local``
1065 represents the destination of the rebase, and ``$other`` represents the
1065 represents the destination of the rebase, and ``$other`` represents the
1066 commit being rebased.
1066 commit being rebased.
1067 (default: ``$local $base $other``)
1067 (default: ``$local $base $other``)
1068
1068
1069 ``premerge``
1069 ``premerge``
1070 Attempt to run internal non-interactive 3-way merge tool before
1070 Attempt to run internal non-interactive 3-way merge tool before
1071 launching external tool. Options are ``true``, ``false``, ``keep`` or
1071 launching external tool. Options are ``true``, ``false``, ``keep`` or
1072 ``keep-merge3``. The ``keep`` option will leave markers in the file if the
1072 ``keep-merge3``. The ``keep`` option will leave markers in the file if the
1073 premerge fails. The ``keep-merge3`` will do the same but include information
1073 premerge fails. The ``keep-merge3`` will do the same but include information
1074 about the base of the merge in the marker (see internal :merge3 in
1074 about the base of the merge in the marker (see internal :merge3 in
1075 :hg:`help merge-tools`).
1075 :hg:`help merge-tools`).
1076 (default: True)
1076 (default: True)
1077
1077
1078 ``binary``
1078 ``binary``
1079 This tool can merge binary files. (default: False, unless tool
1079 This tool can merge binary files. (default: False, unless tool
1080 was selected by file pattern match)
1080 was selected by file pattern match)
1081
1081
1082 ``symlink``
1082 ``symlink``
1083 This tool can merge symlinks. (default: False)
1083 This tool can merge symlinks. (default: False)
1084
1084
1085 ``check``
1085 ``check``
1086 A list of merge success-checking options:
1086 A list of merge success-checking options:
1087
1087
1088 ``changed``
1088 ``changed``
1089 Ask whether merge was successful when the merged file shows no changes.
1089 Ask whether merge was successful when the merged file shows no changes.
1090 ``conflicts``
1090 ``conflicts``
1091 Check whether there are conflicts even though the tool reported success.
1091 Check whether there are conflicts even though the tool reported success.
1092 ``prompt``
1092 ``prompt``
1093 Always prompt for merge success, regardless of success reported by tool.
1093 Always prompt for merge success, regardless of success reported by tool.
1094
1094
1095 ``fixeol``
1095 ``fixeol``
1096 Attempt to fix up EOL changes caused by the merge tool.
1096 Attempt to fix up EOL changes caused by the merge tool.
1097 (default: False)
1097 (default: False)
1098
1098
1099 ``gui``
1099 ``gui``
1100 This tool requires a graphical interface to run. (default: False)
1100 This tool requires a graphical interface to run. (default: False)
1101
1101
1102 ``regkey``
1102 ``regkey``
1103 Windows registry key which describes install location of this
1103 Windows registry key which describes install location of this
1104 tool. Mercurial will search for this key first under
1104 tool. Mercurial will search for this key first under
1105 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1105 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1106 (default: None)
1106 (default: None)
1107
1107
1108 ``regkeyalt``
1108 ``regkeyalt``
1109 An alternate Windows registry key to try if the first key is not
1109 An alternate Windows registry key to try if the first key is not
1110 found. The alternate key uses the same ``regname`` and ``regappend``
1110 found. The alternate key uses the same ``regname`` and ``regappend``
1111 semantics of the primary key. The most common use for this key
1111 semantics of the primary key. The most common use for this key
1112 is to search for 32bit applications on 64bit operating systems.
1112 is to search for 32bit applications on 64bit operating systems.
1113 (default: None)
1113 (default: None)
1114
1114
1115 ``regname``
1115 ``regname``
1116 Name of value to read from specified registry key.
1116 Name of value to read from specified registry key.
1117 (default: the unnamed (default) value)
1117 (default: the unnamed (default) value)
1118
1118
1119 ``regappend``
1119 ``regappend``
1120 String to append to the value read from the registry, typically
1120 String to append to the value read from the registry, typically
1121 the executable name of the tool.
1121 the executable name of the tool.
1122 (default: None)
1122 (default: None)
1123
1123
1124
1124
1125 ``patch``
1125 ``patch``
1126 ---------
1126 ---------
1127
1127
1128 Settings used when applying patches, for instance through the 'import'
1128 Settings used when applying patches, for instance through the 'import'
1129 command or with Mercurial Queues extension.
1129 command or with Mercurial Queues extension.
1130
1130
1131 ``eol``
1131 ``eol``
1132 When set to 'strict' patch content and patched files end of lines
1132 When set to 'strict' patch content and patched files end of lines
1133 are preserved. When set to ``lf`` or ``crlf``, both files end of
1133 are preserved. When set to ``lf`` or ``crlf``, both files end of
1134 lines are ignored when patching and the result line endings are
1134 lines are ignored when patching and the result line endings are
1135 normalized to either LF (Unix) or CRLF (Windows). When set to
1135 normalized to either LF (Unix) or CRLF (Windows). When set to
1136 ``auto``, end of lines are again ignored while patching but line
1136 ``auto``, end of lines are again ignored while patching but line
1137 endings in patched files are normalized to their original setting
1137 endings in patched files are normalized to their original setting
1138 on a per-file basis. If target file does not exist or has no end
1138 on a per-file basis. If target file does not exist or has no end
1139 of line, patch line endings are preserved.
1139 of line, patch line endings are preserved.
1140 (default: strict)
1140 (default: strict)
1141
1141
1142 ``fuzz``
1142 ``fuzz``
1143 The number of lines of 'fuzz' to allow when applying patches. This
1143 The number of lines of 'fuzz' to allow when applying patches. This
1144 controls how much context the patcher is allowed to ignore when
1144 controls how much context the patcher is allowed to ignore when
1145 trying to apply a patch.
1145 trying to apply a patch.
1146 (default: 2)
1146 (default: 2)
1147
1147
1148 ``paths``
1148 ``paths``
1149 ---------
1149 ---------
1150
1150
1151 Assigns symbolic names and behavior to repositories.
1151 Assigns symbolic names and behavior to repositories.
1152
1152
1153 Options are symbolic names defining the URL or directory that is the
1153 Options are symbolic names defining the URL or directory that is the
1154 location of the repository. Example::
1154 location of the repository. Example::
1155
1155
1156 [paths]
1156 [paths]
1157 my_server = https://example.com/my_repo
1157 my_server = https://example.com/my_repo
1158 local_path = /home/me/repo
1158 local_path = /home/me/repo
1159
1159
1160 These symbolic names can be used from the command line. To pull
1160 These symbolic names can be used from the command line. To pull
1161 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1161 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1162 :hg:`push local_path`.
1162 :hg:`push local_path`.
1163
1163
1164 Options containing colons (``:``) denote sub-options that can influence
1164 Options containing colons (``:``) denote sub-options that can influence
1165 behavior for that specific path. Example::
1165 behavior for that specific path. Example::
1166
1166
1167 [paths]
1167 [paths]
1168 my_server = https://example.com/my_path
1168 my_server = https://example.com/my_path
1169 my_server:pushurl = ssh://example.com/my_path
1169 my_server:pushurl = ssh://example.com/my_path
1170
1170
1171 The following sub-options can be defined:
1171 The following sub-options can be defined:
1172
1172
1173 ``pushurl``
1173 ``pushurl``
1174 The URL to use for push operations. If not defined, the location
1174 The URL to use for push operations. If not defined, the location
1175 defined by the path's main entry is used.
1175 defined by the path's main entry is used.
1176
1176
1177 The following special named paths exist:
1177 The following special named paths exist:
1178
1178
1179 ``default``
1179 ``default``
1180 The URL or directory to use when no source or remote is specified.
1180 The URL or directory to use when no source or remote is specified.
1181
1181
1182 :hg:`clone` will automatically define this path to the location the
1182 :hg:`clone` will automatically define this path to the location the
1183 repository was cloned from.
1183 repository was cloned from.
1184
1184
1185 ``default-push``
1185 ``default-push``
1186 (deprecated) The URL or directory for the default :hg:`push` location.
1186 (deprecated) The URL or directory for the default :hg:`push` location.
1187 ``default:pushurl`` should be used instead.
1187 ``default:pushurl`` should be used instead.
1188
1188
1189 ``phases``
1189 ``phases``
1190 ----------
1190 ----------
1191
1191
1192 Specifies default handling of phases. See :hg:`help phases` for more
1192 Specifies default handling of phases. See :hg:`help phases` for more
1193 information about working with phases.
1193 information about working with phases.
1194
1194
1195 ``publish``
1195 ``publish``
1196 Controls draft phase behavior when working as a server. When true,
1196 Controls draft phase behavior when working as a server. When true,
1197 pushed changesets are set to public in both client and server and
1197 pushed changesets are set to public in both client and server and
1198 pulled or cloned changesets are set to public in the client.
1198 pulled or cloned changesets are set to public in the client.
1199 (default: True)
1199 (default: True)
1200
1200
1201 ``new-commit``
1201 ``new-commit``
1202 Phase of newly-created commits.
1202 Phase of newly-created commits.
1203 (default: draft)
1203 (default: draft)
1204
1204
1205 ``checksubrepos``
1205 ``checksubrepos``
1206 Check the phase of the current revision of each subrepository. Allowed
1206 Check the phase of the current revision of each subrepository. Allowed
1207 values are "ignore", "follow" and "abort". For settings other than
1207 values are "ignore", "follow" and "abort". For settings other than
1208 "ignore", the phase of the current revision of each subrepository is
1208 "ignore", the phase of the current revision of each subrepository is
1209 checked before committing the parent repository. If any of those phases is
1209 checked before committing the parent repository. If any of those phases is
1210 greater than the phase of the parent repository (e.g. if a subrepo is in a
1210 greater than the phase of the parent repository (e.g. if a subrepo is in a
1211 "secret" phase while the parent repo is in "draft" phase), the commit is
1211 "secret" phase while the parent repo is in "draft" phase), the commit is
1212 either aborted (if checksubrepos is set to "abort") or the higher phase is
1212 either aborted (if checksubrepos is set to "abort") or the higher phase is
1213 used for the parent repository commit (if set to "follow").
1213 used for the parent repository commit (if set to "follow").
1214 (default: follow)
1214 (default: follow)
1215
1215
1216
1216
1217 ``profiling``
1217 ``profiling``
1218 -------------
1218 -------------
1219
1219
1220 Specifies profiling type, format, and file output. Two profilers are
1220 Specifies profiling type, format, and file output. Two profilers are
1221 supported: an instrumenting profiler (named ``ls``), and a sampling
1221 supported: an instrumenting profiler (named ``ls``), and a sampling
1222 profiler (named ``stat``).
1222 profiler (named ``stat``).
1223
1223
1224 In this section description, 'profiling data' stands for the raw data
1224 In this section description, 'profiling data' stands for the raw data
1225 collected during profiling, while 'profiling report' stands for a
1225 collected during profiling, while 'profiling report' stands for a
1226 statistical text report generated from the profiling data. The
1226 statistical text report generated from the profiling data. The
1227 profiling is done using lsprof.
1227 profiling is done using lsprof.
1228
1228
1229 ``type``
1229 ``type``
1230 The type of profiler to use.
1230 The type of profiler to use.
1231 (default: ls)
1231 (default: ls)
1232
1232
1233 ``ls``
1233 ``ls``
1234 Use Python's built-in instrumenting profiler. This profiler
1234 Use Python's built-in instrumenting profiler. This profiler
1235 works on all platforms, but each line number it reports is the
1235 works on all platforms, but each line number it reports is the
1236 first line of a function. This restriction makes it difficult to
1236 first line of a function. This restriction makes it difficult to
1237 identify the expensive parts of a non-trivial function.
1237 identify the expensive parts of a non-trivial function.
1238 ``stat``
1238 ``stat``
1239 Use a third-party statistical profiler, statprof. This profiler
1239 Use a third-party statistical profiler, statprof. This profiler
1240 currently runs only on Unix systems, and is most useful for
1240 currently runs only on Unix systems, and is most useful for
1241 profiling commands that run for longer than about 0.1 seconds.
1241 profiling commands that run for longer than about 0.1 seconds.
1242
1242
1243 ``format``
1243 ``format``
1244 Profiling format. Specific to the ``ls`` instrumenting profiler.
1244 Profiling format. Specific to the ``ls`` instrumenting profiler.
1245 (default: text)
1245 (default: text)
1246
1246
1247 ``text``
1247 ``text``
1248 Generate a profiling report. When saving to a file, it should be
1248 Generate a profiling report. When saving to a file, it should be
1249 noted that only the report is saved, and the profiling data is
1249 noted that only the report is saved, and the profiling data is
1250 not kept.
1250 not kept.
1251 ``kcachegrind``
1251 ``kcachegrind``
1252 Format profiling data for kcachegrind use: when saving to a
1252 Format profiling data for kcachegrind use: when saving to a
1253 file, the generated file can directly be loaded into
1253 file, the generated file can directly be loaded into
1254 kcachegrind.
1254 kcachegrind.
1255
1255
1256 ``frequency``
1256 ``frequency``
1257 Sampling frequency. Specific to the ``stat`` sampling profiler.
1257 Sampling frequency. Specific to the ``stat`` sampling profiler.
1258 (default: 1000)
1258 (default: 1000)
1259
1259
1260 ``output``
1260 ``output``
1261 File path where profiling data or report should be saved. If the
1261 File path where profiling data or report should be saved. If the
1262 file exists, it is replaced. (default: None, data is printed on
1262 file exists, it is replaced. (default: None, data is printed on
1263 stderr)
1263 stderr)
1264
1264
1265 ``sort``
1265 ``sort``
1266 Sort field. Specific to the ``ls`` instrumenting profiler.
1266 Sort field. Specific to the ``ls`` instrumenting profiler.
1267 One of ``callcount``, ``reccallcount``, ``totaltime`` and
1267 One of ``callcount``, ``reccallcount``, ``totaltime`` and
1268 ``inlinetime``.
1268 ``inlinetime``.
1269 (default: inlinetime)
1269 (default: inlinetime)
1270
1270
1271 ``limit``
1271 ``limit``
1272 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
1272 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
1273 (default: 30)
1273 (default: 30)
1274
1274
1275 ``nested``
1275 ``nested``
1276 Show at most this number of lines of drill-down info after each main entry.
1276 Show at most this number of lines of drill-down info after each main entry.
1277 This can help explain the difference between Total and Inline.
1277 This can help explain the difference between Total and Inline.
1278 Specific to the ``ls`` instrumenting profiler.
1278 Specific to the ``ls`` instrumenting profiler.
1279 (default: 5)
1279 (default: 5)
1280
1280
1281 ``progress``
1281 ``progress``
1282 ------------
1282 ------------
1283
1283
1284 Mercurial commands can draw progress bars that are as informative as
1284 Mercurial commands can draw progress bars that are as informative as
1285 possible. Some progress bars only offer indeterminate information, while others
1285 possible. Some progress bars only offer indeterminate information, while others
1286 have a definite end point.
1286 have a definite end point.
1287
1287
1288 ``delay``
1288 ``delay``
1289 Number of seconds (float) before showing the progress bar. (default: 3)
1289 Number of seconds (float) before showing the progress bar. (default: 3)
1290
1290
1291 ``changedelay``
1291 ``changedelay``
1292 Minimum delay before showing a new topic. When set to less than 3 * refresh,
1292 Minimum delay before showing a new topic. When set to less than 3 * refresh,
1293 that value will be used instead. (default: 1)
1293 that value will be used instead. (default: 1)
1294
1294
1295 ``refresh``
1295 ``refresh``
1296 Time in seconds between refreshes of the progress bar. (default: 0.1)
1296 Time in seconds between refreshes of the progress bar. (default: 0.1)
1297
1297
1298 ``format``
1298 ``format``
1299 Format of the progress bar.
1299 Format of the progress bar.
1300
1300
1301 Valid entries for the format field are ``topic``, ``bar``, ``number``,
1301 Valid entries for the format field are ``topic``, ``bar``, ``number``,
1302 ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the
1302 ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the
1303 last 20 characters of the item, but this can be changed by adding either
1303 last 20 characters of the item, but this can be changed by adding either
1304 ``-<num>`` which would take the last num characters, or ``+<num>`` for the
1304 ``-<num>`` which would take the last num characters, or ``+<num>`` for the
1305 first num characters.
1305 first num characters.
1306
1306
1307 (default: topic bar number estimate)
1307 (default: topic bar number estimate)
1308
1308
1309 ``width``
1309 ``width``
1310 If set, the maximum width of the progress information (that is, min(width,
1310 If set, the maximum width of the progress information (that is, min(width,
1311 term width) will be used).
1311 term width) will be used).
1312
1312
1313 ``clear-complete``
1313 ``clear-complete``
1314 Clear the progress bar after it's done. (default: True)
1314 Clear the progress bar after it's done. (default: True)
1315
1315
1316 ``disable``
1316 ``disable``
1317 If true, don't show a progress bar.
1317 If true, don't show a progress bar.
1318
1318
1319 ``assume-tty``
1319 ``assume-tty``
1320 If true, ALWAYS show a progress bar, unless disable is given.
1320 If true, ALWAYS show a progress bar, unless disable is given.
1321
1321
1322 ``revsetalias``
1322 ``revsetalias``
1323 ---------------
1323 ---------------
1324
1324
1325 Alias definitions for revsets. See :hg:`help revsets` for details.
1325 Alias definitions for revsets. See :hg:`help revsets` for details.
1326
1326
1327 ``server``
1327 ``server``
1328 ----------
1328 ----------
1329
1329
1330 Controls generic server settings.
1330 Controls generic server settings.
1331
1331
1332 ``uncompressed``
1332 ``uncompressed``
1333 Whether to allow clients to clone a repository using the
1333 Whether to allow clients to clone a repository using the
1334 uncompressed streaming protocol. This transfers about 40% more
1334 uncompressed streaming protocol. This transfers about 40% more
1335 data than a regular clone, but uses less memory and CPU on both
1335 data than a regular clone, but uses less memory and CPU on both
1336 server and client. Over a LAN (100 Mbps or better) or a very fast
1336 server and client. Over a LAN (100 Mbps or better) or a very fast
1337 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1337 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1338 regular clone. Over most WAN connections (anything slower than
1338 regular clone. Over most WAN connections (anything slower than
1339 about 6 Mbps), uncompressed streaming is slower, because of the
1339 about 6 Mbps), uncompressed streaming is slower, because of the
1340 extra data transfer overhead. This mode will also temporarily hold
1340 extra data transfer overhead. This mode will also temporarily hold
1341 the write lock while determining what data to transfer.
1341 the write lock while determining what data to transfer.
1342 (default: True)
1342 (default: True)
1343
1343
1344 ``preferuncompressed``
1344 ``preferuncompressed``
1345 When set, clients will try to use the uncompressed streaming
1345 When set, clients will try to use the uncompressed streaming
1346 protocol. (default: False)
1346 protocol. (default: False)
1347
1347
1348 ``validate``
1348 ``validate``
1349 Whether to validate the completeness of pushed changesets by
1349 Whether to validate the completeness of pushed changesets by
1350 checking that all new file revisions specified in manifests are
1350 checking that all new file revisions specified in manifests are
1351 present. (default: False)
1351 present. (default: False)
1352
1352
1353 ``maxhttpheaderlen``
1353 ``maxhttpheaderlen``
1354 Instruct HTTP clients not to send request headers longer than this
1354 Instruct HTTP clients not to send request headers longer than this
1355 many bytes. (default: 1024)
1355 many bytes. (default: 1024)
1356
1356
1357 ``bundle1``
1357 ``bundle1``
1358 Whether to allow clients to push and pull using the legacy bundle1
1358 Whether to allow clients to push and pull using the legacy bundle1
1359 exchange format. (default: True)
1359 exchange format. (default: True)
1360
1360
1361 ``bundle1gd``
1361 ``bundle1gd``
1362 Like ``bundle1` but only used if the repository is using the
1362 Like ``bundle1`` but only used if the repository is using the
1363 *generaldelta* storage format. (default: True)
1363 *generaldelta* storage format. (default: True)
1364
1364
1365 ``bundle1.push``
1365 ``bundle1.push``
1366 Whether to allow clients to push using the legacy bundle1 exchange
1366 Whether to allow clients to push using the legacy bundle1 exchange
1367 format. (default: True)
1367 format. (default: True)
1368
1368
1369 ``bundle1gd.push``
1369 ``bundle1gd.push``
1370 Like ``bundle1.push` but only used if the repository is using the
1370 Like ``bundle1.push`` but only used if the repository is using the
1371 *generaldelta* storage format. (default: True)
1371 *generaldelta* storage format. (default: True)
1372
1372
1373 ``bundle1.pull``
1373 ``bundle1.pull``
1374 Whether to allow clients to pull using the legacy bundle1 exchange
1374 Whether to allow clients to pull using the legacy bundle1 exchange
1375 format. (default: True)
1375 format. (default: True)
1376
1376
1377 ``bundle1gd.pull``
1377 ``bundle1gd.pull``
1378 Like ``bundle1.pull` but only used if the repository is using the
1378 Like ``bundle1.pull`` but only used if the repository is using the
1379 *generaldelta* storage format. (default: True)
1379 *generaldelta* storage format. (default: True)
1380
1380
1381 Large repositories using the *generaldelta* storage format should
1381 Large repositories using the *generaldelta* storage format should
1382 consider setting this option because converting *generaldelta*
1382 consider setting this option because converting *generaldelta*
1383 repositories to the exchange format required by the bundle1 data
1383 repositories to the exchange format required by the bundle1 data
1384 format can consume a lot of CPU.
1384 format can consume a lot of CPU.
1385
1385
1386 ``smtp``
1386 ``smtp``
1387 --------
1387 --------
1388
1388
1389 Configuration for extensions that need to send email messages.
1389 Configuration for extensions that need to send email messages.
1390
1390
1391 ``host``
1391 ``host``
1392 Host name of mail server, e.g. "mail.example.com".
1392 Host name of mail server, e.g. "mail.example.com".
1393
1393
1394 ``port``
1394 ``port``
1395 Optional. Port to connect to on mail server. (default: 465 if
1395 Optional. Port to connect to on mail server. (default: 465 if
1396 ``tls`` is smtps; 25 otherwise)
1396 ``tls`` is smtps; 25 otherwise)
1397
1397
1398 ``tls``
1398 ``tls``
1399 Optional. Method to enable TLS when connecting to mail server: starttls,
1399 Optional. Method to enable TLS when connecting to mail server: starttls,
1400 smtps or none. (default: none)
1400 smtps or none. (default: none)
1401
1401
1402 ``verifycert``
1402 ``verifycert``
1403 Optional. Verification for the certificate of mail server, when
1403 Optional. Verification for the certificate of mail server, when
1404 ``tls`` is starttls or smtps. "strict", "loose" or False. For
1404 ``tls`` is starttls or smtps. "strict", "loose" or False. For
1405 "strict" or "loose", the certificate is verified as same as the
1405 "strict" or "loose", the certificate is verified as same as the
1406 verification for HTTPS connections (see ``[hostfingerprints]`` and
1406 verification for HTTPS connections (see ``[hostfingerprints]`` and
1407 ``[web] cacerts`` also). For "strict", sending email is also
1407 ``[web] cacerts`` also). For "strict", sending email is also
1408 aborted, if there is no configuration for mail server in
1408 aborted, if there is no configuration for mail server in
1409 ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
1409 ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
1410 :hg:`email` overwrites this as "loose". (default: strict)
1410 :hg:`email` overwrites this as "loose". (default: strict)
1411
1411
1412 ``username``
1412 ``username``
1413 Optional. User name for authenticating with the SMTP server.
1413 Optional. User name for authenticating with the SMTP server.
1414 (default: None)
1414 (default: None)
1415
1415
1416 ``password``
1416 ``password``
1417 Optional. Password for authenticating with the SMTP server. If not
1417 Optional. Password for authenticating with the SMTP server. If not
1418 specified, interactive sessions will prompt the user for a
1418 specified, interactive sessions will prompt the user for a
1419 password; non-interactive sessions will fail. (default: None)
1419 password; non-interactive sessions will fail. (default: None)
1420
1420
1421 ``local_hostname``
1421 ``local_hostname``
1422 Optional. The hostname that the sender can use to identify
1422 Optional. The hostname that the sender can use to identify
1423 itself to the MTA.
1423 itself to the MTA.
1424
1424
1425
1425
1426 ``subpaths``
1426 ``subpaths``
1427 ------------
1427 ------------
1428
1428
1429 Subrepository source URLs can go stale if a remote server changes name
1429 Subrepository source URLs can go stale if a remote server changes name
1430 or becomes temporarily unavailable. This section lets you define
1430 or becomes temporarily unavailable. This section lets you define
1431 rewrite rules of the form::
1431 rewrite rules of the form::
1432
1432
1433 <pattern> = <replacement>
1433 <pattern> = <replacement>
1434
1434
1435 where ``pattern`` is a regular expression matching a subrepository
1435 where ``pattern`` is a regular expression matching a subrepository
1436 source URL and ``replacement`` is the replacement string used to
1436 source URL and ``replacement`` is the replacement string used to
1437 rewrite it. Groups can be matched in ``pattern`` and referenced in
1437 rewrite it. Groups can be matched in ``pattern`` and referenced in
1438 ``replacements``. For instance::
1438 ``replacements``. For instance::
1439
1439
1440 http://server/(.*)-hg/ = http://hg.server/\1/
1440 http://server/(.*)-hg/ = http://hg.server/\1/
1441
1441
1442 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1442 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1443
1443
1444 Relative subrepository paths are first made absolute, and the
1444 Relative subrepository paths are first made absolute, and the
1445 rewrite rules are then applied on the full (absolute) path. The rules
1445 rewrite rules are then applied on the full (absolute) path. The rules
1446 are applied in definition order.
1446 are applied in definition order.
1447
1447
1448 ``trusted``
1448 ``trusted``
1449 -----------
1449 -----------
1450
1450
1451 Mercurial will not use the settings in the
1451 Mercurial will not use the settings in the
1452 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1452 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1453 user or to a trusted group, as various hgrc features allow arbitrary
1453 user or to a trusted group, as various hgrc features allow arbitrary
1454 commands to be run. This issue is often encountered when configuring
1454 commands to be run. This issue is often encountered when configuring
1455 hooks or extensions for shared repositories or servers. However,
1455 hooks or extensions for shared repositories or servers. However,
1456 the web interface will use some safe settings from the ``[web]``
1456 the web interface will use some safe settings from the ``[web]``
1457 section.
1457 section.
1458
1458
1459 This section specifies what users and groups are trusted. The
1459 This section specifies what users and groups are trusted. The
1460 current user is always trusted. To trust everybody, list a user or a
1460 current user is always trusted. To trust everybody, list a user or a
1461 group with name ``*``. These settings must be placed in an
1461 group with name ``*``. These settings must be placed in an
1462 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1462 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1463 user or service running Mercurial.
1463 user or service running Mercurial.
1464
1464
1465 ``users``
1465 ``users``
1466 Comma-separated list of trusted users.
1466 Comma-separated list of trusted users.
1467
1467
1468 ``groups``
1468 ``groups``
1469 Comma-separated list of trusted groups.
1469 Comma-separated list of trusted groups.
1470
1470
1471
1471
1472 ``ui``
1472 ``ui``
1473 ------
1473 ------
1474
1474
1475 User interface controls.
1475 User interface controls.
1476
1476
1477 ``archivemeta``
1477 ``archivemeta``
1478 Whether to include the .hg_archival.txt file containing meta data
1478 Whether to include the .hg_archival.txt file containing meta data
1479 (hashes for the repository base and for tip) in archives created
1479 (hashes for the repository base and for tip) in archives created
1480 by the :hg:`archive` command or downloaded via hgweb.
1480 by the :hg:`archive` command or downloaded via hgweb.
1481 (default: True)
1481 (default: True)
1482
1482
1483 ``askusername``
1483 ``askusername``
1484 Whether to prompt for a username when committing. If True, and
1484 Whether to prompt for a username when committing. If True, and
1485 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1485 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1486 be prompted to enter a username. If no username is entered, the
1486 be prompted to enter a username. If no username is entered, the
1487 default ``USER@HOST`` is used instead.
1487 default ``USER@HOST`` is used instead.
1488 (default: False)
1488 (default: False)
1489
1489
1490 ``clonebundlefallback``
1490 ``clonebundlefallback``
1491 Whether failure to apply an advertised "clone bundle" from a server
1491 Whether failure to apply an advertised "clone bundle" from a server
1492 should result in fallback to a regular clone.
1492 should result in fallback to a regular clone.
1493
1493
1494 This is disabled by default because servers advertising "clone
1494 This is disabled by default because servers advertising "clone
1495 bundles" often do so to reduce server load. If advertised bundles
1495 bundles" often do so to reduce server load. If advertised bundles
1496 start mass failing and clients automatically fall back to a regular
1496 start mass failing and clients automatically fall back to a regular
1497 clone, this would add significant and unexpected load to the server
1497 clone, this would add significant and unexpected load to the server
1498 since the server is expecting clone operations to be offloaded to
1498 since the server is expecting clone operations to be offloaded to
1499 pre-generated bundles. Failing fast (the default behavior) ensures
1499 pre-generated bundles. Failing fast (the default behavior) ensures
1500 clients don't overwhelm the server when "clone bundle" application
1500 clients don't overwhelm the server when "clone bundle" application
1501 fails.
1501 fails.
1502
1502
1503 (default: False)
1503 (default: False)
1504
1504
1505 ``commitsubrepos``
1505 ``commitsubrepos``
1506 Whether to commit modified subrepositories when committing the
1506 Whether to commit modified subrepositories when committing the
1507 parent repository. If False and one subrepository has uncommitted
1507 parent repository. If False and one subrepository has uncommitted
1508 changes, abort the commit.
1508 changes, abort the commit.
1509 (default: False)
1509 (default: False)
1510
1510
1511 ``debug``
1511 ``debug``
1512 Print debugging information. (default: False)
1512 Print debugging information. (default: False)
1513
1513
1514 ``editor``
1514 ``editor``
1515 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
1515 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
1516
1516
1517 ``fallbackencoding``
1517 ``fallbackencoding``
1518 Encoding to try if it's not possible to decode the changelog using
1518 Encoding to try if it's not possible to decode the changelog using
1519 UTF-8. (default: ISO-8859-1)
1519 UTF-8. (default: ISO-8859-1)
1520
1520
1521 ``graphnodetemplate``
1521 ``graphnodetemplate``
1522 The template used to print changeset nodes in an ASCII revision graph.
1522 The template used to print changeset nodes in an ASCII revision graph.
1523 (default: ``{graphnode}``)
1523 (default: ``{graphnode}``)
1524
1524
1525 ``ignore``
1525 ``ignore``
1526 A file to read per-user ignore patterns from. This file should be
1526 A file to read per-user ignore patterns from. This file should be
1527 in the same format as a repository-wide .hgignore file. Filenames
1527 in the same format as a repository-wide .hgignore file. Filenames
1528 are relative to the repository root. This option supports hook syntax,
1528 are relative to the repository root. This option supports hook syntax,
1529 so if you want to specify multiple ignore files, you can do so by
1529 so if you want to specify multiple ignore files, you can do so by
1530 setting something like ``ignore.other = ~/.hgignore2``. For details
1530 setting something like ``ignore.other = ~/.hgignore2``. For details
1531 of the ignore file format, see the ``hgignore(5)`` man page.
1531 of the ignore file format, see the ``hgignore(5)`` man page.
1532
1532
1533 ``interactive``
1533 ``interactive``
1534 Allow to prompt the user. (default: True)
1534 Allow to prompt the user. (default: True)
1535
1535
1536 ``logtemplate``
1536 ``logtemplate``
1537 Template string for commands that print changesets.
1537 Template string for commands that print changesets.
1538
1538
1539 ``merge``
1539 ``merge``
1540 The conflict resolution program to use during a manual merge.
1540 The conflict resolution program to use during a manual merge.
1541 For more information on merge tools see :hg:`help merge-tools`.
1541 For more information on merge tools see :hg:`help merge-tools`.
1542 For configuring merge tools see the ``[merge-tools]`` section.
1542 For configuring merge tools see the ``[merge-tools]`` section.
1543
1543
1544 ``mergemarkers``
1544 ``mergemarkers``
1545 Sets the merge conflict marker label styling. The ``detailed``
1545 Sets the merge conflict marker label styling. The ``detailed``
1546 style uses the ``mergemarkertemplate`` setting to style the labels.
1546 style uses the ``mergemarkertemplate`` setting to style the labels.
1547 The ``basic`` style just uses 'local' and 'other' as the marker label.
1547 The ``basic`` style just uses 'local' and 'other' as the marker label.
1548 One of ``basic`` or ``detailed``.
1548 One of ``basic`` or ``detailed``.
1549 (default: ``basic``)
1549 (default: ``basic``)
1550
1550
1551 ``mergemarkertemplate``
1551 ``mergemarkertemplate``
1552 The template used to print the commit description next to each conflict
1552 The template used to print the commit description next to each conflict
1553 marker during merge conflicts. See :hg:`help templates` for the template
1553 marker during merge conflicts. See :hg:`help templates` for the template
1554 format.
1554 format.
1555
1555
1556 Defaults to showing the hash, tags, branches, bookmarks, author, and
1556 Defaults to showing the hash, tags, branches, bookmarks, author, and
1557 the first line of the commit description.
1557 the first line of the commit description.
1558
1558
1559 If you use non-ASCII characters in names for tags, branches, bookmarks,
1559 If you use non-ASCII characters in names for tags, branches, bookmarks,
1560 authors, and/or commit descriptions, you must pay attention to encodings of
1560 authors, and/or commit descriptions, you must pay attention to encodings of
1561 managed files. At template expansion, non-ASCII characters use the encoding
1561 managed files. At template expansion, non-ASCII characters use the encoding
1562 specified by the ``--encoding`` global option, ``HGENCODING`` or other
1562 specified by the ``--encoding`` global option, ``HGENCODING`` or other
1563 environment variables that govern your locale. If the encoding of the merge
1563 environment variables that govern your locale. If the encoding of the merge
1564 markers is different from the encoding of the merged files,
1564 markers is different from the encoding of the merged files,
1565 serious problems may occur.
1565 serious problems may occur.
1566
1566
1567 ``origbackuppath``
1567 ``origbackuppath``
1568 The path to a directory used to store generated .orig files. If the path is
1568 The path to a directory used to store generated .orig files. If the path is
1569 not a directory, one will be created.
1569 not a directory, one will be created.
1570
1570
1571 ``patch``
1571 ``patch``
1572 An optional external tool that ``hg import`` and some extensions
1572 An optional external tool that ``hg import`` and some extensions
1573 will use for applying patches. By default Mercurial uses an
1573 will use for applying patches. By default Mercurial uses an
1574 internal patch utility. The external tool must work as the common
1574 internal patch utility. The external tool must work as the common
1575 Unix ``patch`` program. In particular, it must accept a ``-p``
1575 Unix ``patch`` program. In particular, it must accept a ``-p``
1576 argument to strip patch headers, a ``-d`` argument to specify the
1576 argument to strip patch headers, a ``-d`` argument to specify the
1577 current directory, a file name to patch, and a patch file to take
1577 current directory, a file name to patch, and a patch file to take
1578 from stdin.
1578 from stdin.
1579
1579
1580 It is possible to specify a patch tool together with extra
1580 It is possible to specify a patch tool together with extra
1581 arguments. For example, setting this option to ``patch --merge``
1581 arguments. For example, setting this option to ``patch --merge``
1582 will use the ``patch`` program with its 2-way merge option.
1582 will use the ``patch`` program with its 2-way merge option.
1583
1583
1584 ``portablefilenames``
1584 ``portablefilenames``
1585 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1585 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1586 (default: ``warn``)
1586 (default: ``warn``)
1587 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1587 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1588 platforms, if a file with a non-portable filename is added (e.g. a file
1588 platforms, if a file with a non-portable filename is added (e.g. a file
1589 with a name that can't be created on Windows because it contains reserved
1589 with a name that can't be created on Windows because it contains reserved
1590 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1590 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1591 collision with an existing file).
1591 collision with an existing file).
1592 If set to ``ignore`` (or ``false``), no warning is printed.
1592 If set to ``ignore`` (or ``false``), no warning is printed.
1593 If set to ``abort``, the command is aborted.
1593 If set to ``abort``, the command is aborted.
1594 On Windows, this configuration option is ignored and the command aborted.
1594 On Windows, this configuration option is ignored and the command aborted.
1595
1595
1596 ``quiet``
1596 ``quiet``
1597 Reduce the amount of output printed. (default: False)
1597 Reduce the amount of output printed. (default: False)
1598
1598
1599 ``remotecmd``
1599 ``remotecmd``
1600 Remote command to use for clone/push/pull operations. (default: ``hg``)
1600 Remote command to use for clone/push/pull operations. (default: ``hg``)
1601
1601
1602 ``report_untrusted``
1602 ``report_untrusted``
1603 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1603 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1604 trusted user or group. (default: True)
1604 trusted user or group. (default: True)
1605
1605
1606 ``slash``
1606 ``slash``
1607 Display paths using a slash (``/``) as the path separator. This
1607 Display paths using a slash (``/``) as the path separator. This
1608 only makes a difference on systems where the default path
1608 only makes a difference on systems where the default path
1609 separator is not the slash character (e.g. Windows uses the
1609 separator is not the slash character (e.g. Windows uses the
1610 backslash character (``\``)).
1610 backslash character (``\``)).
1611 (default: False)
1611 (default: False)
1612
1612
1613 ``statuscopies``
1613 ``statuscopies``
1614 Display copies in the status command.
1614 Display copies in the status command.
1615
1615
1616 ``ssh``
1616 ``ssh``
1617 Command to use for SSH connections. (default: ``ssh``)
1617 Command to use for SSH connections. (default: ``ssh``)
1618
1618
1619 ``strict``
1619 ``strict``
1620 Require exact command names, instead of allowing unambiguous
1620 Require exact command names, instead of allowing unambiguous
1621 abbreviations. (default: False)
1621 abbreviations. (default: False)
1622
1622
1623 ``style``
1623 ``style``
1624 Name of style to use for command output.
1624 Name of style to use for command output.
1625
1625
1626 ``supportcontact``
1626 ``supportcontact``
1627 A URL where users should report a Mercurial traceback. Use this if you are a
1627 A URL where users should report a Mercurial traceback. Use this if you are a
1628 large organisation with its own Mercurial deployment process and crash
1628 large organisation with its own Mercurial deployment process and crash
1629 reports should be addressed to your internal support.
1629 reports should be addressed to your internal support.
1630
1630
1631 ``timeout``
1631 ``timeout``
1632 The timeout used when a lock is held (in seconds), a negative value
1632 The timeout used when a lock is held (in seconds), a negative value
1633 means no timeout. (default: 600)
1633 means no timeout. (default: 600)
1634
1634
1635 ``traceback``
1635 ``traceback``
1636 Mercurial always prints a traceback when an unknown exception
1636 Mercurial always prints a traceback when an unknown exception
1637 occurs. Setting this to True will make Mercurial print a traceback
1637 occurs. Setting this to True will make Mercurial print a traceback
1638 on all exceptions, even those recognized by Mercurial (such as
1638 on all exceptions, even those recognized by Mercurial (such as
1639 IOError or MemoryError). (default: False)
1639 IOError or MemoryError). (default: False)
1640
1640
1641 ``username``
1641 ``username``
1642 The committer of a changeset created when running "commit".
1642 The committer of a changeset created when running "commit".
1643 Typically a person's name and email address, e.g. ``Fred Widget
1643 Typically a person's name and email address, e.g. ``Fred Widget
1644 <fred@example.com>``. Environment variables in the
1644 <fred@example.com>``. Environment variables in the
1645 username are expanded.
1645 username are expanded.
1646
1646
1647 (default: ``$EMAIL`` or ``username@hostname``. If the username in
1647 (default: ``$EMAIL`` or ``username@hostname``. If the username in
1648 hgrc is empty, e.g. if the system admin set ``username =`` in the
1648 hgrc is empty, e.g. if the system admin set ``username =`` in the
1649 system hgrc, it has to be specified manually or in a different
1649 system hgrc, it has to be specified manually or in a different
1650 hgrc file)
1650 hgrc file)
1651
1651
1652 ``verbose``
1652 ``verbose``
1653 Increase the amount of output printed. (default: False)
1653 Increase the amount of output printed. (default: False)
1654
1654
1655
1655
1656 ``web``
1656 ``web``
1657 -------
1657 -------
1658
1658
1659 Web interface configuration. The settings in this section apply to
1659 Web interface configuration. The settings in this section apply to
1660 both the builtin webserver (started by :hg:`serve`) and the script you
1660 both the builtin webserver (started by :hg:`serve`) and the script you
1661 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1661 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1662 and WSGI).
1662 and WSGI).
1663
1663
1664 The Mercurial webserver does no authentication (it does not prompt for
1664 The Mercurial webserver does no authentication (it does not prompt for
1665 usernames and passwords to validate *who* users are), but it does do
1665 usernames and passwords to validate *who* users are), but it does do
1666 authorization (it grants or denies access for *authenticated users*
1666 authorization (it grants or denies access for *authenticated users*
1667 based on settings in this section). You must either configure your
1667 based on settings in this section). You must either configure your
1668 webserver to do authentication for you, or disable the authorization
1668 webserver to do authentication for you, or disable the authorization
1669 checks.
1669 checks.
1670
1670
1671 For a quick setup in a trusted environment, e.g., a private LAN, where
1671 For a quick setup in a trusted environment, e.g., a private LAN, where
1672 you want it to accept pushes from anybody, you can use the following
1672 you want it to accept pushes from anybody, you can use the following
1673 command line::
1673 command line::
1674
1674
1675 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1675 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1676
1676
1677 Note that this will allow anybody to push anything to the server and
1677 Note that this will allow anybody to push anything to the server and
1678 that this should not be used for public servers.
1678 that this should not be used for public servers.
1679
1679
1680 The full set of options is:
1680 The full set of options is:
1681
1681
1682 ``accesslog``
1682 ``accesslog``
1683 Where to output the access log. (default: stdout)
1683 Where to output the access log. (default: stdout)
1684
1684
1685 ``address``
1685 ``address``
1686 Interface address to bind to. (default: all)
1686 Interface address to bind to. (default: all)
1687
1687
1688 ``allow_archive``
1688 ``allow_archive``
1689 List of archive format (bz2, gz, zip) allowed for downloading.
1689 List of archive format (bz2, gz, zip) allowed for downloading.
1690 (default: empty)
1690 (default: empty)
1691
1691
1692 ``allowbz2``
1692 ``allowbz2``
1693 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1693 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1694 revisions.
1694 revisions.
1695 (default: False)
1695 (default: False)
1696
1696
1697 ``allowgz``
1697 ``allowgz``
1698 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1698 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1699 revisions.
1699 revisions.
1700 (default: False)
1700 (default: False)
1701
1701
1702 ``allowpull``
1702 ``allowpull``
1703 Whether to allow pulling from the repository. (default: True)
1703 Whether to allow pulling from the repository. (default: True)
1704
1704
1705 ``allow_push``
1705 ``allow_push``
1706 Whether to allow pushing to the repository. If empty or not set,
1706 Whether to allow pushing to the repository. If empty or not set,
1707 pushing is not allowed. If the special value ``*``, any remote
1707 pushing is not allowed. If the special value ``*``, any remote
1708 user can push, including unauthenticated users. Otherwise, the
1708 user can push, including unauthenticated users. Otherwise, the
1709 remote user must have been authenticated, and the authenticated
1709 remote user must have been authenticated, and the authenticated
1710 user name must be present in this list. The contents of the
1710 user name must be present in this list. The contents of the
1711 allow_push list are examined after the deny_push list.
1711 allow_push list are examined after the deny_push list.
1712
1712
1713 ``allow_read``
1713 ``allow_read``
1714 If the user has not already been denied repository access due to
1714 If the user has not already been denied repository access due to
1715 the contents of deny_read, this list determines whether to grant
1715 the contents of deny_read, this list determines whether to grant
1716 repository access to the user. If this list is not empty, and the
1716 repository access to the user. If this list is not empty, and the
1717 user is unauthenticated or not present in the list, then access is
1717 user is unauthenticated or not present in the list, then access is
1718 denied for the user. If the list is empty or not set, then access
1718 denied for the user. If the list is empty or not set, then access
1719 is permitted to all users by default. Setting allow_read to the
1719 is permitted to all users by default. Setting allow_read to the
1720 special value ``*`` is equivalent to it not being set (i.e. access
1720 special value ``*`` is equivalent to it not being set (i.e. access
1721 is permitted to all users). The contents of the allow_read list are
1721 is permitted to all users). The contents of the allow_read list are
1722 examined after the deny_read list.
1722 examined after the deny_read list.
1723
1723
1724 ``allowzip``
1724 ``allowzip``
1725 (DEPRECATED) Whether to allow .zip downloading of repository
1725 (DEPRECATED) Whether to allow .zip downloading of repository
1726 revisions. This feature creates temporary files.
1726 revisions. This feature creates temporary files.
1727 (default: False)
1727 (default: False)
1728
1728
1729 ``archivesubrepos``
1729 ``archivesubrepos``
1730 Whether to recurse into subrepositories when archiving.
1730 Whether to recurse into subrepositories when archiving.
1731 (default: False)
1731 (default: False)
1732
1732
1733 ``baseurl``
1733 ``baseurl``
1734 Base URL to use when publishing URLs in other locations, so
1734 Base URL to use when publishing URLs in other locations, so
1735 third-party tools like email notification hooks can construct
1735 third-party tools like email notification hooks can construct
1736 URLs. Example: ``http://hgserver/repos/``.
1736 URLs. Example: ``http://hgserver/repos/``.
1737
1737
1738 ``cacerts``
1738 ``cacerts``
1739 Path to file containing a list of PEM encoded certificate
1739 Path to file containing a list of PEM encoded certificate
1740 authority certificates. Environment variables and ``~user``
1740 authority certificates. Environment variables and ``~user``
1741 constructs are expanded in the filename. If specified on the
1741 constructs are expanded in the filename. If specified on the
1742 client, then it will verify the identity of remote HTTPS servers
1742 client, then it will verify the identity of remote HTTPS servers
1743 with these certificates.
1743 with these certificates.
1744
1744
1745 This feature is only supported when using Python 2.6 or later. If you wish
1745 This feature is only supported when using Python 2.6 or later. If you wish
1746 to use it with earlier versions of Python, install the backported
1746 to use it with earlier versions of Python, install the backported
1747 version of the ssl library that is available from
1747 version of the ssl library that is available from
1748 ``http://pypi.python.org``.
1748 ``http://pypi.python.org``.
1749
1749
1750 To disable SSL verification temporarily, specify ``--insecure`` from
1750 To disable SSL verification temporarily, specify ``--insecure`` from
1751 command line.
1751 command line.
1752
1752
1753 You can use OpenSSL's CA certificate file if your platform has
1753 You can use OpenSSL's CA certificate file if your platform has
1754 one. On most Linux systems this will be
1754 one. On most Linux systems this will be
1755 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
1755 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
1756 generate this file manually. The form must be as follows::
1756 generate this file manually. The form must be as follows::
1757
1757
1758 -----BEGIN CERTIFICATE-----
1758 -----BEGIN CERTIFICATE-----
1759 ... (certificate in base64 PEM encoding) ...
1759 ... (certificate in base64 PEM encoding) ...
1760 -----END CERTIFICATE-----
1760 -----END CERTIFICATE-----
1761 -----BEGIN CERTIFICATE-----
1761 -----BEGIN CERTIFICATE-----
1762 ... (certificate in base64 PEM encoding) ...
1762 ... (certificate in base64 PEM encoding) ...
1763 -----END CERTIFICATE-----
1763 -----END CERTIFICATE-----
1764
1764
1765 ``cache``
1765 ``cache``
1766 Whether to support caching in hgweb. (default: True)
1766 Whether to support caching in hgweb. (default: True)
1767
1767
1768 ``certificate``
1768 ``certificate``
1769 Certificate to use when running :hg:`serve`.
1769 Certificate to use when running :hg:`serve`.
1770
1770
1771 ``collapse``
1771 ``collapse``
1772 With ``descend`` enabled, repositories in subdirectories are shown at
1772 With ``descend`` enabled, repositories in subdirectories are shown at
1773 a single level alongside repositories in the current path. With
1773 a single level alongside repositories in the current path. With
1774 ``collapse`` also enabled, repositories residing at a deeper level than
1774 ``collapse`` also enabled, repositories residing at a deeper level than
1775 the current path are grouped behind navigable directory entries that
1775 the current path are grouped behind navigable directory entries that
1776 lead to the locations of these repositories. In effect, this setting
1776 lead to the locations of these repositories. In effect, this setting
1777 collapses each collection of repositories found within a subdirectory
1777 collapses each collection of repositories found within a subdirectory
1778 into a single entry for that subdirectory. (default: False)
1778 into a single entry for that subdirectory. (default: False)
1779
1779
1780 ``comparisoncontext``
1780 ``comparisoncontext``
1781 Number of lines of context to show in side-by-side file comparison. If
1781 Number of lines of context to show in side-by-side file comparison. If
1782 negative or the value ``full``, whole files are shown. (default: 5)
1782 negative or the value ``full``, whole files are shown. (default: 5)
1783
1783
1784 This setting can be overridden by a ``context`` request parameter to the
1784 This setting can be overridden by a ``context`` request parameter to the
1785 ``comparison`` command, taking the same values.
1785 ``comparison`` command, taking the same values.
1786
1786
1787 ``contact``
1787 ``contact``
1788 Name or email address of the person in charge of the repository.
1788 Name or email address of the person in charge of the repository.
1789 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
1789 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
1790
1790
1791 ``deny_push``
1791 ``deny_push``
1792 Whether to deny pushing to the repository. If empty or not set,
1792 Whether to deny pushing to the repository. If empty or not set,
1793 push is not denied. If the special value ``*``, all remote users are
1793 push is not denied. If the special value ``*``, all remote users are
1794 denied push. Otherwise, unauthenticated users are all denied, and
1794 denied push. Otherwise, unauthenticated users are all denied, and
1795 any authenticated user name present in this list is also denied. The
1795 any authenticated user name present in this list is also denied. The
1796 contents of the deny_push list are examined before the allow_push list.
1796 contents of the deny_push list are examined before the allow_push list.
1797
1797
1798 ``deny_read``
1798 ``deny_read``
1799 Whether to deny reading/viewing of the repository. If this list is
1799 Whether to deny reading/viewing of the repository. If this list is
1800 not empty, unauthenticated users are all denied, and any
1800 not empty, unauthenticated users are all denied, and any
1801 authenticated user name present in this list is also denied access to
1801 authenticated user name present in this list is also denied access to
1802 the repository. If set to the special value ``*``, all remote users
1802 the repository. If set to the special value ``*``, all remote users
1803 are denied access (rarely needed ;). If deny_read is empty or not set,
1803 are denied access (rarely needed ;). If deny_read is empty or not set,
1804 the determination of repository access depends on the presence and
1804 the determination of repository access depends on the presence and
1805 content of the allow_read list (see description). If both
1805 content of the allow_read list (see description). If both
1806 deny_read and allow_read are empty or not set, then access is
1806 deny_read and allow_read are empty or not set, then access is
1807 permitted to all users by default. If the repository is being
1807 permitted to all users by default. If the repository is being
1808 served via hgwebdir, denied users will not be able to see it in
1808 served via hgwebdir, denied users will not be able to see it in
1809 the list of repositories. The contents of the deny_read list have
1809 the list of repositories. The contents of the deny_read list have
1810 priority over (are examined before) the contents of the allow_read
1810 priority over (are examined before) the contents of the allow_read
1811 list.
1811 list.
1812
1812
1813 ``descend``
1813 ``descend``
1814 hgwebdir indexes will not descend into subdirectories. Only repositories
1814 hgwebdir indexes will not descend into subdirectories. Only repositories
1815 directly in the current path will be shown (other repositories are still
1815 directly in the current path will be shown (other repositories are still
1816 available from the index corresponding to their containing path).
1816 available from the index corresponding to their containing path).
1817
1817
1818 ``description``
1818 ``description``
1819 Textual description of the repository's purpose or contents.
1819 Textual description of the repository's purpose or contents.
1820 (default: "unknown")
1820 (default: "unknown")
1821
1821
1822 ``encoding``
1822 ``encoding``
1823 Character encoding name. (default: the current locale charset)
1823 Character encoding name. (default: the current locale charset)
1824 Example: "UTF-8".
1824 Example: "UTF-8".
1825
1825
1826 ``errorlog``
1826 ``errorlog``
1827 Where to output the error log. (default: stderr)
1827 Where to output the error log. (default: stderr)
1828
1828
1829 ``guessmime``
1829 ``guessmime``
1830 Control MIME types for raw download of file content.
1830 Control MIME types for raw download of file content.
1831 Set to True to let hgweb guess the content type from the file
1831 Set to True to let hgweb guess the content type from the file
1832 extension. This will serve HTML files as ``text/html`` and might
1832 extension. This will serve HTML files as ``text/html`` and might
1833 allow cross-site scripting attacks when serving untrusted
1833 allow cross-site scripting attacks when serving untrusted
1834 repositories. (default: False)
1834 repositories. (default: False)
1835
1835
1836 ``hidden``
1836 ``hidden``
1837 Whether to hide the repository in the hgwebdir index.
1837 Whether to hide the repository in the hgwebdir index.
1838 (default: False)
1838 (default: False)
1839
1839
1840 ``ipv6``
1840 ``ipv6``
1841 Whether to use IPv6. (default: False)
1841 Whether to use IPv6. (default: False)
1842
1842
1843 ``logoimg``
1843 ``logoimg``
1844 File name of the logo image that some templates display on each page.
1844 File name of the logo image that some templates display on each page.
1845 The file name is relative to ``staticurl``. That is, the full path to
1845 The file name is relative to ``staticurl``. That is, the full path to
1846 the logo image is "staticurl/logoimg".
1846 the logo image is "staticurl/logoimg".
1847 If unset, ``hglogo.png`` will be used.
1847 If unset, ``hglogo.png`` will be used.
1848
1848
1849 ``logourl``
1849 ``logourl``
1850 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
1850 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
1851 will be used.
1851 will be used.
1852
1852
1853 ``maxchanges``
1853 ``maxchanges``
1854 Maximum number of changes to list on the changelog. (default: 10)
1854 Maximum number of changes to list on the changelog. (default: 10)
1855
1855
1856 ``maxfiles``
1856 ``maxfiles``
1857 Maximum number of files to list per changeset. (default: 10)
1857 Maximum number of files to list per changeset. (default: 10)
1858
1858
1859 ``maxshortchanges``
1859 ``maxshortchanges``
1860 Maximum number of changes to list on the shortlog, graph or filelog
1860 Maximum number of changes to list on the shortlog, graph or filelog
1861 pages. (default: 60)
1861 pages. (default: 60)
1862
1862
1863 ``name``
1863 ``name``
1864 Repository name to use in the web interface.
1864 Repository name to use in the web interface.
1865 (default: current working directory)
1865 (default: current working directory)
1866
1866
1867 ``port``
1867 ``port``
1868 Port to listen on. (default: 8000)
1868 Port to listen on. (default: 8000)
1869
1869
1870 ``prefix``
1870 ``prefix``
1871 Prefix path to serve from. (default: '' (server root))
1871 Prefix path to serve from. (default: '' (server root))
1872
1872
1873 ``push_ssl``
1873 ``push_ssl``
1874 Whether to require that inbound pushes be transported over SSL to
1874 Whether to require that inbound pushes be transported over SSL to
1875 prevent password sniffing. (default: True)
1875 prevent password sniffing. (default: True)
1876
1876
1877 ``refreshinterval``
1877 ``refreshinterval``
1878 How frequently directory listings re-scan the filesystem for new
1878 How frequently directory listings re-scan the filesystem for new
1879 repositories, in seconds. This is relevant when wildcards are used
1879 repositories, in seconds. This is relevant when wildcards are used
1880 to define paths. Depending on how much filesystem traversal is
1880 to define paths. Depending on how much filesystem traversal is
1881 required, refreshing may negatively impact performance.
1881 required, refreshing may negatively impact performance.
1882
1882
1883 Values less than or equal to 0 always refresh.
1883 Values less than or equal to 0 always refresh.
1884 (default: 20)
1884 (default: 20)
1885
1885
1886 ``staticurl``
1886 ``staticurl``
1887 Base URL to use for static files. If unset, static files (e.g. the
1887 Base URL to use for static files. If unset, static files (e.g. the
1888 hgicon.png favicon) will be served by the CGI script itself. Use
1888 hgicon.png favicon) will be served by the CGI script itself. Use
1889 this setting to serve them directly with the HTTP server.
1889 this setting to serve them directly with the HTTP server.
1890 Example: ``http://hgserver/static/``.
1890 Example: ``http://hgserver/static/``.
1891
1891
1892 ``stripes``
1892 ``stripes``
1893 How many lines a "zebra stripe" should span in multi-line output.
1893 How many lines a "zebra stripe" should span in multi-line output.
1894 Set to 0 to disable. (default: 1)
1894 Set to 0 to disable. (default: 1)
1895
1895
1896 ``style``
1896 ``style``
1897 Which template map style to use. The available options are the names of
1897 Which template map style to use. The available options are the names of
1898 subdirectories in the HTML templates path. (default: ``paper``)
1898 subdirectories in the HTML templates path. (default: ``paper``)
1899 Example: ``monoblue``.
1899 Example: ``monoblue``.
1900
1900
1901 ``templates``
1901 ``templates``
1902 Where to find the HTML templates. The default path to the HTML templates
1902 Where to find the HTML templates. The default path to the HTML templates
1903 can be obtained from ``hg debuginstall``.
1903 can be obtained from ``hg debuginstall``.
1904
1904
1905 ``websub``
1905 ``websub``
1906 ----------
1906 ----------
1907
1907
1908 Web substitution filter definition. You can use this section to
1908 Web substitution filter definition. You can use this section to
1909 define a set of regular expression substitution patterns which
1909 define a set of regular expression substitution patterns which
1910 let you automatically modify the hgweb server output.
1910 let you automatically modify the hgweb server output.
1911
1911
1912 The default hgweb templates only apply these substitution patterns
1912 The default hgweb templates only apply these substitution patterns
1913 on the revision description fields. You can apply them anywhere
1913 on the revision description fields. You can apply them anywhere
1914 you want when you create your own templates by adding calls to the
1914 you want when you create your own templates by adding calls to the
1915 "websub" filter (usually after calling the "escape" filter).
1915 "websub" filter (usually after calling the "escape" filter).
1916
1916
1917 This can be used, for example, to convert issue references to links
1917 This can be used, for example, to convert issue references to links
1918 to your issue tracker, or to convert "markdown-like" syntax into
1918 to your issue tracker, or to convert "markdown-like" syntax into
1919 HTML (see the examples below).
1919 HTML (see the examples below).
1920
1920
1921 Each entry in this section names a substitution filter.
1921 Each entry in this section names a substitution filter.
1922 The value of each entry defines the substitution expression itself.
1922 The value of each entry defines the substitution expression itself.
1923 The websub expressions follow the old interhg extension syntax,
1923 The websub expressions follow the old interhg extension syntax,
1924 which in turn imitates the Unix sed replacement syntax::
1924 which in turn imitates the Unix sed replacement syntax::
1925
1925
1926 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
1926 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
1927
1927
1928 You can use any separator other than "/". The final "i" is optional
1928 You can use any separator other than "/". The final "i" is optional
1929 and indicates that the search must be case insensitive.
1929 and indicates that the search must be case insensitive.
1930
1930
1931 Examples::
1931 Examples::
1932
1932
1933 [websub]
1933 [websub]
1934 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
1934 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
1935 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
1935 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
1936 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
1936 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
1937
1937
1938 ``worker``
1938 ``worker``
1939 ----------
1939 ----------
1940
1940
1941 Parallel master/worker configuration. We currently perform working
1941 Parallel master/worker configuration. We currently perform working
1942 directory updates in parallel on Unix-like systems, which greatly
1942 directory updates in parallel on Unix-like systems, which greatly
1943 helps performance.
1943 helps performance.
1944
1944
1945 ``numcpus``
1945 ``numcpus``
1946 Number of CPUs to use for parallel operations. A zero or
1946 Number of CPUs to use for parallel operations. A zero or
1947 negative value is treated as ``use the default``.
1947 negative value is treated as ``use the default``.
1948 (default: 4 or the number of CPUs on the system, whichever is larger)
1948 (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