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