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