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