comparison doc/hgrc.5.txt @ 8730:01f0ddb90342

hgrc.5: wrap lines at 70 chars (whitespace cleanup)
author Martin Geisler <mg@lazybytes.net>
date Mon, 08 Jun 2009 00:14:24 +0200
parents 1b713f72c91a
children b2059435f176
comparison
equal deleted inserted replaced
8729:f67e5aac4e9e 8730:01f0ddb90342
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 The names of these files depend on the system on which Mercurial is 19 The names of these files depend on the system on which Mercurial is
20 installed. *.rc files from a single directory are read in 20 installed. *.rc files from a single directory are read in alphabetical
21 alphabetical order, later ones overriding earlier ones. Where 21 order, later ones overriding earlier ones. Where multiple paths are
22 multiple paths are given below, settings from later paths override 22 given below, settings from later paths override earlier ones.
23 earlier ones.
24 23
25 (Unix) <install-root>/etc/mercurial/hgrc.d/*.rc:: 24 (Unix) <install-root>/etc/mercurial/hgrc.d/*.rc::
26 (Unix) <install-root>/etc/mercurial/hgrc:: 25 (Unix) <install-root>/etc/mercurial/hgrc::
27 Per-installation configuration files, searched for in the 26 Per-installation configuration files, searched for in the
28 directory where Mercurial is installed. <install-root> is the 27 directory where Mercurial is installed. <install-root> is the
29 parent directory of the hg executable (or symlink) being run. 28 parent directory of the hg executable (or symlink) being run. For
30 For example, if installed in /shared/tools/bin/hg, Mercurial will 29 example, if installed in /shared/tools/bin/hg, Mercurial will look
31 look in /shared/tools/etc/mercurial/hgrc. Options in these files 30 in /shared/tools/etc/mercurial/hgrc. Options in these files apply
32 apply to all Mercurial commands executed by any user in any 31 to all Mercurial commands executed by any user in any directory.
33 directory.
34 32
35 (Unix) /etc/mercurial/hgrc.d/*.rc:: 33 (Unix) /etc/mercurial/hgrc.d/*.rc::
36 (Unix) /etc/mercurial/hgrc:: 34 (Unix) /etc/mercurial/hgrc::
37 Per-system configuration files, for the system on which Mercurial 35 Per-system configuration files, for the system on which Mercurial
38 is running. Options in these files apply to all Mercurial 36 is running. Options in these files apply to all Mercurial commands
39 commands executed by any user in any directory. Options in these 37 executed by any user in any directory. Options in these files
40 files override per-installation options. 38 override per-installation options.
41 39
42 (Windows) <install-dir>\Mercurial.ini:: 40 (Windows) <install-dir>\Mercurial.ini::
43 or else:: 41 or else::
44 (Windows) HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial:: 42 (Windows) HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial::
45 or else:: 43 or else::
46 (Windows) C:\Mercurial\Mercurial.ini:: 44 (Windows) C:\Mercurial\Mercurial.ini::
47 Per-installation/system configuration files, for the system on 45 Per-installation/system configuration files, for the system on
48 which Mercurial is running. Options in these files apply to all 46 which Mercurial is running. Options in these files apply to all
49 Mercurial commands executed by any user in any directory. 47 Mercurial commands executed by any user in any directory. Registry
50 Registry keys contain PATH-like strings, every part of which must 48 keys contain PATH-like strings, every part of which must reference
51 reference a Mercurial.ini file or be a directory where *.rc files 49 a Mercurial.ini file or be a directory where *.rc files will be
52 will be read. 50 read.
53 51
54 (Unix) $HOME/.hgrc:: 52 (Unix) $HOME/.hgrc::
55 (Windows) %HOME%\Mercurial.ini:: 53 (Windows) %HOME%\Mercurial.ini::
56 (Windows) %HOME%\.hgrc:: 54 (Windows) %HOME%\.hgrc::
57 (Windows) %USERPROFILE%\Mercurial.ini:: 55 (Windows) %USERPROFILE%\Mercurial.ini::
58 (Windows) %USERPROFILE%\.hgrc:: 56 (Windows) %USERPROFILE%\.hgrc::
59 Per-user configuration file(s), for the user running Mercurial. 57 Per-user configuration file(s), for the user running Mercurial. On
60 On Windows 9x, %HOME% is replaced by %APPDATA%. 58 Windows 9x, %HOME% is replaced by %APPDATA%.
61 Options in these files apply to all Mercurial commands executed 59 Options in these files apply to all Mercurial commands executed by
62 by this user in any directory. Options in thes files override 60 this user in any directory. Options in thes files override
63 per-installation and per-system options. 61 per-installation and per-system options.
64 62
65 (Unix, Windows) <repo>/.hg/hgrc:: 63 (Unix, Windows) <repo>/.hg/hgrc::
66 Per-repository configuration options that only apply in a 64 Per-repository configuration options that only apply in a
67 particular repository. This file is not version-controlled, and 65 particular repository. This file is not version-controlled, and
68 will not get transferred during a "clone" operation. Options in 66 will not get transferred during a "clone" operation. Options in
69 this file override options in all other configuration files. 67 this file override options in all other configuration files. On
70 On Unix, most of this file will be ignored if it doesn't belong 68 Unix, most of this file will be ignored if it doesn't belong to a
71 to a trusted user or to a trusted group. See the documentation 69 trusted user or to a trusted group. See the documentation for the
72 for the trusted section below for more details. 70 trusted section below for more details.
73 71
74 SYNTAX 72 SYNTAX
75 ------ 73 ------
76 74
77 A configuration file consists of sections, led by a "[section]" header 75 A configuration file consists of sections, led by a "[section]" header
95 93
96 SECTIONS 94 SECTIONS
97 -------- 95 --------
98 96
99 This section describes the different sections that may appear in a 97 This section describes the different sections that may appear in a
100 Mercurial "hgrc" file, the purpose of each section, its possible 98 Mercurial "hgrc" file, the purpose of each section, its possible keys,
101 keys, and their possible values. 99 and their possible values.
102 100
103 [[alias]] 101 [[alias]]
104 alias:: 102 alias::
105 Defines command aliases. 103 Defines command aliases.
106 Aliases allow you to define your own commands in terms of other 104 Aliases allow you to define your own commands in terms of other
118 changesets. You can define subsequent aliases using earlier ones: 116 changesets. You can define subsequent aliases using earlier ones:
119 + 117 +
120 stable5 = latest -b stable 118 stable5 = latest -b stable
121 + 119 +
122 *Note*: It is possible to create aliases with the same names as 120 *Note*: It is possible to create aliases with the same names as
123 existing commands, which will then override the original 121 existing commands, which will then override the original definitions.
124 definitions. This is almost always a bad idea! 122 This is almost always a bad idea!
125 123
126 [[auth]] 124 [[auth]]
127 auth:: 125 auth::
128 Authentication credentials for HTTP authentication. 126 Authentication credentials for HTTP authentication. Each line has
129 Each line has the following format: 127 the following format:
130 128
131 <name>.<argument> = <value> 129 <name>.<argument> = <value>
132 130
133 where <name> is used to group arguments into authentication 131 where <name> is used to group arguments into authentication entries.
134 entries.
135 Example: 132 Example:
136 133
137 foo.prefix = hg.intevation.org/mercurial 134 foo.prefix = hg.intevation.org/mercurial
138 foo.username = foo 135 foo.username = foo
139 foo.password = bar 136 foo.password = bar
143 140
144 prefix;; 141 prefix;;
145 Either '*' or a URI prefix with or without the scheme part. The 142 Either '*' or a URI prefix with or without the scheme part. The
146 authentication entry with the longest matching prefix is used 143 authentication entry with the longest matching prefix is used
147 (where '*' matches everything and counts as a match of length 1). 144 (where '*' matches everything and counts as a match of length 1).
148 If the prefix doesn't include a scheme, the match is performed against 145 If the prefix doesn't include a scheme, the match is performed
149 the URI with its scheme stripped as well, and the schemes argument, 146 against the URI with its scheme stripped as well, and the schemes
150 q.v., is then subsequently consulted. 147 argument, q.v., is then subsequently consulted.
151 username;; 148 username;;
152 Username to authenticate with. 149 Username to authenticate with.
153 password;; 150 password;;
154 Optional. Password to authenticate with. If not given the user will be 151 Optional. Password to authenticate with. If not given the user
155 prompted for it. 152 will be prompted for it.
156 schemes;; 153 schemes;;
157 Optional. Space separated list of URI schemes to use this authentication 154 Optional. Space separated list of URI schemes to use this
158 entry with. Only used if the prefix doesn't include a scheme. Supported 155 authentication entry with. Only used if the prefix doesn't include
159 schemes are http and https. They will match static-http and static-https 156 a scheme. Supported schemes are http and https. They will match
160 respectively, as well. 157 static-http and static-https respectively, as well.
161 Default: https. 158 Default: https.
162 159
163 If no suitable authentication entry is found, the user is 160 If no suitable authentication entry is found, the user is prompted
164 prompted for credentials as usual if required by the remote. 161 for credentials as usual if required by the remote.
165 162
166 [[decode]] 163 [[decode]]
167 decode/encode:: 164 decode/encode::
168 Filters for transforming files on checkout/checkin. This would 165 Filters for transforming files on checkout/checkin. This would
169 typically be used for newline processing or other 166 typically be used for newline processing or other
170 localization/canonicalization of files. 167 localization/canonicalization of files.
171 168
172 Filters consist of a filter pattern followed by a filter command. 169 Filters consist of a filter pattern followed by a filter command.
173 Filter patterns are globs by default, rooted at the repository 170 Filter patterns are globs by default, rooted at the repository root.
174 root. For example, to match any file ending in ".txt" in the root 171 For example, to match any file ending in ".txt" in the root
175 directory only, use the pattern "*.txt". To match any file ending 172 directory only, use the pattern "*.txt". To match any file ending in
176 in ".c" anywhere in the repository, use the pattern "**.c". 173 ".c" anywhere in the repository, use the pattern "**.c".
177 174
178 The filter command can start with a specifier, either "pipe:" or 175 The filter command can start with a specifier, either "pipe:" or
179 "tempfile:". If no specifier is given, "pipe:" is used by 176 "tempfile:". If no specifier is given, "pipe:" is used by default.
180 default.
181 177
182 A "pipe:" command must accept data on stdin and return the 178 A "pipe:" command must accept data on stdin and return the
183 transformed data on stdout. 179 transformed data on stdout.
184 180
185 Pipe example: 181 Pipe example:
192 [decode] 188 [decode]
193 # recompress gzip files when writing them to the working dir (we 189 # recompress gzip files when writing them to the working dir (we
194 # can safely omit "pipe:", because it's the default) 190 # can safely omit "pipe:", because it's the default)
195 *.gz = gzip 191 *.gz = gzip
196 192
197 A "tempfile:" command is a template. The string INFILE is 193 A "tempfile:" command is a template. The string INFILE is replaced
198 replaced with the name of a temporary file that contains the data 194 with the name of a temporary file that contains the data to be
199 to be filtered by the command. The string OUTFILE is replaced 195 filtered by the command. The string OUTFILE is replaced with the
200 with the name of an empty temporary file, where the filtered data 196 name of an empty temporary file, where the filtered data must be
201 must be written by the command. 197 written by the command.
202 198
203 NOTE: the tempfile mechanism is recommended for Windows systems, 199 NOTE: the tempfile mechanism is recommended for Windows systems,
204 where the standard shell I/O redirection operators often have 200 where the standard shell I/O redirection operators often have
205 strange effects and may corrupt the contents of your files. 201 strange effects and may corrupt the contents of your files.
206 202
207 The most common usage is for LF <-> CRLF translation on Windows. 203 The most common usage is for LF <-> CRLF translation on Windows. For
208 For this, use the "smart" convertors which check for binary 204 this, use the "smart" convertors which check for binary files:
209 files:
210 205
211 [extensions] 206 [extensions]
212 hgext.win32text = 207 hgext.win32text =
213 [encode] 208 [encode]
214 ** = cleverencode: 209 ** = cleverencode:
227 [[defaults]] 222 [[defaults]]
228 defaults:: 223 defaults::
229 Use the [defaults] section to define command defaults, i.e. the 224 Use the [defaults] section to define command defaults, i.e. the
230 default options/arguments to pass to the specified commands. 225 default options/arguments to pass to the specified commands.
231 226
232 The following example makes 'hg log' run in verbose mode, and 227 The following example makes 'hg log' run in verbose mode, and 'hg
233 'hg status' show only the modified files, by default. 228 status' show only the modified files, by default.
234 229
235 [defaults] 230 [defaults]
236 log = -v 231 log = -v
237 status = -m 232 status = -m
238 233
239 The actual commands, instead of their aliases, must be used when 234 The actual commands, instead of their aliases, must be used when
240 defining command defaults. The command defaults will also be 235 defining command defaults. The command defaults will also be applied
241 applied to the aliases of the commands defined. 236 to the aliases of the commands defined.
242 237
243 [[diff]] 238 [[diff]]
244 diff:: 239 diff::
245 Settings used when displaying diffs. They are all boolean and 240 Settings used when displaying diffs. They are all boolean and
246 defaults to False. 241 defaults to False.
267 Optional. Comma-separated list of recipients' email addresses. 262 Optional. Comma-separated list of recipients' email addresses.
268 cc;; 263 cc;;
269 Optional. Comma-separated list of carbon copy recipients' 264 Optional. Comma-separated list of carbon copy recipients'
270 email addresses. 265 email addresses.
271 bcc;; 266 bcc;;
272 Optional. Comma-separated list of blind carbon copy 267 Optional. Comma-separated list of blind carbon copy recipients'
273 recipients' email addresses. Cannot be set interactively. 268 email addresses. Cannot be set interactively.
274 method;; 269 method;;
275 Optional. Method to use to send email messages. If value is 270 Optional. Method to use to send email messages. If value is "smtp"
276 "smtp" (default), use SMTP (see section "[smtp]" for 271 (default), use SMTP (see section "[smtp]" for configuration).
277 configuration). Otherwise, use as name of program to run that 272 Otherwise, use as name of program to run that acts like sendmail
278 acts like sendmail (takes "-f" option for sender, list of 273 (takes "-f" option for sender, list of recipients on command line,
279 recipients on command line, message on stdin). Normally, setting 274 message on stdin). Normally, setting this to "sendmail" or
280 this to "sendmail" or "/usr/sbin/sendmail" is enough to use 275 "/usr/sbin/sendmail" is enough to use sendmail to send messages.
281 sendmail to send messages.
282 charsets;; 276 charsets;;
283 Optional. Comma-separated list of charsets considered 277 Optional. Comma-separated list of charsets considered convenient
284 convenient for recipients. Addresses, headers, and parts not 278 for recipients. Addresses, headers, and parts not containing
285 containing patches of outgoing messages will be encoded in 279 patches of outgoing messages will be encoded in the first charset
286 the first charset to which conversion from local encoding 280 to which conversion from local encoding ($HGENCODING,
287 ($HGENCODING, ui.fallbackencoding) succeeds. If correct 281 ui.fallbackencoding) succeeds. If correct conversion fails, the
288 conversion fails, the text in question is sent as is. 282 text in question is sent as is. Defaults to empty (explicit) list.
289 Defaults to empty (explicit) list.
290 283
291 Order of outgoing email charsets: 284 Order of outgoing email charsets:
292 285
293 us-ascii always first, regardless of settings 286 us-ascii always first, regardless of settings
294 email.charsets in order given by user 287 email.charsets in order given by user
308 [[extensions]] 301 [[extensions]]
309 extensions:: 302 extensions::
310 Mercurial has an extension mechanism for adding new features. To 303 Mercurial has an extension mechanism for adding new features. To
311 enable an extension, create an entry for it in this section. 304 enable an extension, create an entry for it in this section.
312 305
313 If you know that the extension is already in Python's search 306 If you know that the extension is already in Python's search path,
314 path, you can give the name of the module, followed by "=", with 307 you can give the name of the module, followed by "=", with nothing
315 nothing after the "=". 308 after the "=".
316 309
317 Otherwise, give a name that you choose, followed by "=", followed 310 Otherwise, give a name that you choose, followed by "=", followed by
318 by the path to the ".py" file (including the file name extension) 311 the path to the ".py" file (including the file name extension) that
319 that defines the extension. 312 defines the extension.
320 313
321 To explicitly disable an extension that is enabled in an hgrc of 314 To explicitly disable an extension that is enabled in an hgrc of
322 broader scope, prepend its path with '!', as in 315 broader scope, prepend its path with '!', as in
323 'hgext.foo = !/ext/path' or 'hgext.foo = !' when path is not 316 'hgext.foo = !/ext/path' or 'hgext.foo = !' when path is not
324 supplied. 317 supplied.
343 repositories will be compatible with Mercurial before version 0.9.4. 336 repositories will be compatible with Mercurial before version 0.9.4.
344 337
345 usefncache;; 338 usefncache;;
346 Enable or disable the "fncache" repository format which enhances 339 Enable or disable the "fncache" repository format which enhances
347 the "store" repository format (which has to be enabled to use 340 the "store" repository format (which has to be enabled to use
348 fncache) to allow longer filenames and avoids using Windows reserved 341 fncache) to allow longer filenames and avoids using Windows
349 names, e.g. "nul". Enabled by default. Disabling this option ensures 342 reserved names, e.g. "nul". Enabled by default. Disabling this
350 that the on-disk format of newly created repositories will be 343 option ensures that the on-disk format of newly created
351 compatible with Mercurial before version 1.1. 344 repositories will be compatible with Mercurial before version 1.1.
352 345
353 [[merge-patterns]] 346 [[merge-patterns]]
354 merge-patterns:: 347 merge-patterns::
355 This section specifies merge tools to associate with particular file 348 This section specifies merge tools to associate with particular file
356 patterns. Tools matched here will take precedence over the default 349 patterns. Tools matched here will take precedence over the default
357 merge tool. Patterns are globs by default, rooted at the repository root. 350 merge tool. Patterns are globs by default, rooted at the repository
351 root.
358 352
359 Example: 353 Example:
360 354
361 [merge-patterns] 355 [merge-patterns]
362 **.c = kdiff3 356 **.c = kdiff3
389 Default: 0. 383 Default: 0.
390 executable;; 384 executable;;
391 Either just the name of the executable or its pathname. 385 Either just the name of the executable or its pathname.
392 Default: the tool name. 386 Default: the tool name.
393 args;; 387 args;;
394 The arguments to pass to the tool executable. You can refer to the files 388 The arguments to pass to the tool executable. You can refer to the
395 being merged as well as the output file through these variables: $base, 389 files being merged as well as the output file through these
396 $local, $other, $output. 390 variables: $base, $local, $other, $output.
397 Default: $local $base $other 391 Default: $local $base $other
398 premerge;; 392 premerge;;
399 Attempt to run internal non-interactive 3-way merge tool before 393 Attempt to run internal non-interactive 3-way merge tool before
400 launching external tool. 394 launching external tool.
401 Default: True 395 Default: True
417 Attempt to fix up EOL changes caused by the merge tool. 411 Attempt to fix up EOL changes caused by the merge tool.
418 Default: False 412 Default: False
419 gui;; 413 gui;;
420 This tool requires a graphical interface to run. Default: False 414 This tool requires a graphical interface to run. Default: False
421 regkey;; 415 regkey;;
422 Windows registry key which describes install location of this tool. 416 Windows registry key which describes install location of this
423 Mercurial will search for this key first under HKEY_CURRENT_USER and 417 tool. Mercurial will search for this key first under
424 then under HKEY_LOCAL_MACHINE. Default: None 418 HKEY_CURRENT_USER and then under HKEY_LOCAL_MACHINE.
419 Default: None
425 regname;; 420 regname;;
426 Name of value to read from specified registry key. Defaults to the 421 Name of value to read from specified registry key. Defaults to the
427 unnamed (default) value. 422 unnamed (default) value.
428 regappend;; 423 regappend;;
429 String to append to the value read from the registry, typically the 424 String to append to the value read from the registry, typically
430 executable name of the tool. Default: None 425 the executable name of the tool.
426 Default: None
431 427
432 [[hooks]] 428 [[hooks]]
433 hooks:: 429 hooks::
434 Commands or Python functions that get automatically executed by 430 Commands or Python functions that get automatically executed by
435 various actions such as starting or finishing a commit. Multiple 431 various actions such as starting or finishing a commit. Multiple
448 Most hooks are run with environment variables set that give useful 444 Most hooks are run with environment variables set that give useful
449 additional information. For each hook below, the environment 445 additional information. For each hook below, the environment
450 variables it is passed are listed with names of the form "$HG_foo". 446 variables it is passed are listed with names of the form "$HG_foo".
451 447
452 changegroup;; 448 changegroup;;
453 Run after a changegroup has been added via push, pull or 449 Run after a changegroup has been added via push, pull or unbundle.
454 unbundle. ID of the first new changeset is in $HG_NODE. URL from 450 ID of the first new changeset is in $HG_NODE. URL from which
455 which changes came is in $HG_URL. 451 changes came is in $HG_URL.
456 commit;; 452 commit;;
457 Run after a changeset has been created in the local repository. 453 Run after a changeset has been created in the local repository. ID
458 ID of the newly created changeset is in $HG_NODE. Parent 454 of the newly created changeset is in $HG_NODE. Parent changeset
459 changeset IDs are in $HG_PARENT1 and $HG_PARENT2. 455 IDs are in $HG_PARENT1 and $HG_PARENT2.
460 incoming;; 456 incoming;;
461 Run after a changeset has been pulled, pushed, or unbundled into 457 Run after a changeset has been pulled, pushed, or unbundled into
462 the local repository. The ID of the newly arrived changeset is in 458 the local repository. The ID of the newly arrived changeset is in
463 $HG_NODE. URL that was source of changes came is in $HG_URL. 459 $HG_NODE. URL that was source of changes came is in $HG_URL.
464 outgoing;; 460 outgoing;;
470 contents of the command line are passed as $HG_ARGS and the result 466 contents of the command line are passed as $HG_ARGS and the result
471 code in $HG_RESULT. Hook failure is ignored. 467 code in $HG_RESULT. Hook failure is ignored.
472 pre-<command>;; 468 pre-<command>;;
473 Run before executing the associated command. The contents of the 469 Run before executing the associated command. The contents of the
474 command line are passed as $HG_ARGS. If the hook returns failure, 470 command line are passed as $HG_ARGS. If the hook returns failure,
475 the command doesn't execute and Mercurial returns the failure code. 471 the command doesn't execute and Mercurial returns the failure
472 code.
476 prechangegroup;; 473 prechangegroup;;
477 Run before a changegroup is added via push, pull or unbundle. 474 Run before a changegroup is added via push, pull or unbundle. Exit
478 Exit status 0 allows the changegroup to proceed. Non-zero status 475 status 0 allows the changegroup to proceed. Non-zero status will
479 will cause the push, pull or unbundle to fail. URL from which 476 cause the push, pull or unbundle to fail. URL from which changes
480 changes will come is in $HG_URL. 477 will come is in $HG_URL.
481 precommit;; 478 precommit;;
482 Run before starting a local commit. Exit status 0 allows the 479 Run before starting a local commit. Exit status 0 allows the
483 commit to proceed. Non-zero status will cause the commit to fail. 480 commit to proceed. Non-zero status will cause the commit to fail.
484 Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2. 481 Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.
485 preoutgoing;; 482 preoutgoing;;
486 Run before collecting changes to send from the local repository to 483 Run before collecting changes to send from the local repository to
487 another. Non-zero status will cause failure. This lets you 484 another. Non-zero status will cause failure. This lets you prevent
488 prevent pull over http or ssh. Also prevents against local pull, 485 pull over http or ssh. Also prevents against local pull, push
489 push (outbound) or bundle commands, but not effective, since you 486 (outbound) or bundle commands, but not effective, since you can
490 can just copy files instead then. Source of operation is in 487 just copy files instead then. Source of operation is in
491 $HG_SOURCE. If "serve", operation is happening on behalf of 488 $HG_SOURCE. If "serve", operation is happening on behalf of remote
492 remote ssh or http repository. If "push", "pull" or "bundle", 489 ssh or http repository. If "push", "pull" or "bundle", operation
493 operation is happening on behalf of repository on same system. 490 is happening on behalf of repository on same system.
494 pretag;; 491 pretag;;
495 Run before creating a tag. Exit status 0 allows the tag to be 492 Run before creating a tag. Exit status 0 allows the tag to be
496 created. Non-zero status will cause the tag to fail. ID of 493 created. Non-zero status will cause the tag to fail. ID of
497 changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag 494 changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is
498 is local if $HG_LOCAL=1, in repo if $HG_LOCAL=0. 495 local if $HG_LOCAL=1, in repo if $HG_LOCAL=0.
499 pretxnchangegroup;; 496 pretxnchangegroup;;
500 Run after a changegroup has been added via push, pull or unbundle, 497 Run after a changegroup has been added via push, pull or unbundle,
501 but before the transaction has been committed. Changegroup is 498 but before the transaction has been committed. Changegroup is
502 visible to hook program. This lets you validate incoming changes 499 visible to hook program. This lets you validate incoming changes
503 before accepting them. Passed the ID of the first new changeset 500 before accepting them. Passed the ID of the first new changeset in
504 in $HG_NODE. Exit status 0 allows the transaction to commit. 501 $HG_NODE. Exit status 0 allows the transaction to commit. Non-zero
505 Non-zero status will cause the transaction to be rolled back and 502 status will cause the transaction to be rolled back and the push,
506 the push, pull or unbundle will fail. URL that was source of 503 pull or unbundle will fail. URL that was source of changes is in
507 changes is in $HG_URL. 504 $HG_URL.
508 pretxncommit;; 505 pretxncommit;;
509 Run after a changeset has been created but the transaction not yet 506 Run after a changeset has been created but the transaction not yet
510 committed. Changeset is visible to hook program. This lets you 507 committed. Changeset is visible to hook program. This lets you
511 validate commit message and changes. Exit status 0 allows the 508 validate commit message and changes. Exit status 0 allows the
512 commit to proceed. Non-zero status will cause the transaction to 509 commit to proceed. Non-zero status will cause the transaction to
516 Run before updating the working directory. Exit status 0 allows 513 Run before updating the working directory. Exit status 0 allows
517 the update to proceed. Non-zero status will prevent the update. 514 the update to proceed. Non-zero status will prevent the update.
518 Changeset ID of first new parent is in $HG_PARENT1. If merge, ID 515 Changeset ID of first new parent is in $HG_PARENT1. If merge, ID
519 of second new parent is in $HG_PARENT2. 516 of second new parent is in $HG_PARENT2.
520 tag;; 517 tag;;
521 Run after a tag is created. ID of tagged changeset is in 518 Run after a tag is created. ID of tagged changeset is in $HG_NODE.
522 $HG_NODE. Name of tag is in $HG_TAG. Tag is local if 519 Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repo if
523 $HG_LOCAL=1, in repo if $HG_LOCAL=0. 520 $HG_LOCAL=0.
524 update;; 521 update;;
525 Run after updating the working directory. Changeset ID of first 522 Run after updating the working directory. Changeset ID of first
526 new parent is in $HG_PARENT1. If merge, ID of second new parent 523 new parent is in $HG_PARENT1. If merge, ID of second new parent is
527 is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the 524 in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the
528 update failed (e.g. because conflicts not resolved), $HG_ERROR=1. 525 update failed (e.g. because conflicts not resolved), $HG_ERROR=1.
529 526
530 Note: it is generally better to use standard hooks rather 527 Note: it is generally better to use standard hooks rather than the
531 than the generic pre- and post- command hooks as they are 528 generic pre- and post- command hooks as they are guaranteed to be
532 guaranteed to be called in the appropriate contexts for 529 called in the appropriate contexts for influencing transactions.
533 influencing transactions. Also, hooks like "commit" will be 530 Also, hooks like "commit" will be called in all contexts that
534 called in all contexts that generate a commit (e.g. tag) and 531 generate a commit (e.g. tag) and not just the commit command.
535 not just the commit command. 532
536 533 Note2: Environment variables with empty values may not be passed to
537 Note2: Environment variables with empty values may not be 534 hooks on platforms such as Windows. As an example, $HG_PARENT2 will
538 passed to hooks on platforms such as Windows. As an 535 have an empty value under Unix-like platforms for non-merge
539 example, $HG_PARENT2 will have an empty value under 536 changesets, while it will not be available at all under Windows.
540 Unix-like platforms for non-merge changesets, while it
541 will not be available at all under Windows.
542 537
543 The syntax for Python hooks is as follows: 538 The syntax for Python hooks is as follows:
544 539
545 hookname = python:modulename.submodule.callable 540 hookname = python:modulename.submodule.callable
546 hookname = python:/path/to/python/module.py:callable 541 hookname = python:/path/to/python/module.py:callable
547 542
548 Python hooks are run within the Mercurial process. Each hook 543 Python hooks are run within the Mercurial process. Each hook is
549 is called with at least three keyword arguments: a ui object 544 called with at least three keyword arguments: a ui object (keyword
550 (keyword "ui"), a repository object (keyword "repo"), and a 545 "ui"), a repository object (keyword "repo"), and a "hooktype"
551 "hooktype" keyword that tells what kind of hook is used. 546 keyword that tells what kind of hook is used. Arguments listed as
552 Arguments listed as environment variables above are passed as 547 environment variables above are passed as keyword arguments, with no
553 keyword arguments, with no "HG_" prefix, and names in lower 548 "HG_" prefix, and names in lower case.
554 case. 549
555 550 If a Python hook returns a "true" value or raises an exception, this
556 If a Python hook returns a "true" value or raises an 551 is treated as a failure.
557 exception, this is treated as a failure.
558 552
559 [[http_proxy]] 553 [[http_proxy]]
560 http_proxy:: 554 http_proxy::
561 Used to access web-based Mercurial repositories through a HTTP 555 Used to access web-based Mercurial repositories through a HTTP
562 proxy. 556 proxy.
580 Optional. Port to connect to on mail server. Default: 25. 574 Optional. Port to connect to on mail server. Default: 25.
581 tls;; 575 tls;;
582 Optional. Whether to connect to mail server using TLS. True or 576 Optional. Whether to connect to mail server using TLS. True or
583 False. Default: False. 577 False. Default: False.
584 username;; 578 username;;
585 Optional. User name to authenticate to SMTP server with. 579 Optional. User name to authenticate to SMTP server with. If
586 If username is specified, password must also be specified. 580 username is specified, password must also be specified.
587 Default: none. 581 Default: none.
588 password;; 582 password;;
589 Optional. Password to authenticate to SMTP server with. 583 Optional. Password to authenticate to SMTP server with. If
590 If username is specified, password must also be specified. 584 username is specified, password must also be specified.
591 Default: none. 585 Default: none.
592 local_hostname;; 586 local_hostname;;
593 Optional. It's the hostname that the sender can use to identify itself 587 Optional. It's the hostname that the sender can use to identify
594 to the MTA. 588 itself to the MTA.
595 589
596 [[paths]] 590 [[paths]]
597 paths:: 591 paths::
598 Assigns symbolic names to repositories. The left side is the 592 Assigns symbolic names to repositories. The left side is the
599 symbolic name, and the right gives the directory or URL that is the 593 symbolic name, and the right gives the directory or URL that is the
600 location of the repository. Default paths can be declared by 594 location of the repository. Default paths can be declared by setting
601 setting the following entries. 595 the following entries.
602 default;; 596 default;;
603 Directory or URL to use when pulling if no source is specified. 597 Directory or URL to use when pulling if no source is specified.
604 Default is set to repository from which the current repository 598 Default is set to repository from which the current repository was
605 was cloned. 599 cloned.
606 default-push;; 600 default-push;;
607 Optional. Directory or URL to use when pushing if no destination 601 Optional. Directory or URL to use when pushing if no destination
608 is specified. 602 is specified.
609 603
610 [[profiling]] 604 [[profiling]]
611 profiling:: 605 profiling::
612 Specifies profiling format and file output. 606 Specifies profiling format and file output. In this section
613 In this section description, 'profiling data' stands for the raw data 607 description, 'profiling data' stands for the raw data collected
614 collected during profiling, while 'profiling report' stands for a 608 during profiling, while 'profiling report' stands for a statistical
615 statistical text report generated from the profiling data. 609 text report generated from the profiling data. The profiling is done
616 The profiling is done using lsprof. 610 using lsprof.
617 format;; 611 format;;
618 Profiling format. 612 Profiling format.
619 Default: text. 613 Default: text.
620 text;; 614 text;;
621 Generate a profiling report. 615 Generate a profiling report. When saving to a file, it should be
622 When saving to a file, it should be noted that only the report is saved, 616 noted that only the report is saved, and the profiling data is
623 and the profiling data is not kept. 617 not kept.
624 kcachegrind;; 618 kcachegrind;;
625 Format profiling data for kcachegrind use: 619 Format profiling data for kcachegrind use: when saving to a
626 when saving to a file, the generated file can directly be loaded 620 file, the generated file can directly be loaded into
627 into kcachegrind. 621 kcachegrind.
628 output;; 622 output;;
629 File path where profiling data or report should be saved. 623 File path where profiling data or report should be saved. If the
630 If the file exists, it is replaced. 624 file exists, it is replaced. Default: None, data is printed on
631 Default: None, data is printed on stderr 625 stderr
632 626
633 [[server]] 627 [[server]]
634 server:: 628 server::
635 Controls generic server settings. 629 Controls generic server settings.
636 uncompressed;; 630 uncompressed;;
643 6Mbps), uncompressed streaming is slower, because of the extra 637 6Mbps), uncompressed streaming is slower, because of the extra
644 data transfer overhead. Default is False. 638 data transfer overhead. Default is False.
645 639
646 [[trusted]] 640 [[trusted]]
647 trusted:: 641 trusted::
648 For security reasons, Mercurial will not use the settings in 642 For security reasons, Mercurial will not use the settings in the
649 the .hg/hgrc file from a repository if it doesn't belong to a 643 .hg/hgrc file from a repository if it doesn't belong to a trusted
650 trusted user or to a trusted group. The main exception is the 644 user or to a trusted group. The main exception is the web interface,
651 web interface, which automatically uses some safe settings, since 645 which automatically uses some safe settings, since it's common to
652 it's common to serve repositories from different users. 646 serve repositories from different users.
653 647
654 This section specifies what users and groups are trusted. The 648 This section specifies what users and groups are trusted. The
655 current user is always trusted. To trust everybody, list a user 649 current user is always trusted. To trust everybody, list a user or a
656 or a group with name "*". 650 group with name "*".
657 651
658 users;; 652 users;;
659 Comma-separated list of trusted users. 653 Comma-separated list of trusted users.
660 groups;; 654 groups;;
661 Comma-separated list of trusted groups. 655 Comma-separated list of trusted groups.
663 [[ui]] 657 [[ui]]
664 ui:: 658 ui::
665 User interface controls. 659 User interface controls.
666 archivemeta;; 660 archivemeta;;
667 Whether to include the .hg_archival.txt file containing metadata 661 Whether to include the .hg_archival.txt file containing metadata
668 (hashes for the repository base and for tip) in archives created by 662 (hashes for the repository base and for tip) in archives created
669 the hg archive command or downloaded via hgweb. 663 by the hg archive command or downloaded via hgweb.
670 Default is true. 664 Default is true.
671 askusername;; 665 askusername;;
672 Whether to prompt for a username when committing. If True, and 666 Whether to prompt for a username when committing. If True, and
673 neither $HGUSER nor $EMAIL has been specified, then the user will 667 neither $HGUSER nor $EMAIL has been specified, then the user will
674 be prompted to enter a username. If no username is entered, the 668 be prompted to enter a username. If no username is entered, the
675 default USER@HOST is used instead. 669 default USER@HOST is used instead.
676 Default is False. 670 Default is False.
677 debug;; 671 debug;;
678 Print debugging information. True or False. Default is False. 672 Print debugging information. True or False. Default is False.
679 editor;; 673 editor;;
680 The editor to use during a commit. Default is $EDITOR or "vi". 674 The editor to use during a commit. Default is $EDITOR or "vi".
681 fallbackencoding;; 675 fallbackencoding;;
682 Encoding to try if it's not possible to decode the changelog using 676 Encoding to try if it's not possible to decode the changelog using
683 UTF-8. Default is ISO-8859-1. 677 UTF-8. Default is ISO-8859-1.
684 ignore;; 678 ignore;;
685 A file to read per-user ignore patterns from. This file should be in 679 A file to read per-user ignore patterns from. This file should be
686 the same format as a repository-wide .hgignore file. This option 680 in the same format as a repository-wide .hgignore file. This
687 supports hook syntax, so if you want to specify multiple ignore 681 option supports hook syntax, so if you want to specify multiple
688 files, you can do so by setting something like 682 ignore files, you can do so by setting something like
689 "ignore.other = ~/.hgignore2". For details of the ignore file 683 "ignore.other = ~/.hgignore2". For details of the ignore file
690 format, see the hgignore(5) man page. 684 format, see the hgignore(5) man page.
691 interactive;; 685 interactive;;
692 Allow to prompt the user. True or False. Default is True. 686 Allow to prompt the user. True or False. Default is True.
693 logtemplate;; 687 logtemplate;;
707 701
708 For more information on configuring merge tools see the 702 For more information on configuring merge tools see the
709 merge-tools section. 703 merge-tools section.
710 704
711 patch;; 705 patch;;
712 command to use to apply patches. Look for 'gpatch' or 'patch' in PATH if 706 command to use to apply patches. Look for 'gpatch' or 'patch' in
713 unset. 707 PATH if unset.
714 quiet;; 708 quiet;;
715 Reduce the amount of output printed. True or False. Default is False. 709 Reduce the amount of output printed. True or False. Default is False.
716 remotecmd;; 710 remotecmd;;
717 remote command to use for clone/push/pull operations. Default is 'hg'. 711 remote command to use for clone/push/pull operations. Default is 'hg'.
718 report_untrusted;; 712 report_untrusted;;
719 Warn if a .hg/hgrc file is ignored due to not being owned by a 713 Warn if a .hg/hgrc file is ignored due to not being owned by a
720 trusted user or group. True or False. Default is True. 714 trusted user or group. True or False. Default is True.
721 slash;; 715 slash;;
722 Display paths using a slash ("/") as the path separator. This only 716 Display paths using a slash ("/") as the path separator. This only
723 makes a difference on systems where the default path separator is not 717 makes a difference on systems where the default path separator is
724 the slash character (e.g. Windows uses the backslash character ("\")). 718 not the slash character (e.g. Windows uses the backslash character
719 ("\")).
725 Default is False. 720 Default is False.
726 ssh;; 721 ssh;;
727 command to use for SSH connections. Default is 'ssh'. 722 command to use for SSH connections. Default is 'ssh'.
728 strict;; 723 strict;;
729 Require exact command names, instead of allowing unambiguous 724 Require exact command names, instead of allowing unambiguous
734 The timeout used when a lock is held (in seconds), a negative value 729 The timeout used when a lock is held (in seconds), a negative value
735 means no timeout. Default is 600. 730 means no timeout. Default is 600.
736 username;; 731 username;;
737 The committer of a changeset created when running "commit". 732 The committer of a changeset created when running "commit".
738 Typically a person's name and email address, e.g. "Fred Widget 733 Typically a person's name and email address, e.g. "Fred Widget
739 <fred@example.com>". Default is $EMAIL or username@hostname. 734 <fred@example.com>". Default is $EMAIL or username@hostname. If
740 If the username in hgrc is empty, it has to be specified manually or 735 the username in hgrc is empty, it has to be specified manually or
741 in a different hgrc file (e.g. $HOME/.hgrc, if the admin set "username =" 736 in a different hgrc file (e.g. $HOME/.hgrc, if the admin set
742 in the system hgrc). 737 "username =" in the system hgrc).
743 verbose;; 738 verbose;;
744 Increase the amount of output printed. True or False. Default is False. 739 Increase the amount of output printed. True or False. Default is False.
745 740
746 741
747 [[web]] 742 [[web]]
762 Default is false. 757 Default is false.
763 allowpull;; 758 allowpull;;
764 Whether to allow pulling from the repository. Default is true. 759 Whether to allow pulling from the repository. Default is true.
765 allow_push;; 760 allow_push;;
766 Whether to allow pushing to the repository. If empty or not set, 761 Whether to allow pushing to the repository. If empty or not set,
767 push is not allowed. If the special value "*", any remote user 762 push is not allowed. If the special value "*", any remote user can
768 can push, including unauthenticated users. Otherwise, the remote 763 push, including unauthenticated users. Otherwise, the remote user
769 user must have been authenticated, and the authenticated user name 764 must have been authenticated, and the authenticated user name must
770 must be present in this list (separated by whitespace or ","). 765 be present in this list (separated by whitespace or ","). The
771 The contents of the allow_push list are examined after the 766 contents of the allow_push list are examined after the deny_push
772 deny_push list. 767 list.
773 allow_read;; 768 allow_read;;
774 If the user has not already been denied repository access due to the 769 If the user has not already been denied repository access due to
775 contents of deny_read, this list determines whether to grant repository 770 the contents of deny_read, this list determines whether to grant
776 access to the user. If this list is not empty, and the user is 771 repository access to the user. If this list is not empty, and the
777 unauthenticated or not present in the list (separated by whitespace or ","), 772 user is unauthenticated or not present in the list (separated by
778 then access is denied for the user. If the list is empty or not set, then 773 whitespace or ","), then access is denied for the user. If the
779 access is permitted to all users by default. Setting allow_read to the 774 list is empty or not set, then access is permitted to all users by
780 special value "*" is equivalent to it not being set (i.e. access is 775 default. Setting allow_read to the special value "*" is equivalent
781 permitted to all users). The contents of the allow_read list are examined 776 to it not being set (i.e. access is permitted to all users). The
782 after the deny_read list. 777 contents of the allow_read list are examined after the deny_read
778 list.
783 allowzip;; 779 allowzip;;
784 (DEPRECATED) Whether to allow .zip downloading of repo revisions. 780 (DEPRECATED) Whether to allow .zip downloading of repo revisions.
785 Default is false. This feature creates temporary files. 781 Default is false. This feature creates temporary files.
786 baseurl;; 782 baseurl;;
787 Base URL to use when publishing URLs in other locations, so 783 Base URL to use when publishing URLs in other locations, so
788 third-party tools like email notification hooks can construct URLs. 784 third-party tools like email notification hooks can construct
789 Example: "http://hgserver/repos/" 785 URLs. Example: "http://hgserver/repos/"
790 contact;; 786 contact;;
791 Name or email address of the person in charge of the repository. 787 Name or email address of the person in charge of the repository.
792 Defaults to ui.username or $EMAIL or "unknown" if unset or empty. 788 Defaults to ui.username or $EMAIL or "unknown" if unset or empty.
793 deny_push;; 789 deny_push;;
794 Whether to deny pushing to the repository. If empty or not set, 790 Whether to deny pushing to the repository. If empty or not set,
795 push is not denied. If the special value "*", all remote users 791 push is not denied. If the special value "*", all remote users are
796 are denied push. Otherwise, unauthenticated users are all denied, 792 denied push. Otherwise, unauthenticated users are all denied, and
797 and any authenticated user name present in this list (separated by 793 any authenticated user name present in this list (separated by
798 whitespace or ",") is also denied. The contents of the deny_push 794 whitespace or ",") is also denied. The contents of the deny_push
799 list are examined before the allow_push list. 795 list are examined before the allow_push list.
800 deny_read;; 796 deny_read;;
801 Whether to deny reading/viewing of the repository. If this list is not 797 Whether to deny reading/viewing of the repository. If this list is
802 empty, unauthenticated users are all denied, and any authenticated user name 798 not empty, unauthenticated users are all denied, and any
803 present in this list (separated by whitespace or ",") is also denied access 799 authenticated user name present in this list (separated by
804 to the repository. If set to the special value "*", all remote users are 800 whitespace or ",") is also denied access to the repository. If set
805 denied access (rarely needed ;). If deny_read is empty or not set, the 801 to the special value "*", all remote users are denied access
806 determination of repository access depends on the presence and content of 802 (rarely needed ;). If deny_read is empty or not set, the
807 the allow_read list (see description). If both deny_read and allow_read are 803 determination of repository access depends on the presence and
808 empty or not set, then access is permitted to all users by default. If the 804 content of the allow_read list (see description). If both
809 repository is being served via hgwebdir, denied users will not be able to 805 deny_read and allow_read are empty or not set, then access is
810 see it in the list of repositories. The contents of the deny_read list have 806 permitted to all users by default. If the repository is being
811 priority over (are examined before) the contents of the allow_read list. 807 served via hgwebdir, denied users will not be able to see it in
808 the list of repositories. The contents of the deny_read list have
809 priority over (are examined before) the contents of the allow_read
810 list.
812 description;; 811 description;;
813 Textual description of the repository's purpose or contents. 812 Textual description of the repository's purpose or contents.
814 Default is "unknown". 813 Default is "unknown".
815 encoding;; 814 encoding;;
816 Character encoding name. 815 Character encoding name.
817 Example: "UTF-8" 816 Example: "UTF-8"
818 errorlog;; 817 errorlog;;
819 Where to output the error log. Default is stderr. 818 Where to output the error log. Default is stderr.
820 hidden;; 819 hidden;;
821 Whether to hide the repository in the hgwebdir index. Default is false. 820 Whether to hide the repository in the hgwebdir index.
821 Default is false.
822 ipv6;; 822 ipv6;;
823 Whether to use IPv6. Default is false. 823 Whether to use IPv6. Default is false.
824 name;; 824 name;;
825 Repository name to use in the web interface. Default is current 825 Repository name to use in the web interface. Default is current
826 working directory. 826 working directory.
834 Prefix path to serve from. Default is '' (server root). 834 Prefix path to serve from. Default is '' (server root).
835 push_ssl;; 835 push_ssl;;
836 Whether to require that inbound pushes be transported over SSL to 836 Whether to require that inbound pushes be transported over SSL to
837 prevent password sniffing. Default is true. 837 prevent password sniffing. Default is true.
838 staticurl;; 838 staticurl;;
839 Base URL to use for static files. If unset, static files (e.g. 839 Base URL to use for static files. If unset, static files (e.g. the
840 the hgicon.png favicon) will be served by the CGI script itself. 840 hgicon.png favicon) will be served by the CGI script itself. Use
841 Use this setting to serve them directly with the HTTP server. 841 this setting to serve them directly with the HTTP server.
842 Example: "http://hgserver/static/" 842 Example: "http://hgserver/static/"
843 stripes;; 843 stripes;;
844 How many lines a "zebra stripe" should span in multiline output. 844 How many lines a "zebra stripe" should span in multiline output.
845 Default is 1; set to 0 to disable. 845 Default is 1; set to 0 to disable.
846 style;; 846 style;;