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