##// END OF EJS Templates
doc: clarify that keys can be overridden
Angel Ezquerra -
r11220:157f9de9 stable
parent child Browse files
Show More
@@ -1,998 +1,1009
1 1 ======
2 2 hgrc
3 3 ======
4 4
5 5 ---------------------------------
6 6 configuration files for Mercurial
7 7 ---------------------------------
8 8
9 9 :Author: Bryan O'Sullivan <bos@serpentine.com>
10 10 :Organization: Mercurial
11 11 :Manual section: 5
12 12 :Manual group: Mercurial Manual
13 13
14 14 .. contents::
15 15 :backlinks: top
16 16 :class: htmlonly
17 17
18 18
19 19 Synopsis
20 20 --------
21 21
22 22 The Mercurial system uses a set of configuration files to control
23 23 aspects of its behavior.
24 24
25 25 Files
26 26 -----
27 27
28 28 Mercurial reads configuration data from several files, if they exist.
29 29 The names of these files depend on the system on which Mercurial is
30 30 installed. ``*.rc`` files from a single directory are read in
31 31 alphabetical order, later ones overriding earlier ones. Where multiple
32 32 paths are given below, settings from earlier paths override later
33 33 ones.
34 34
35 35 | (Unix, Windows) ``<repo>/.hg/hgrc``
36 36
37 37 Per-repository configuration options that only apply in a
38 38 particular repository. This file is not version-controlled, and
39 39 will not get transferred during a "clone" operation. Options in
40 40 this file override options in all other configuration files. On
41 41 Unix, most of this file will be ignored if it doesn't belong to a
42 42 trusted user or to a trusted group. See the documentation for the
43 43 trusted_ section below for more details.
44 44
45 45 | (Unix) ``$HOME/.hgrc``
46 46 | (Windows) ``%USERPROFILE%\.hgrc``
47 47 | (Windows) ``%USERPROFILE%\Mercurial.ini``
48 48 | (Windows) ``%HOME%\.hgrc``
49 49 | (Windows) ``%HOME%\Mercurial.ini``
50 50
51 51 Per-user configuration file(s), for the user running Mercurial. On
52 52 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
53 53 files apply to all Mercurial commands executed by this user in any
54 54 directory. Options in these files override per-system and per-installation
55 55 options.
56 56
57 57 | (Unix) ``/etc/mercurial/hgrc``
58 58 | (Unix) ``/etc/mercurial/hgrc.d/*.rc``
59 59
60 60 Per-system configuration files, for the system on which Mercurial
61 61 is running. Options in these files apply to all Mercurial commands
62 62 executed by any user in any directory. Options in these files
63 63 override per-installation options.
64 64
65 65 | (Unix) ``<install-root>/etc/mercurial/hgrc``
66 66 | (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``
67 67
68 68 Per-installation configuration files, searched for in the
69 69 directory where Mercurial is installed. ``<install-root>`` is the
70 70 parent directory of the **hg** executable (or symlink) being run. For
71 71 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
72 72 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
73 73 to all Mercurial commands executed by any user in any directory.
74 74
75 75 | (Windows) ``<install-dir>\Mercurial.ini``
76 76 | (Windows) ``<install-dir>\hgrc.d\*.rc``
77 77 | (Windows) ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial``
78 78
79 79 Per-installation/system configuration files, for the system on
80 80 which Mercurial is running. Options in these files apply to all
81 81 Mercurial commands executed by any user in any directory. Registry
82 82 keys contain PATH-like strings, every part of which must reference
83 83 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
84 84 be read. Mercurial checks each of these locations in the specified
85 85 order until one or more configuration files are detected. If the
86 86 pywin32 extensions are not installed, Mercurial will only look for
87 87 site-wide configuration in ``C:\Mercurial\Mercurial.ini``.
88 88
89 89 Syntax
90 90 ------
91 91
92 92 A configuration file consists of sections, led by a ``[section]`` header
93 and followed by ``name = value`` entries::
93 and followed by ``name = value`` entries (sometimes called
94 ``configuration keys``)::
94 95
95 96 [spam]
96 97 eggs=ham
97 98 green=
98 99 eggs
99 100
100 101 Each line contains one entry. If the lines that follow are indented,
101 102 they are treated as continuations of that entry. Leading whitespace is
102 103 removed from values. Empty lines are skipped. Lines beginning with
103 104 ``#`` or ``;`` are ignored and may be used to provide comments.
104 105
106 Configuration keys can be set multiple times, in which case mercurial
107 will use the value that was configured last. As an example::
108
109 [spam]
110 eggs=large
111 ham=serrano
112 eggs=small
113
114 This would set the configuration key named ``eggs`` to ``small``.
115
105 116 A line of the form ``%include file`` will include ``file`` into the
106 117 current configuration file. The inclusion is recursive, which means
107 118 that included files can include other files. Filenames are relative to
108 119 the configuration file in which the ``%include`` directive is found.
109 120
110 121 A line with ``%unset name`` will remove ``name`` from the current
111 122 section, if it has been set previously.
112 123
113 124 The values are either free-form text strings, lists of text strings,
114 125 or Boolean values. Lists are split on whitespace and commas. Boolean
115 126 values can be set to true using any of "1", "yes", "true", or "on" and
116 127 to false using "0", "no", "false", or "off" (all case insensitive).
117 128
118 129
119 130 Sections
120 131 --------
121 132
122 133 This section describes the different sections that may appear in a
123 134 Mercurial "hgrc" file, the purpose of each section, its possible keys,
124 135 and their possible values.
125 136
126 137 ``alias``
127 138 """""""""
128 139 Defines command aliases.
129 140 Aliases allow you to define your own commands in terms of other
130 141 commands (or aliases), optionally including arguments.
131 142
132 143 Alias definitions consist of lines of the form::
133 144
134 145 <alias> = <command> [<argument]...
135 146
136 147 For example, this definition::
137 148
138 149 latest = log --limit 5
139 150
140 151 creates a new command ``latest`` that shows only the five most recent
141 152 changesets. You can define subsequent aliases using earlier ones::
142 153
143 154 stable5 = latest -b stable
144 155
145 156 .. note:: It is possible to create aliases with the same names as
146 157 existing commands, which will then override the original
147 158 definitions. This is almost always a bad idea!
148 159
149 160
150 161 ``auth``
151 162 """"""""
152 163 Authentication credentials for HTTP authentication. Each line has
153 164 the following format::
154 165
155 166 <name>.<argument> = <value>
156 167
157 168 where ``<name>`` is used to group arguments into authentication
158 169 entries. Example::
159 170
160 171 foo.prefix = hg.intevation.org/mercurial
161 172 foo.username = foo
162 173 foo.password = bar
163 174 foo.schemes = http https
164 175
165 176 bar.prefix = secure.example.org
166 177 bar.key = path/to/file.key
167 178 bar.cert = path/to/file.cert
168 179 bar.schemes = https
169 180
170 181 Supported arguments:
171 182
172 183 ``prefix``
173 184 Either ``*`` or a URI prefix with or without the scheme part.
174 185 The authentication entry with the longest matching prefix is used
175 186 (where ``*`` matches everything and counts as a match of length
176 187 1). If the prefix doesn't include a scheme, the match is performed
177 188 against the URI with its scheme stripped as well, and the schemes
178 189 argument, q.v., is then subsequently consulted.
179 190 ``username``
180 191 Optional. Username to authenticate with. If not given, and the
181 192 remote site requires basic or digest authentication, the user
182 193 will be prompted for it.
183 194 ``password``
184 195 Optional. Password to authenticate with. If not given, and the
185 196 remote site requires basic or digest authentication, the user
186 197 will be prompted for it.
187 198 ``key``
188 199 Optional. PEM encoded client certificate key file.
189 200 ``cert``
190 201 Optional. PEM encoded client certificate chain file.
191 202 ``schemes``
192 203 Optional. Space separated list of URI schemes to use this
193 204 authentication entry with. Only used if the prefix doesn't include
194 205 a scheme. Supported schemes are http and https. They will match
195 206 static-http and static-https respectively, as well.
196 207 Default: https.
197 208
198 209 If no suitable authentication entry is found, the user is prompted
199 210 for credentials as usual if required by the remote.
200 211
201 212
202 213 ``decode/encode``
203 214 """""""""""""""""
204 215 Filters for transforming files on checkout/checkin. This would
205 216 typically be used for newline processing or other
206 217 localization/canonicalization of files.
207 218
208 219 Filters consist of a filter pattern followed by a filter command.
209 220 Filter patterns are globs by default, rooted at the repository root.
210 221 For example, to match any file ending in ``.txt`` in the root
211 222 directory only, use the pattern ``*.txt``. To match any file ending
212 223 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
213 224 For each file only the first matching filter applies.
214 225
215 226 The filter command can start with a specifier, either ``pipe:`` or
216 227 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
217 228
218 229 A ``pipe:`` command must accept data on stdin and return the transformed
219 230 data on stdout.
220 231
221 232 Pipe example::
222 233
223 234 [encode]
224 235 # uncompress gzip files on checkin to improve delta compression
225 236 # note: not necessarily a good idea, just an example
226 237 *.gz = pipe: gunzip
227 238
228 239 [decode]
229 240 # recompress gzip files when writing them to the working dir (we
230 241 # can safely omit "pipe:", because it's the default)
231 242 *.gz = gzip
232 243
233 244 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
234 245 with the name of a temporary file that contains the data to be
235 246 filtered by the command. The string ``OUTFILE`` is replaced with the name
236 247 of an empty temporary file, where the filtered data must be written by
237 248 the command.
238 249
239 250 .. note:: The tempfile mechanism is recommended for Windows systems,
240 251 where the standard shell I/O redirection operators often have
241 252 strange effects and may corrupt the contents of your files.
242 253
243 254 The most common usage is for LF <-> CRLF translation on Windows. For
244 255 this, use the "smart" converters which check for binary files::
245 256
246 257 [extensions]
247 258 hgext.win32text =
248 259 [encode]
249 260 ** = cleverencode:
250 261 [decode]
251 262 ** = cleverdecode:
252 263
253 264 or if you only want to translate certain files::
254 265
255 266 [extensions]
256 267 hgext.win32text =
257 268 [encode]
258 269 **.txt = dumbencode:
259 270 [decode]
260 271 **.txt = dumbdecode:
261 272
262 273
263 274 ``defaults``
264 275 """"""""""""
265 276
266 277 (defaults are deprecated. Don't use them. Use aliases instead)
267 278
268 279 Use the ``[defaults]`` section to define command defaults, i.e. the
269 280 default options/arguments to pass to the specified commands.
270 281
271 282 The following example makes ``hg log`` run in verbose mode, and ``hg
272 283 status`` show only the modified files, by default::
273 284
274 285 [defaults]
275 286 log = -v
276 287 status = -m
277 288
278 289 The actual commands, instead of their aliases, must be used when
279 290 defining command defaults. The command defaults will also be applied
280 291 to the aliases of the commands defined.
281 292
282 293
283 294 ``diff``
284 295 """"""""
285 296
286 297 Settings used when displaying diffs. They are all Boolean and
287 298 defaults to False.
288 299
289 300 ``git``
290 301 Use git extended diff format.
291 302 ``nodates``
292 303 Don't include dates in diff headers.
293 304 ``showfunc``
294 305 Show which function each change is in.
295 306 ``ignorews``
296 307 Ignore white space when comparing lines.
297 308 ``ignorewsamount``
298 309 Ignore changes in the amount of white space.
299 310 ``ignoreblanklines``
300 311 Ignore changes whose lines are all blank.
301 312
302 313 ``email``
303 314 """""""""
304 315 Settings for extensions that send email messages.
305 316
306 317 ``from``
307 318 Optional. Email address to use in "From" header and SMTP envelope
308 319 of outgoing messages.
309 320 ``to``
310 321 Optional. Comma-separated list of recipients' email addresses.
311 322 ``cc``
312 323 Optional. Comma-separated list of carbon copy recipients'
313 324 email addresses.
314 325 ``bcc``
315 326 Optional. Comma-separated list of blind carbon copy recipients'
316 327 email addresses.
317 328 ``method``
318 329 Optional. Method to use to send email messages. If value is ``smtp``
319 330 (default), use SMTP (see the SMTP_ section for configuration).
320 331 Otherwise, use as name of program to run that acts like sendmail
321 332 (takes ``-f`` option for sender, list of recipients on command line,
322 333 message on stdin). Normally, setting this to ``sendmail`` or
323 334 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
324 335 ``charsets``
325 336 Optional. Comma-separated list of character sets considered
326 337 convenient for recipients. Addresses, headers, and parts not
327 338 containing patches of outgoing messages will be encoded in the
328 339 first character set to which conversion from local encoding
329 340 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
330 341 conversion fails, the text in question is sent as is. Defaults to
331 342 empty (explicit) list.
332 343
333 344 Order of outgoing email character sets:
334 345
335 346 1. ``us-ascii``: always first, regardless of settings
336 347 2. ``email.charsets``: in order given by user
337 348 3. ``ui.fallbackencoding``: if not in email.charsets
338 349 4. ``$HGENCODING``: if not in email.charsets
339 350 5. ``utf-8``: always last, regardless of settings
340 351
341 352 Email example::
342 353
343 354 [email]
344 355 from = Joseph User <joe.user@example.com>
345 356 method = /usr/sbin/sendmail
346 357 # charsets for western Europeans
347 358 # us-ascii, utf-8 omitted, as they are tried first and last
348 359 charsets = iso-8859-1, iso-8859-15, windows-1252
349 360
350 361
351 362 ``extensions``
352 363 """"""""""""""
353 364
354 365 Mercurial has an extension mechanism for adding new features. To
355 366 enable an extension, create an entry for it in this section.
356 367
357 368 If you know that the extension is already in Python's search path,
358 369 you can give the name of the module, followed by ``=``, with nothing
359 370 after the ``=``.
360 371
361 372 Otherwise, give a name that you choose, followed by ``=``, followed by
362 373 the path to the ``.py`` file (including the file name extension) that
363 374 defines the extension.
364 375
365 376 To explicitly disable an extension that is enabled in an hgrc of
366 377 broader scope, prepend its path with ``!``, as in
367 378 ``hgext.foo = !/ext/path`` or ``hgext.foo = !`` when path is not
368 379 supplied.
369 380
370 381 Example for ``~/.hgrc``::
371 382
372 383 [extensions]
373 384 # (the mq extension will get loaded from Mercurial's path)
374 385 hgext.mq =
375 386 # (this extension will get loaded from the file specified)
376 387 myfeature = ~/.hgext/myfeature.py
377 388
378 389
379 390 ``format``
380 391 """"""""""
381 392
382 393 ``usestore``
383 394 Enable or disable the "store" repository format which improves
384 395 compatibility with systems that fold case or otherwise mangle
385 396 filenames. Enabled by default. Disabling this option will allow
386 397 you to store longer filenames in some situations at the expense of
387 398 compatibility and ensures that the on-disk format of newly created
388 399 repositories will be compatible with Mercurial before version 0.9.4.
389 400
390 401 ``usefncache``
391 402 Enable or disable the "fncache" repository format which enhances
392 403 the "store" repository format (which has to be enabled to use
393 404 fncache) to allow longer filenames and avoids using Windows
394 405 reserved names, e.g. "nul". Enabled by default. Disabling this
395 406 option ensures that the on-disk format of newly created
396 407 repositories will be compatible with Mercurial before version 1.1.
397 408
398 409 ``merge-patterns``
399 410 """"""""""""""""""
400 411
401 412 This section specifies merge tools to associate with particular file
402 413 patterns. Tools matched here will take precedence over the default
403 414 merge tool. Patterns are globs by default, rooted at the repository
404 415 root.
405 416
406 417 Example::
407 418
408 419 [merge-patterns]
409 420 **.c = kdiff3
410 421 **.jpg = myimgmerge
411 422
412 423 ``merge-tools``
413 424 """""""""""""""
414 425
415 426 This section configures external merge tools to use for file-level
416 427 merges.
417 428
418 429 Example ``~/.hgrc``::
419 430
420 431 [merge-tools]
421 432 # Override stock tool location
422 433 kdiff3.executable = ~/bin/kdiff3
423 434 # Specify command line
424 435 kdiff3.args = $base $local $other -o $output
425 436 # Give higher priority
426 437 kdiff3.priority = 1
427 438
428 439 # Define new tool
429 440 myHtmlTool.args = -m $local $other $base $output
430 441 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
431 442 myHtmlTool.priority = 1
432 443
433 444 Supported arguments:
434 445
435 446 ``priority``
436 447 The priority in which to evaluate this tool.
437 448 Default: 0.
438 449 ``executable``
439 450 Either just the name of the executable or its pathname. On Windows,
440 451 the path can use environment variables with ${ProgramFiles} syntax.
441 452 Default: the tool name.
442 453 ``args``
443 454 The arguments to pass to the tool executable. You can refer to the
444 455 files being merged as well as the output file through these
445 456 variables: ``$base``, ``$local``, ``$other``, ``$output``.
446 457 Default: ``$local $base $other``
447 458 ``premerge``
448 459 Attempt to run internal non-interactive 3-way merge tool before
449 460 launching external tool.
450 461 Default: True
451 462 ``binary``
452 463 This tool can merge binary files. Defaults to False, unless tool
453 464 was selected by file pattern match.
454 465 ``symlink``
455 466 This tool can merge symlinks. Defaults to False, even if tool was
456 467 selected by file pattern match.
457 468 ``checkconflicts``
458 469 Check whether there are conflicts even though the tool reported
459 470 success.
460 471 Default: False
461 472 ``checkchanged``
462 473 Check whether outputs were written even though the tool reported
463 474 success.
464 475 Default: False
465 476 ``fixeol``
466 477 Attempt to fix up EOL changes caused by the merge tool.
467 478 Default: False
468 479 ``gui``
469 480 This tool requires a graphical interface to run. Default: False
470 481 ``regkey``
471 482 Windows registry key which describes install location of this
472 483 tool. Mercurial will search for this key first under
473 484 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
474 485 Default: None
475 486 ``regname``
476 487 Name of value to read from specified registry key. Defaults to the
477 488 unnamed (default) value.
478 489 ``regappend``
479 490 String to append to the value read from the registry, typically
480 491 the executable name of the tool.
481 492 Default: None
482 493
483 494
484 495 ``hooks``
485 496 """""""""
486 497 Commands or Python functions that get automatically executed by
487 498 various actions such as starting or finishing a commit. Multiple
488 499 hooks can be run for the same action by appending a suffix to the
489 500 action. Overriding a site-wide hook can be done by changing its
490 501 value or setting it to an empty string.
491 502
492 503 Example ``.hg/hgrc``::
493 504
494 505 [hooks]
495 506 # update working directory after adding changesets
496 507 changegroup.update = hg update
497 508 # do not use the site-wide hook
498 509 incoming =
499 510 incoming.email = /my/email/hook
500 511 incoming.autobuild = /my/build/hook
501 512
502 513 Most hooks are run with environment variables set that give useful
503 514 additional information. For each hook below, the environment
504 515 variables it is passed are listed with names of the form ``$HG_foo``.
505 516
506 517 ``changegroup``
507 518 Run after a changegroup has been added via push, pull or unbundle.
508 519 ID of the first new changeset is in ``$HG_NODE``. URL from which
509 520 changes came is in ``$HG_URL``.
510 521 ``commit``
511 522 Run after a changeset has been created in the local repository. ID
512 523 of the newly created changeset is in ``$HG_NODE``. Parent changeset
513 524 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
514 525 ``incoming``
515 526 Run after a changeset has been pulled, pushed, or unbundled into
516 527 the local repository. The ID of the newly arrived changeset is in
517 528 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
518 529 ``outgoing``
519 530 Run after sending changes from local repository to another. ID of
520 531 first changeset sent is in ``$HG_NODE``. Source of operation is in
521 532 ``$HG_SOURCE``; see "preoutgoing" hook for description.
522 533 ``post-<command>``
523 534 Run after successful invocations of the associated command. The
524 535 contents of the command line are passed as ``$HG_ARGS`` and the result
525 536 code in ``$HG_RESULT``. Hook failure is ignored.
526 537 ``pre-<command>``
527 538 Run before executing the associated command. The contents of the
528 539 command line are passed as ``$HG_ARGS``. If the hook returns failure,
529 540 the command doesn't execute and Mercurial returns the failure
530 541 code.
531 542 ``prechangegroup``
532 543 Run before a changegroup is added via push, pull or unbundle. Exit
533 544 status 0 allows the changegroup to proceed. Non-zero status will
534 545 cause the push, pull or unbundle to fail. URL from which changes
535 546 will come is in ``$HG_URL``.
536 547 ``precommit``
537 548 Run before starting a local commit. Exit status 0 allows the
538 549 commit to proceed. Non-zero status will cause the commit to fail.
539 550 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
540 551 ``preoutgoing``
541 552 Run before collecting changes to send from the local repository to
542 553 another. Non-zero status will cause failure. This lets you prevent
543 554 pull over HTTP or SSH. Also prevents against local pull, push
544 555 (outbound) or bundle commands, but not effective, since you can
545 556 just copy files instead then. Source of operation is in
546 557 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
547 558 SSH or HTTP repository. If "push", "pull" or "bundle", operation
548 559 is happening on behalf of repository on same system.
549 560 ``pretag``
550 561 Run before creating a tag. Exit status 0 allows the tag to be
551 562 created. Non-zero status will cause the tag to fail. ID of
552 563 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
553 564 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
554 565 ``pretxnchangegroup``
555 566 Run after a changegroup has been added via push, pull or unbundle,
556 567 but before the transaction has been committed. Changegroup is
557 568 visible to hook program. This lets you validate incoming changes
558 569 before accepting them. Passed the ID of the first new changeset in
559 570 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
560 571 status will cause the transaction to be rolled back and the push,
561 572 pull or unbundle will fail. URL that was source of changes is in
562 573 ``$HG_URL``.
563 574 ``pretxncommit``
564 575 Run after a changeset has been created but the transaction not yet
565 576 committed. Changeset is visible to hook program. This lets you
566 577 validate commit message and changes. Exit status 0 allows the
567 578 commit to proceed. Non-zero status will cause the transaction to
568 579 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
569 580 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
570 581 ``preupdate``
571 582 Run before updating the working directory. Exit status 0 allows
572 583 the update to proceed. Non-zero status will prevent the update.
573 584 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
574 585 of second new parent is in ``$HG_PARENT2``.
575 586 ``tag``
576 587 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
577 588 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
578 589 repository if ``$HG_LOCAL=0``.
579 590 ``update``
580 591 Run after updating the working directory. Changeset ID of first
581 592 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
582 593 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
583 594 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
584 595
585 596 .. note:: It is generally better to use standard hooks rather than the
586 597 generic pre- and post- command hooks as they are guaranteed to be
587 598 called in the appropriate contexts for influencing transactions.
588 599 Also, hooks like "commit" will be called in all contexts that
589 600 generate a commit (e.g. tag) and not just the commit command.
590 601
591 602 .. note:: Environment variables with empty values may not be passed to
592 603 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
593 604 will have an empty value under Unix-like platforms for non-merge
594 605 changesets, while it will not be available at all under Windows.
595 606
596 607 The syntax for Python hooks is as follows::
597 608
598 609 hookname = python:modulename.submodule.callable
599 610 hookname = python:/path/to/python/module.py:callable
600 611
601 612 Python hooks are run within the Mercurial process. Each hook is
602 613 called with at least three keyword arguments: a ui object (keyword
603 614 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
604 615 keyword that tells what kind of hook is used. Arguments listed as
605 616 environment variables above are passed as keyword arguments, with no
606 617 ``HG_`` prefix, and names in lower case.
607 618
608 619 If a Python hook returns a "true" value or raises an exception, this
609 620 is treated as a failure.
610 621
611 622
612 623 ``http_proxy``
613 624 """"""""""""""
614 625 Used to access web-based Mercurial repositories through a HTTP
615 626 proxy.
616 627
617 628 ``host``
618 629 Host name and (optional) port of the proxy server, for example
619 630 "myproxy:8000".
620 631 ``no``
621 632 Optional. Comma-separated list of host names that should bypass
622 633 the proxy.
623 634 ``passwd``
624 635 Optional. Password to authenticate with at the proxy server.
625 636 ``user``
626 637 Optional. User name to authenticate with at the proxy server.
627 638 ``always``
628 639 Optional. Always use the proxy, even for localhost and any entries
629 640 in ``http_proxy.no``. True or False. Default: False.
630 641
631 642 ``smtp``
632 643 """"""""
633 644 Configuration for extensions that need to send email messages.
634 645
635 646 ``host``
636 647 Host name of mail server, e.g. "mail.example.com".
637 648 ``port``
638 649 Optional. Port to connect to on mail server. Default: 25.
639 650 ``tls``
640 651 Optional. Whether to connect to mail server using TLS. True or
641 652 False. Default: False.
642 653 ``username``
643 654 Optional. User name to authenticate to SMTP server with. If
644 655 username is specified, password must also be specified.
645 656 Default: none.
646 657 ``password``
647 658 Optional. Password to authenticate to SMTP server with. If
648 659 username is specified, password must also be specified.
649 660 Default: none.
650 661 ``local_hostname``
651 662 Optional. It's the hostname that the sender can use to identify
652 663 itself to the MTA.
653 664
654 665
655 666 ``patch``
656 667 """""""""
657 668 Settings used when applying patches, for instance through the 'import'
658 669 command or with Mercurial Queues extension.
659 670
660 671 ``eol``
661 672 When set to 'strict' patch content and patched files end of lines
662 673 are preserved. When set to ``lf`` or ``crlf``, both files end of
663 674 lines are ignored when patching and the result line endings are
664 675 normalized to either LF (Unix) or CRLF (Windows). When set to
665 676 ``auto``, end of lines are again ignored while patching but line
666 677 endings in patched files are normalized to their original setting
667 678 on a per-file basis. If target file does not exist or has no end
668 679 of line, patch line endings are preserved.
669 680 Default: strict.
670 681
671 682
672 683 ``paths``
673 684 """""""""
674 685 Assigns symbolic names to repositories. The left side is the
675 686 symbolic name, and the right gives the directory or URL that is the
676 687 location of the repository. Default paths can be declared by setting
677 688 the following entries.
678 689
679 690 ``default``
680 691 Directory or URL to use when pulling if no source is specified.
681 692 Default is set to repository from which the current repository was
682 693 cloned.
683 694 ``default-push``
684 695 Optional. Directory or URL to use when pushing if no destination
685 696 is specified.
686 697
687 698
688 699 ``profiling``
689 700 """""""""""""
690 701 Specifies profiling format and file output. In this section
691 702 description, 'profiling data' stands for the raw data collected
692 703 during profiling, while 'profiling report' stands for a statistical
693 704 text report generated from the profiling data. The profiling is done
694 705 using lsprof.
695 706
696 707 ``format``
697 708 Profiling format.
698 709 Default: text.
699 710
700 711 ``text``
701 712 Generate a profiling report. When saving to a file, it should be
702 713 noted that only the report is saved, and the profiling data is
703 714 not kept.
704 715 ``kcachegrind``
705 716 Format profiling data for kcachegrind use: when saving to a
706 717 file, the generated file can directly be loaded into
707 718 kcachegrind.
708 719 ``output``
709 720 File path where profiling data or report should be saved. If the
710 721 file exists, it is replaced. Default: None, data is printed on
711 722 stderr
712 723
713 724 ``server``
714 725 """"""""""
715 726 Controls generic server settings.
716 727
717 728 ``uncompressed``
718 729 Whether to allow clients to clone a repository using the
719 730 uncompressed streaming protocol. This transfers about 40% more
720 731 data than a regular clone, but uses less memory and CPU on both
721 732 server and client. Over a LAN (100 Mbps or better) or a very fast
722 733 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
723 734 regular clone. Over most WAN connections (anything slower than
724 735 about 6 Mbps), uncompressed streaming is slower, because of the
725 736 extra data transfer overhead. This mode will also temporarily hold
726 737 the write lock while determining what data to transfer.
727 738 Default is True.
728 739
729 740 ``validate``
730 741 Whether to validate the completeness of pushed changesets by
731 742 checking that all new file revisions specified in manifests are
732 743 present. Default is False.
733 744
734 745 ``trusted``
735 746 """""""""""
736 747 For security reasons, Mercurial will not use the settings in the
737 748 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
738 749 user or to a trusted group. The main exception is the web interface,
739 750 which automatically uses some safe settings, since it's common to
740 751 serve repositories from different users.
741 752
742 753 This section specifies what users and groups are trusted. The
743 754 current user is always trusted. To trust everybody, list a user or a
744 755 group with name ``*``.
745 756
746 757 ``users``
747 758 Comma-separated list of trusted users.
748 759 ``groups``
749 760 Comma-separated list of trusted groups.
750 761
751 762
752 763 ``ui``
753 764 """"""
754 765
755 766 User interface controls.
756 767
757 768 ``archivemeta``
758 769 Whether to include the .hg_archival.txt file containing meta data
759 770 (hashes for the repository base and for tip) in archives created
760 771 by the hg archive command or downloaded via hgweb.
761 772 Default is True.
762 773 ``askusername``
763 774 Whether to prompt for a username when committing. If True, and
764 775 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
765 776 be prompted to enter a username. If no username is entered, the
766 777 default ``USER@HOST`` is used instead.
767 778 Default is False.
768 779 ``debug``
769 780 Print debugging information. True or False. Default is False.
770 781 ``editor``
771 782 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
772 783 ``fallbackencoding``
773 784 Encoding to try if it's not possible to decode the changelog using
774 785 UTF-8. Default is ISO-8859-1.
775 786 ``ignore``
776 787 A file to read per-user ignore patterns from. This file should be
777 788 in the same format as a repository-wide .hgignore file. This
778 789 option supports hook syntax, so if you want to specify multiple
779 790 ignore files, you can do so by setting something like
780 791 ``ignore.other = ~/.hgignore2``. For details of the ignore file
781 792 format, see the |hgignore(5)|_ man page.
782 793 ``interactive``
783 794 Allow to prompt the user. True or False. Default is True.
784 795 ``logtemplate``
785 796 Template string for commands that print changesets.
786 797 ``merge``
787 798 The conflict resolution program to use during a manual merge.
788 799 There are some internal tools available:
789 800
790 801 ``internal:local``
791 802 keep the local version
792 803 ``internal:other``
793 804 use the other version
794 805 ``internal:merge``
795 806 use the internal non-interactive merge tool
796 807 ``internal:fail``
797 808 fail to merge
798 809
799 810 For more information on configuring merge tools see the
800 811 merge-tools_ section.
801 812
802 813 ``patch``
803 814 command to use to apply patches. Look for ``gpatch`` or ``patch`` in
804 815 PATH if unset.
805 816 ``quiet``
806 817 Reduce the amount of output printed. True or False. Default is False.
807 818 ``remotecmd``
808 819 remote command to use for clone/push/pull operations. Default is ``hg``.
809 820 ``report_untrusted``
810 821 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
811 822 trusted user or group. True or False. Default is True.
812 823 ``slash``
813 824 Display paths using a slash (``/``) as the path separator. This
814 825 only makes a difference on systems where the default path
815 826 separator is not the slash character (e.g. Windows uses the
816 827 backslash character (``\``)).
817 828 Default is False.
818 829 ``ssh``
819 830 command to use for SSH connections. Default is ``ssh``.
820 831 ``strict``
821 832 Require exact command names, instead of allowing unambiguous
822 833 abbreviations. True or False. Default is False.
823 834 ``style``
824 835 Name of style to use for command output.
825 836 ``timeout``
826 837 The timeout used when a lock is held (in seconds), a negative value
827 838 means no timeout. Default is 600.
828 839 ``traceback``
829 840 Mercurial always prints a traceback when an unknown exception
830 841 occurs. Setting this to True will make Mercurial print a traceback
831 842 on all exceptions, even those recognized by Mercurial (such as
832 843 IOError or MemoryError). Default is False.
833 844 ``username``
834 845 The committer of a changeset created when running "commit".
835 846 Typically a person's name and email address, e.g. ``Fred Widget
836 847 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
837 848 the username in hgrc is empty, it has to be specified manually or
838 849 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
839 850 ``username =`` in the system hgrc).
840 851 ``verbose``
841 852 Increase the amount of output printed. True or False. Default is False.
842 853
843 854
844 855 ``web``
845 856 """""""
846 857 Web interface configuration.
847 858
848 859 ``accesslog``
849 860 Where to output the access log. Default is stdout.
850 861 ``address``
851 862 Interface address to bind to. Default is all.
852 863 ``allow_archive``
853 864 List of archive format (bz2, gz, zip) allowed for downloading.
854 865 Default is empty.
855 866 ``allowbz2``
856 867 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
857 868 revisions.
858 869 Default is False.
859 870 ``allowgz``
860 871 (DEPRECATED) Whether to allow .tar.gz downloading of repository
861 872 revisions.
862 873 Default is False.
863 874 ``allowpull``
864 875 Whether to allow pulling from the repository. Default is True.
865 876 ``allow_push``
866 877 Whether to allow pushing to the repository. If empty or not set,
867 878 push is not allowed. If the special value ``*``, any remote user can
868 879 push, including unauthenticated users. Otherwise, the remote user
869 880 must have been authenticated, and the authenticated user name must
870 881 be present in this list (separated by whitespace or ``,``). The
871 882 contents of the allow_push list are examined after the deny_push
872 883 list.
873 884 ``allow_read``
874 885 If the user has not already been denied repository access due to
875 886 the contents of deny_read, this list determines whether to grant
876 887 repository access to the user. If this list is not empty, and the
877 888 user is unauthenticated or not present in the list (separated by
878 889 whitespace or ``,``), then access is denied for the user. If the
879 890 list is empty or not set, then access is permitted to all users by
880 891 default. Setting allow_read to the special value ``*`` is equivalent
881 892 to it not being set (i.e. access is permitted to all users). The
882 893 contents of the allow_read list are examined after the deny_read
883 894 list.
884 895 ``allowzip``
885 896 (DEPRECATED) Whether to allow .zip downloading of repository
886 897 revisions. Default is False. This feature creates temporary files.
887 898 ``baseurl``
888 899 Base URL to use when publishing URLs in other locations, so
889 900 third-party tools like email notification hooks can construct
890 901 URLs. Example: ``http://hgserver/repos/``.
891 902 ``cacerts``
892 903 Path to file containing a list of PEM encoded certificate authorities
893 904 that may be used to verify an SSL server's identity. The form must be
894 905 as follows::
895 906
896 907 -----BEGIN CERTIFICATE-----
897 908 ... (certificate in base64 PEM encoding) ...
898 909 -----END CERTIFICATE-----
899 910 -----BEGIN CERTIFICATE-----
900 911 ... (certificate in base64 PEM encoding) ...
901 912 -----END CERTIFICATE-----
902 913
903 914 This feature is only supported when using Python 2.6. If you wish to
904 915 use it with earlier versions of Python, install the backported
905 916 version of the ssl library that is available from
906 917 ``http://pypi.python.org``.
907 918
908 919 You can use OpenSSL's CA certificate file if your platform has one.
909 920 On most Linux systems this will be ``/etc/ssl/certs/ca-certificates.crt``.
910 921 Otherwise you will have to generate this file manually.
911 922 ``contact``
912 923 Name or email address of the person in charge of the repository.
913 924 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
914 925 ``deny_push``
915 926 Whether to deny pushing to the repository. If empty or not set,
916 927 push is not denied. If the special value ``*``, all remote users are
917 928 denied push. Otherwise, unauthenticated users are all denied, and
918 929 any authenticated user name present in this list (separated by
919 930 whitespace or ``,``) is also denied. The contents of the deny_push
920 931 list are examined before the allow_push list.
921 932 ``deny_read``
922 933 Whether to deny reading/viewing of the repository. If this list is
923 934 not empty, unauthenticated users are all denied, and any
924 935 authenticated user name present in this list (separated by
925 936 whitespace or ``,``) is also denied access to the repository. If set
926 937 to the special value ``*``, all remote users are denied access
927 938 (rarely needed ;). If deny_read is empty or not set, the
928 939 determination of repository access depends on the presence and
929 940 content of the allow_read list (see description). If both
930 941 deny_read and allow_read are empty or not set, then access is
931 942 permitted to all users by default. If the repository is being
932 943 served via hgwebdir, denied users will not be able to see it in
933 944 the list of repositories. The contents of the deny_read list have
934 945 priority over (are examined before) the contents of the allow_read
935 946 list.
936 947 ``descend``
937 948 hgwebdir indexes will not descend into subdirectories. Only repositories
938 949 directly in the current path will be shown (other repositories are still
939 950 available from the index corresponding to their containing path).
940 951 ``description``
941 952 Textual description of the repository's purpose or contents.
942 953 Default is "unknown".
943 954 ``encoding``
944 955 Character encoding name.
945 956 Example: "UTF-8"
946 957 ``errorlog``
947 958 Where to output the error log. Default is stderr.
948 959 ``hidden``
949 960 Whether to hide the repository in the hgwebdir index.
950 961 Default is False.
951 962 ``ipv6``
952 963 Whether to use IPv6. Default is False.
953 964 ``name``
954 965 Repository name to use in the web interface. Default is current
955 966 working directory.
956 967 ``maxchanges``
957 968 Maximum number of changes to list on the changelog. Default is 10.
958 969 ``maxfiles``
959 970 Maximum number of files to list per changeset. Default is 10.
960 971 ``port``
961 972 Port to listen on. Default is 8000.
962 973 ``prefix``
963 974 Prefix path to serve from. Default is '' (server root).
964 975 ``push_ssl``
965 976 Whether to require that inbound pushes be transported over SSL to
966 977 prevent password sniffing. Default is True.
967 978 ``staticurl``
968 979 Base URL to use for static files. If unset, static files (e.g. the
969 980 hgicon.png favicon) will be served by the CGI script itself. Use
970 981 this setting to serve them directly with the HTTP server.
971 982 Example: ``http://hgserver/static/``.
972 983 ``stripes``
973 984 How many lines a "zebra stripe" should span in multiline output.
974 985 Default is 1; set to 0 to disable.
975 986 ``style``
976 987 Which template map style to use.
977 988 ``templates``
978 989 Where to find the HTML templates. Default is install path.
979 990
980 991
981 992 Author
982 993 ------
983 994 Bryan O'Sullivan <bos@serpentine.com>.
984 995
985 996 Mercurial was written by Matt Mackall <mpm@selenic.com>.
986 997
987 998 See Also
988 999 --------
989 1000 |hg(1)|_, |hgignore(5)|_
990 1001
991 1002 Copying
992 1003 -------
993 1004 This manual page is copyright 2005 Bryan O'Sullivan.
994 1005 Mercurial is copyright 2005-2010 Matt Mackall.
995 1006 Free use of this software is granted under the terms of the GNU General
996 1007 Public License version 2 or any later version.
997 1008
998 1009 .. include:: common.txt
General Comments 0
You need to be logged in to leave comments. Login now