##// END OF EJS Templates
help/config: make defaults consistent
timeless@mozdev.org -
r26182:6832ba52 default
parent child Browse files
Show More
@@ -1,1828 +1,1831 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 .. container:: verbose.unix
32 32
33 33 On Unix, the following files are consulted:
34 34
35 35 - ``<repo>/.hg/hgrc`` (per-repository)
36 36 - ``$HOME/.hgrc`` (per-user)
37 37 - ``<install-root>/etc/mercurial/hgrc`` (per-installation)
38 38 - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)
39 39 - ``/etc/mercurial/hgrc`` (per-system)
40 40 - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)
41 41 - ``<internal>/default.d/*.rc`` (defaults)
42 42
43 43 .. container:: verbose.windows
44 44
45 45 On Windows, the following files are consulted:
46 46
47 47 - ``<repo>/.hg/hgrc`` (per-repository)
48 48 - ``%USERPROFILE%\.hgrc`` (per-user)
49 49 - ``%USERPROFILE%\Mercurial.ini`` (per-user)
50 50 - ``%HOME%\.hgrc`` (per-user)
51 51 - ``%HOME%\Mercurial.ini`` (per-user)
52 52 - ``<install-dir>\Mercurial.ini`` (per-installation)
53 53 - ``<install-dir>\hgrc.d\*.rc`` (per-installation)
54 54 - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation)
55 55 - ``<internal>/default.d/*.rc`` (defaults)
56 56
57 57 .. note::
58 58
59 59 The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial``
60 60 is used when running 32-bit Python on 64-bit Windows.
61 61
62 62 .. container:: verbose.plan9
63 63
64 64 On Plan9, the following files are consulted:
65 65
66 66 - ``<repo>/.hg/hgrc`` (per-repository)
67 67 - ``$home/lib/hgrc`` (per-user)
68 68 - ``<install-root>/lib/mercurial/hgrc`` (per-installation)
69 69 - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)
70 70 - ``/lib/mercurial/hgrc`` (per-system)
71 71 - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)
72 72 - ``<internal>/default.d/*.rc`` (defaults)
73 73
74 74 Per-repository configuration options only apply in a
75 75 particular repository. This file is not version-controlled, and
76 76 will not get transferred during a "clone" operation. Options in
77 77 this file override options in all other configuration files. On
78 78 Plan 9 and Unix, most of this file will be ignored if it doesn't
79 79 belong to a trusted user or to a trusted group. See the documentation
80 80 for the ``[trusted]`` section below for more details.
81 81
82 82 Per-user configuration file(s) are for the user running Mercurial. On
83 83 Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these
84 84 files apply to all Mercurial commands executed by this user in any
85 85 directory. Options in these files override per-system and per-installation
86 86 options.
87 87
88 88 Per-installation configuration files are searched for in the
89 89 directory where Mercurial is installed. ``<install-root>`` is the
90 90 parent directory of the **hg** executable (or symlink) being run. For
91 91 example, if installed in ``/shared/tools/bin/hg``, Mercurial will look
92 92 in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply
93 93 to all Mercurial commands executed by any user in any directory.
94 94
95 95 Per-installation configuration files are for the system on
96 96 which Mercurial is running. Options in these files apply to all
97 97 Mercurial commands executed by any user in any directory. Registry
98 98 keys contain PATH-like strings, every part of which must reference
99 99 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
100 100 be read. Mercurial checks each of these locations in the specified
101 101 order until one or more configuration files are detected.
102 102
103 103 Per-system configuration files are for the system on which Mercurial
104 104 is running. Options in these files apply to all Mercurial commands
105 105 executed by any user in any directory. Options in these files
106 106 override per-installation options.
107 107
108 108 Mercurial comes with some default configuration. The default configuration
109 109 files are installed with Mercurial and will be overwritten on upgrades. Default
110 110 configuration files should never be edited by users or administrators but can
111 111 be overridden in other configuration files. So far the directory only contains
112 112 merge tool configuration but packagers can also put other default configuration
113 113 there.
114 114
115 115 Syntax
116 116 ======
117 117
118 118 A configuration file consists of sections, led by a ``[section]`` header
119 119 and followed by ``name = value`` entries (sometimes called
120 120 ``configuration keys``)::
121 121
122 122 [spam]
123 123 eggs=ham
124 124 green=
125 125 eggs
126 126
127 127 Each line contains one entry. If the lines that follow are indented,
128 128 they are treated as continuations of that entry. Leading whitespace is
129 129 removed from values. Empty lines are skipped. Lines beginning with
130 130 ``#`` or ``;`` are ignored and may be used to provide comments.
131 131
132 132 Configuration keys can be set multiple times, in which case Mercurial
133 133 will use the value that was configured last. As an example::
134 134
135 135 [spam]
136 136 eggs=large
137 137 ham=serrano
138 138 eggs=small
139 139
140 140 This would set the configuration key named ``eggs`` to ``small``.
141 141
142 142 It is also possible to define a section multiple times. A section can
143 143 be redefined on the same and/or on different configuration files. For
144 144 example::
145 145
146 146 [foo]
147 147 eggs=large
148 148 ham=serrano
149 149 eggs=small
150 150
151 151 [bar]
152 152 eggs=ham
153 153 green=
154 154 eggs
155 155
156 156 [foo]
157 157 ham=prosciutto
158 158 eggs=medium
159 159 bread=toasted
160 160
161 161 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
162 162 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
163 163 respectively. As you can see there only thing that matters is the last
164 164 value that was set for each of the configuration keys.
165 165
166 166 If a configuration key is set multiple times in different
167 167 configuration files the final value will depend on the order in which
168 168 the different configuration files are read, with settings from earlier
169 169 paths overriding later ones as described on the ``Files`` section
170 170 above.
171 171
172 172 A line of the form ``%include file`` will include ``file`` into the
173 173 current configuration file. The inclusion is recursive, which means
174 174 that included files can include other files. Filenames are relative to
175 175 the configuration file in which the ``%include`` directive is found.
176 176 Environment variables and ``~user`` constructs are expanded in
177 177 ``file``. This lets you do something like::
178 178
179 179 %include ~/.hgrc.d/$HOST.rc
180 180
181 181 to include a different configuration file on each computer you use.
182 182
183 183 A line with ``%unset name`` will remove ``name`` from the current
184 184 section, if it has been set previously.
185 185
186 186 The values are either free-form text strings, lists of text strings,
187 187 or Boolean values. Boolean values can be set to true using any of "1",
188 188 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
189 189 (all case insensitive).
190 190
191 191 List values are separated by whitespace or comma, except when values are
192 192 placed in double quotation marks::
193 193
194 194 allow_read = "John Doe, PhD", brian, betty
195 195
196 196 Quotation marks can be escaped by prefixing them with a backslash. Only
197 197 quotation marks at the beginning of a word is counted as a quotation
198 198 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
199 199
200 200 Sections
201 201 ========
202 202
203 203 This section describes the different sections that may appear in a
204 204 Mercurial configuration file, the purpose of each section, its possible
205 205 keys, and their possible values.
206 206
207 207 ``alias``
208 208 ---------
209 209
210 210 Defines command aliases.
211 211
212 212 Aliases allow you to define your own commands in terms of other
213 213 commands (or aliases), optionally including arguments. Positional
214 214 arguments in the form of ``$1``, ``$2``, etc. in the alias definition
215 215 are expanded by Mercurial before execution. Positional arguments not
216 216 already used by ``$N`` in the definition are put at the end of the
217 217 command to be executed.
218 218
219 219 Alias definitions consist of lines of the form::
220 220
221 221 <alias> = <command> [<argument>]...
222 222
223 223 For example, this definition::
224 224
225 225 latest = log --limit 5
226 226
227 227 creates a new command ``latest`` that shows only the five most recent
228 228 changesets. You can define subsequent aliases using earlier ones::
229 229
230 230 stable5 = latest -b stable
231 231
232 232 .. note::
233 233
234 234 It is possible to create aliases with the same names as
235 235 existing commands, which will then override the original
236 236 definitions. This is almost always a bad idea!
237 237
238 238 An alias can start with an exclamation point (``!``) to make it a
239 239 shell alias. A shell alias is executed with the shell and will let you
240 240 run arbitrary commands. As an example, ::
241 241
242 242 echo = !echo $@
243 243
244 244 will let you do ``hg echo foo`` to have ``foo`` printed in your
245 245 terminal. A better example might be::
246 246
247 247 purge = !$HG status --no-status --unknown -0 | xargs -0 rm
248 248
249 249 which will make ``hg purge`` delete all unknown files in the
250 250 repository in the same manner as the purge extension.
251 251
252 252 Positional arguments like ``$1``, ``$2``, etc. in the alias definition
253 253 expand to the command arguments. Unmatched arguments are
254 254 removed. ``$0`` expands to the alias name and ``$@`` expands to all
255 255 arguments separated by a space. ``"$@"`` (with quotes) expands to all
256 256 arguments quoted individually and separated by a space. These expansions
257 257 happen before the command is passed to the shell.
258 258
259 259 Shell aliases are executed in an environment where ``$HG`` expands to
260 260 the path of the Mercurial that was used to execute the alias. This is
261 261 useful when you want to call further Mercurial commands in a shell
262 262 alias, as was done above for the purge alias. In addition,
263 263 ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
264 264 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
265 265
266 266 .. note::
267 267
268 268 Some global configuration options such as ``-R`` are
269 269 processed before shell aliases and will thus not be passed to
270 270 aliases.
271 271
272 272
273 273 ``annotate``
274 274 ------------
275 275
276 276 Settings used when displaying file annotations. All values are
277 277 Booleans and default to False. See ``diff`` section for related
278 278 options for the diff command.
279 279
280 280 ``ignorews``
281 281 Ignore white space when comparing lines.
282 282
283 283 ``ignorewsamount``
284 284 Ignore changes in the amount of white space.
285 285
286 286 ``ignoreblanklines``
287 287 Ignore changes whose lines are all blank.
288 288
289 289
290 290 ``auth``
291 291 --------
292 292
293 293 Authentication credentials for HTTP authentication. This section
294 294 allows you to store usernames and passwords for use when logging
295 295 *into* HTTP servers. See the ``[web]`` configuration section if
296 296 you want to configure *who* can login to your HTTP server.
297 297
298 298 Each line has the following format::
299 299
300 300 <name>.<argument> = <value>
301 301
302 302 where ``<name>`` is used to group arguments into authentication
303 303 entries. Example::
304 304
305 305 foo.prefix = hg.intevation.org/mercurial
306 306 foo.username = foo
307 307 foo.password = bar
308 308 foo.schemes = http https
309 309
310 310 bar.prefix = secure.example.org
311 311 bar.key = path/to/file.key
312 312 bar.cert = path/to/file.cert
313 313 bar.schemes = https
314 314
315 315 Supported arguments:
316 316
317 317 ``prefix``
318 318 Either ``*`` or a URI prefix with or without the scheme part.
319 319 The authentication entry with the longest matching prefix is used
320 320 (where ``*`` matches everything and counts as a match of length
321 321 1). If the prefix doesn't include a scheme, the match is performed
322 322 against the URI with its scheme stripped as well, and the schemes
323 323 argument, q.v., is then subsequently consulted.
324 324
325 325 ``username``
326 326 Optional. Username to authenticate with. If not given, and the
327 327 remote site requires basic or digest authentication, the user will
328 328 be prompted for it. Environment variables are expanded in the
329 329 username letting you do ``foo.username = $USER``. If the URI
330 330 includes a username, only ``[auth]`` entries with a matching
331 331 username or without a username will be considered.
332 332
333 333 ``password``
334 334 Optional. Password to authenticate with. If not given, and the
335 335 remote site requires basic or digest authentication, the user
336 336 will be prompted for it.
337 337
338 338 ``key``
339 339 Optional. PEM encoded client certificate key file. Environment
340 340 variables are expanded in the filename.
341 341
342 342 ``cert``
343 343 Optional. PEM encoded client certificate chain file. Environment
344 344 variables are expanded in the filename.
345 345
346 346 ``schemes``
347 347 Optional. Space separated list of URI schemes to use this
348 348 authentication entry with. Only used if the prefix doesn't include
349 349 a scheme. Supported schemes are http and https. They will match
350 350 static-http and static-https respectively, as well.
351 Default: https.
351 (default: https)
352 352
353 353 If no suitable authentication entry is found, the user is prompted
354 354 for credentials as usual if required by the remote.
355 355
356 356
357 357 ``committemplate``
358 358 ------------------
359 359
360 360 ``changeset``
361 361 String: configuration in this section is used as the template to
362 362 customize the text shown in the editor when committing.
363 363
364 364 In addition to pre-defined template keywords, commit log specific one
365 365 below can be used for customization:
366 366
367 367 ``extramsg``
368 368 String: Extra message (typically 'Leave message empty to abort
369 369 commit.'). This may be changed by some commands or extensions.
370 370
371 371 For example, the template configuration below shows as same text as
372 372 one shown by default::
373 373
374 374 [committemplate]
375 375 changeset = {desc}\n\n
376 376 HG: Enter commit message. Lines beginning with 'HG:' are removed.
377 377 HG: {extramsg}
378 378 HG: --
379 379 HG: user: {author}\n{ifeq(p2rev, "-1", "",
380 380 "HG: branch merge\n")
381 381 }HG: branch '{branch}'\n{if(activebookmark,
382 382 "HG: bookmark '{activebookmark}'\n") }{subrepos %
383 383 "HG: subrepo {subrepo}\n" }{file_adds %
384 384 "HG: added {file}\n" }{file_mods %
385 385 "HG: changed {file}\n" }{file_dels %
386 386 "HG: removed {file}\n" }{if(files, "",
387 387 "HG: no files changed\n")}
388 388
389 389 .. note::
390 390
391 391 For some problematic encodings (see :hg:`help win32mbcs` for
392 392 detail), this customization should be configured carefully, to
393 393 avoid showing broken characters.
394 394
395 395 For example, if multibyte character ending with backslash (0x5c) is
396 396 followed by ASCII character 'n' in the customized template,
397 397 sequence of backslash and 'n' is treated as line-feed unexpectedly
398 398 (and multibyte character is broken, too).
399 399
400 400 Customized template is used for commands below (``--edit`` may be
401 401 required):
402 402
403 403 - :hg:`backout`
404 404 - :hg:`commit`
405 405 - :hg:`fetch` (for merge commit only)
406 406 - :hg:`graft`
407 407 - :hg:`histedit`
408 408 - :hg:`import`
409 409 - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`
410 410 - :hg:`rebase`
411 411 - :hg:`shelve`
412 412 - :hg:`sign`
413 413 - :hg:`tag`
414 414 - :hg:`transplant`
415 415
416 416 Configuring items below instead of ``changeset`` allows showing
417 417 customized message only for specific actions, or showing different
418 418 messages for each action.
419 419
420 420 - ``changeset.backout`` for :hg:`backout`
421 421 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
422 422 - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other
423 423 - ``changeset.commit.normal.merge`` for :hg:`commit` on merges
424 424 - ``changeset.commit.normal.normal`` for :hg:`commit` on other
425 425 - ``changeset.fetch`` for :hg:`fetch` (impling merge commit)
426 426 - ``changeset.gpg.sign`` for :hg:`sign`
427 427 - ``changeset.graft`` for :hg:`graft`
428 428 - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`
429 429 - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`
430 430 - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`
431 431 - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`
432 432 - ``changeset.import.bypass`` for :hg:`import --bypass`
433 433 - ``changeset.import.normal.merge`` for :hg:`import` on merges
434 434 - ``changeset.import.normal.normal`` for :hg:`import` on other
435 435 - ``changeset.mq.qnew`` for :hg:`qnew`
436 436 - ``changeset.mq.qfold`` for :hg:`qfold`
437 437 - ``changeset.mq.qrefresh`` for :hg:`qrefresh`
438 438 - ``changeset.rebase.collapse`` for :hg:`rebase --collapse`
439 439 - ``changeset.rebase.merge`` for :hg:`rebase` on merges
440 440 - ``changeset.rebase.normal`` for :hg:`rebase` on other
441 441 - ``changeset.shelve.shelve`` for :hg:`shelve`
442 442 - ``changeset.tag.add`` for :hg:`tag` without ``--remove``
443 443 - ``changeset.tag.remove`` for :hg:`tag --remove`
444 444 - ``changeset.transplant.merge`` for :hg:`transplant` on merges
445 445 - ``changeset.transplant.normal`` for :hg:`transplant` on other
446 446
447 447 These dot-separated lists of names are treated as hierarchical ones.
448 448 For example, ``changeset.tag.remove`` customizes the commit message
449 449 only for :hg:`tag --remove`, but ``changeset.tag`` customizes the
450 450 commit message for :hg:`tag` regardless of ``--remove`` option.
451 451
452 452 At the external editor invocation for committing, corresponding
453 453 dot-separated list of names without ``changeset.`` prefix
454 454 (e.g. ``commit.normal.normal``) is in ``HGEDITFORM`` environment variable.
455 455
456 456 In this section, items other than ``changeset`` can be referred from
457 457 others. For example, the configuration to list committed files up
458 458 below can be referred as ``{listupfiles}``::
459 459
460 460 [committemplate]
461 461 listupfiles = {file_adds %
462 462 "HG: added {file}\n" }{file_mods %
463 463 "HG: changed {file}\n" }{file_dels %
464 464 "HG: removed {file}\n" }{if(files, "",
465 465 "HG: no files changed\n")}
466 466
467 467 ``decode/encode``
468 468 -----------------
469 469
470 470 Filters for transforming files on checkout/checkin. This would
471 471 typically be used for newline processing or other
472 472 localization/canonicalization of files.
473 473
474 474 Filters consist of a filter pattern followed by a filter command.
475 475 Filter patterns are globs by default, rooted at the repository root.
476 476 For example, to match any file ending in ``.txt`` in the root
477 477 directory only, use the pattern ``*.txt``. To match any file ending
478 478 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
479 479 For each file only the first matching filter applies.
480 480
481 481 The filter command can start with a specifier, either ``pipe:`` or
482 482 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
483 483
484 484 A ``pipe:`` command must accept data on stdin and return the transformed
485 485 data on stdout.
486 486
487 487 Pipe example::
488 488
489 489 [encode]
490 490 # uncompress gzip files on checkin to improve delta compression
491 491 # note: not necessarily a good idea, just an example
492 492 *.gz = pipe: gunzip
493 493
494 494 [decode]
495 495 # recompress gzip files when writing them to the working dir (we
496 496 # can safely omit "pipe:", because it's the default)
497 497 *.gz = gzip
498 498
499 499 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
500 500 with the name of a temporary file that contains the data to be
501 501 filtered by the command. The string ``OUTFILE`` is replaced with the name
502 502 of an empty temporary file, where the filtered data must be written by
503 503 the command.
504 504
505 505 .. note::
506 506
507 507 The tempfile mechanism is recommended for Windows systems,
508 508 where the standard shell I/O redirection operators often have
509 509 strange effects and may corrupt the contents of your files.
510 510
511 511 This filter mechanism is used internally by the ``eol`` extension to
512 512 translate line ending characters between Windows (CRLF) and Unix (LF)
513 513 format. We suggest you use the ``eol`` extension for convenience.
514 514
515 515
516 516 ``defaults``
517 517 ------------
518 518
519 519 (defaults are deprecated. Don't use them. Use aliases instead.)
520 520
521 521 Use the ``[defaults]`` section to define command defaults, i.e. the
522 522 default options/arguments to pass to the specified commands.
523 523
524 524 The following example makes :hg:`log` run in verbose mode, and
525 525 :hg:`status` show only the modified files, by default::
526 526
527 527 [defaults]
528 528 log = -v
529 529 status = -m
530 530
531 531 The actual commands, instead of their aliases, must be used when
532 532 defining command defaults. The command defaults will also be applied
533 533 to the aliases of the commands defined.
534 534
535 535
536 536 ``diff``
537 537 --------
538 538
539 539 Settings used when displaying diffs. Everything except for ``unified``
540 540 is a Boolean and defaults to False. See ``annotate`` section for
541 541 related options for the annotate command.
542 542
543 543 ``git``
544 544 Use git extended diff format.
545 545
546 546 ``nobinary``
547 547 Omit git binary patches.
548 548
549 549 ``nodates``
550 550 Don't include dates in diff headers.
551 551
552 552 ``noprefix``
553 553 Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
554 554
555 555 ``showfunc``
556 556 Show which function each change is in.
557 557
558 558 ``ignorews``
559 559 Ignore white space when comparing lines.
560 560
561 561 ``ignorewsamount``
562 562 Ignore changes in the amount of white space.
563 563
564 564 ``ignoreblanklines``
565 565 Ignore changes whose lines are all blank.
566 566
567 567 ``unified``
568 568 Number of lines of context to show.
569 569
570 570 ``email``
571 571 ---------
572 572
573 573 Settings for extensions that send email messages.
574 574
575 575 ``from``
576 576 Optional. Email address to use in "From" header and SMTP envelope
577 577 of outgoing messages.
578 578
579 579 ``to``
580 580 Optional. Comma-separated list of recipients' email addresses.
581 581
582 582 ``cc``
583 583 Optional. Comma-separated list of carbon copy recipients'
584 584 email addresses.
585 585
586 586 ``bcc``
587 587 Optional. Comma-separated list of blind carbon copy recipients'
588 588 email addresses.
589 589
590 590 ``method``
591 591 Optional. Method to use to send email messages. If value is ``smtp``
592 592 (default), use SMTP (see the ``[smtp]`` section for configuration).
593 593 Otherwise, use as name of program to run that acts like sendmail
594 594 (takes ``-f`` option for sender, list of recipients on command line,
595 595 message on stdin). Normally, setting this to ``sendmail`` or
596 596 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
597 597
598 598 ``charsets``
599 599 Optional. Comma-separated list of character sets considered
600 600 convenient for recipients. Addresses, headers, and parts not
601 601 containing patches of outgoing messages will be encoded in the
602 602 first character set to which conversion from local encoding
603 603 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
604 conversion fails, the text in question is sent as is. Defaults to
605 empty (explicit) list.
604 conversion fails, the text in question is sent as is.
605 (default: '')
606 606
607 607 Order of outgoing email character sets:
608 608
609 609 1. ``us-ascii``: always first, regardless of settings
610 610 2. ``email.charsets``: in order given by user
611 611 3. ``ui.fallbackencoding``: if not in email.charsets
612 612 4. ``$HGENCODING``: if not in email.charsets
613 613 5. ``utf-8``: always last, regardless of settings
614 614
615 615 Email example::
616 616
617 617 [email]
618 618 from = Joseph User <joe.user@example.com>
619 619 method = /usr/sbin/sendmail
620 620 # charsets for western Europeans
621 621 # us-ascii, utf-8 omitted, as they are tried first and last
622 622 charsets = iso-8859-1, iso-8859-15, windows-1252
623 623
624 624
625 625 ``extensions``
626 626 --------------
627 627
628 628 Mercurial has an extension mechanism for adding new features. To
629 629 enable an extension, create an entry for it in this section.
630 630
631 631 If you know that the extension is already in Python's search path,
632 632 you can give the name of the module, followed by ``=``, with nothing
633 633 after the ``=``.
634 634
635 635 Otherwise, give a name that you choose, followed by ``=``, followed by
636 636 the path to the ``.py`` file (including the file name extension) that
637 637 defines the extension.
638 638
639 639 To explicitly disable an extension that is enabled in an hgrc of
640 640 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
641 641 or ``foo = !`` when path is not supplied.
642 642
643 643 Example for ``~/.hgrc``::
644 644
645 645 [extensions]
646 646 # (the color extension will get loaded from Mercurial's path)
647 647 color =
648 648 # (this extension will get loaded from the file specified)
649 649 myfeature = ~/.hgext/myfeature.py
650 650
651 651
652 652 ``format``
653 653 ----------
654 654
655 655 ``usestore``
656 656 Enable or disable the "store" repository format which improves
657 657 compatibility with systems that fold case or otherwise mangle
658 658 filenames. Enabled by default. Disabling this option will allow
659 659 you to store longer filenames in some situations at the expense of
660 660 compatibility and ensures that the on-disk format of newly created
661 661 repositories will be compatible with Mercurial before version 0.9.4.
662 662
663 663 ``usefncache``
664 664 Enable or disable the "fncache" repository format which enhances
665 665 the "store" repository format (which has to be enabled to use
666 666 fncache) to allow longer filenames and avoids using Windows
667 667 reserved names, e.g. "nul". Enabled by default. Disabling this
668 668 option ensures that the on-disk format of newly created
669 669 repositories will be compatible with Mercurial before version 1.1.
670 670
671 671 ``dotencode``
672 672 Enable or disable the "dotencode" repository format which enhances
673 673 the "fncache" repository format (which has to be enabled to use
674 674 dotencode) to avoid issues with filenames starting with ._ on
675 675 Mac OS X and spaces on Windows. Enabled by default. Disabling this
676 676 option ensures that the on-disk format of newly created
677 677 repositories will be compatible with Mercurial before version 1.7.
678 678
679 679 ``graph``
680 680 ---------
681 681
682 682 Web graph view configuration. This section let you change graph
683 683 elements display properties by branches, for instance to make the
684 684 ``default`` branch stand out.
685 685
686 686 Each line has the following format::
687 687
688 688 <branch>.<argument> = <value>
689 689
690 690 where ``<branch>`` is the name of the branch being
691 691 customized. Example::
692 692
693 693 [graph]
694 694 # 2px width
695 695 default.width = 2
696 696 # red color
697 697 default.color = FF0000
698 698
699 699 Supported arguments:
700 700
701 701 ``width``
702 702 Set branch edges width in pixels.
703 703
704 704 ``color``
705 705 Set branch edges color in hexadecimal RGB notation.
706 706
707 707 ``hooks``
708 708 ---------
709 709
710 710 Commands or Python functions that get automatically executed by
711 711 various actions such as starting or finishing a commit. Multiple
712 712 hooks can be run for the same action by appending a suffix to the
713 713 action. Overriding a site-wide hook can be done by changing its
714 714 value or setting it to an empty string. Hooks can be prioritized
715 715 by adding a prefix of ``priority`` to the hook name on a new line
716 716 and setting the priority. The default priority is 0.
717 717
718 718 Example ``.hg/hgrc``::
719 719
720 720 [hooks]
721 721 # update working directory after adding changesets
722 722 changegroup.update = hg update
723 723 # do not use the site-wide hook
724 724 incoming =
725 725 incoming.email = /my/email/hook
726 726 incoming.autobuild = /my/build/hook
727 727 # force autobuild hook to run before other incoming hooks
728 728 priority.incoming.autobuild = 1
729 729
730 730 Most hooks are run with environment variables set that give useful
731 731 additional information. For each hook below, the environment
732 732 variables it is passed are listed with names of the form ``$HG_foo``.
733 733
734 734 ``changegroup``
735 735 Run after a changegroup has been added via push, pull or unbundle.
736 736 ID of the first new changeset is in ``$HG_NODE``. URL from which
737 737 changes came is in ``$HG_URL``.
738 738
739 739 ``commit``
740 740 Run after a changeset has been created in the local repository. ID
741 741 of the newly created changeset is in ``$HG_NODE``. Parent changeset
742 742 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
743 743
744 744 ``incoming``
745 745 Run after a changeset has been pulled, pushed, or unbundled into
746 746 the local repository. The ID of the newly arrived changeset is in
747 747 ``$HG_NODE``. URL that was source of changes came is in ``$HG_URL``.
748 748
749 749 ``outgoing``
750 750 Run after sending changes from local repository to another. ID of
751 751 first changeset sent is in ``$HG_NODE``. Source of operation is in
752 752 ``$HG_SOURCE``; see "preoutgoing" hook for description.
753 753
754 754 ``post-<command>``
755 755 Run after successful invocations of the associated command. The
756 756 contents of the command line are passed as ``$HG_ARGS`` and the result
757 757 code in ``$HG_RESULT``. Parsed command line arguments are passed as
758 758 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
759 759 the python data internally passed to <command>. ``$HG_OPTS`` is a
760 760 dictionary of options (with unspecified options set to their defaults).
761 761 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
762 762
763 763 ``pre-<command>``
764 764 Run before executing the associated command. The contents of the
765 765 command line are passed as ``$HG_ARGS``. Parsed command line arguments
766 766 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
767 767 representations of the data internally passed to <command>. ``$HG_OPTS``
768 768 is a dictionary of options (with unspecified options set to their
769 769 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
770 770 failure, the command doesn't execute and Mercurial returns the failure
771 771 code.
772 772
773 773 ``prechangegroup``
774 774 Run before a changegroup is added via push, pull or unbundle. Exit
775 775 status 0 allows the changegroup to proceed. Non-zero status will
776 776 cause the push, pull or unbundle to fail. URL from which changes
777 777 will come is in ``$HG_URL``.
778 778
779 779 ``precommit``
780 780 Run before starting a local commit. Exit status 0 allows the
781 781 commit to proceed. Non-zero status will cause the commit to fail.
782 782 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
783 783
784 784 ``prelistkeys``
785 785 Run before listing pushkeys (like bookmarks) in the
786 786 repository. Non-zero status will cause failure. The key namespace is
787 787 in ``$HG_NAMESPACE``.
788 788
789 789 ``preoutgoing``
790 790 Run before collecting changes to send from the local repository to
791 791 another. Non-zero status will cause failure. This lets you prevent
792 792 pull over HTTP or SSH. Also prevents against local pull, push
793 793 (outbound) or bundle commands, but not effective, since you can
794 794 just copy files instead then. Source of operation is in
795 795 ``$HG_SOURCE``. If "serve", operation is happening on behalf of remote
796 796 SSH or HTTP repository. If "push", "pull" or "bundle", operation
797 797 is happening on behalf of repository on same system.
798 798
799 799 ``prepushkey``
800 800 Run before a pushkey (like a bookmark) is added to the
801 801 repository. Non-zero status will cause the key to be rejected. The
802 802 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
803 803 the old value (if any) is in ``$HG_OLD``, and the new value is in
804 804 ``$HG_NEW``.
805 805
806 806 ``pretag``
807 807 Run before creating a tag. Exit status 0 allows the tag to be
808 808 created. Non-zero status will cause the tag to fail. ID of
809 809 changeset to tag is in ``$HG_NODE``. Name of tag is in ``$HG_TAG``. Tag is
810 810 local if ``$HG_LOCAL=1``, in repository if ``$HG_LOCAL=0``.
811 811
812 812 ``pretxnopen``
813 813 Run before any new repository transaction is open. The reason for the
814 814 transaction will be in ``$HG_TXNNAME`` and a unique identifier for the
815 815 transaction will be in ``HG_TXNID``. A non-zero status will prevent the
816 816 transaction from being opened.
817 817
818 818 ``pretxnclose``
819 819 Run right before the transaction is actually finalized. Any
820 820 repository change will be visible to the hook program. This lets you
821 821 validate the transaction content or change it. Exit status 0 allows
822 822 the commit to proceed. Non-zero status will cause the transaction to
823 823 be rolled back. The reason for the transaction opening will be in
824 824 ``$HG_TXNNAME`` and a unique identifier for the transaction will be in
825 825 ``HG_TXNID``. The rest of the available data will vary according the
826 826 transaction type. New changesets will add ``$HG_NODE`` (id of the
827 827 first added changeset), ``$HG_URL`` and ``$HG_SOURCE`` variables,
828 828 bookmarks and phases changes will set ``HG_BOOKMARK_MOVED`` and
829 829 ``HG_PHASES_MOVED`` to ``1``, etc.
830 830
831 831 ``txnclose``
832 832 Run after any repository transaction has been committed. At this
833 833 point, the transaction can no longer be rolled back. The hook will run
834 834 after the lock is released. See ``pretxnclose`` docs for details about
835 835 available variables.
836 836
837 837 ``txnabort``
838 838 Run when a transaction is aborted. See ``pretxnclose`` docs for details about
839 839 available variables.
840 840
841 841 ``pretxnchangegroup``
842 842 Run after a changegroup has been added via push, pull or unbundle,
843 843 but before the transaction has been committed. Changegroup is
844 844 visible to hook program. This lets you validate incoming changes
845 845 before accepting them. Passed the ID of the first new changeset in
846 846 ``$HG_NODE``. Exit status 0 allows the transaction to commit. Non-zero
847 847 status will cause the transaction to be rolled back and the push,
848 848 pull or unbundle will fail. URL that was source of changes is in
849 849 ``$HG_URL``.
850 850
851 851 ``pretxncommit``
852 852 Run after a changeset has been created but the transaction not yet
853 853 committed. Changeset is visible to hook program. This lets you
854 854 validate commit message and changes. Exit status 0 allows the
855 855 commit to proceed. Non-zero status will cause the transaction to
856 856 be rolled back. ID of changeset is in ``$HG_NODE``. Parent changeset
857 857 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
858 858
859 859 ``preupdate``
860 860 Run before updating the working directory. Exit status 0 allows
861 861 the update to proceed. Non-zero status will prevent the update.
862 862 Changeset ID of first new parent is in ``$HG_PARENT1``. If merge, ID
863 863 of second new parent is in ``$HG_PARENT2``.
864 864
865 865 ``listkeys``
866 866 Run after listing pushkeys (like bookmarks) in the repository. The
867 867 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
868 868 dictionary containing the keys and values.
869 869
870 870 ``pushkey``
871 871 Run after a pushkey (like a bookmark) is added to the
872 872 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
873 873 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
874 874 value is in ``$HG_NEW``.
875 875
876 876 ``tag``
877 877 Run after a tag is created. ID of tagged changeset is in ``$HG_NODE``.
878 878 Name of tag is in ``$HG_TAG``. Tag is local if ``$HG_LOCAL=1``, in
879 879 repository if ``$HG_LOCAL=0``.
880 880
881 881 ``update``
882 882 Run after updating the working directory. Changeset ID of first
883 883 new parent is in ``$HG_PARENT1``. If merge, ID of second new parent is
884 884 in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
885 885 update failed (e.g. because conflicts not resolved), ``$HG_ERROR=1``.
886 886
887 887 .. note::
888 888
889 889 It is generally better to use standard hooks rather than the
890 890 generic pre- and post- command hooks as they are guaranteed to be
891 891 called in the appropriate contexts for influencing transactions.
892 892 Also, hooks like "commit" will be called in all contexts that
893 893 generate a commit (e.g. tag) and not just the commit command.
894 894
895 895 .. note::
896 896
897 897 Environment variables with empty values may not be passed to
898 898 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
899 899 will have an empty value under Unix-like platforms for non-merge
900 900 changesets, while it will not be available at all under Windows.
901 901
902 902 The syntax for Python hooks is as follows::
903 903
904 904 hookname = python:modulename.submodule.callable
905 905 hookname = python:/path/to/python/module.py:callable
906 906
907 907 Python hooks are run within the Mercurial process. Each hook is
908 908 called with at least three keyword arguments: a ui object (keyword
909 909 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
910 910 keyword that tells what kind of hook is used. Arguments listed as
911 911 environment variables above are passed as keyword arguments, with no
912 912 ``HG_`` prefix, and names in lower case.
913 913
914 914 If a Python hook returns a "true" value or raises an exception, this
915 915 is treated as a failure.
916 916
917 917
918 918 ``hostfingerprints``
919 919 --------------------
920 920
921 921 Fingerprints of the certificates of known HTTPS servers.
922 922 A HTTPS connection to a server with a fingerprint configured here will
923 923 only succeed if the servers certificate matches the fingerprint.
924 924 This is very similar to how ssh known hosts works.
925 925 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
926 926 The CA chain and web.cacerts is not used for servers with a fingerprint.
927 927
928 928 For example::
929 929
930 930 [hostfingerprints]
931 931 hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0
932 932
933 933 This feature is only supported when using Python 2.6 or later.
934 934
935 935
936 936 ``http_proxy``
937 937 --------------
938 938
939 939 Used to access web-based Mercurial repositories through a HTTP
940 940 proxy.
941 941
942 942 ``host``
943 943 Host name and (optional) port of the proxy server, for example
944 944 "myproxy:8000".
945 945
946 946 ``no``
947 947 Optional. Comma-separated list of host names that should bypass
948 948 the proxy.
949 949
950 950 ``passwd``
951 951 Optional. Password to authenticate with at the proxy server.
952 952
953 953 ``user``
954 954 Optional. User name to authenticate with at the proxy server.
955 955
956 956 ``always``
957 957 Optional. Always use the proxy, even for localhost and any entries
958 in ``http_proxy.no``. True or False. Default: False.
958 in ``http_proxy.no``. True or False. (default: False)
959 959
960 960 ``merge-patterns``
961 961 ------------------
962 962
963 963 This section specifies merge tools to associate with particular file
964 964 patterns. Tools matched here will take precedence over the default
965 965 merge tool. Patterns are globs by default, rooted at the repository
966 966 root.
967 967
968 968 Example::
969 969
970 970 [merge-patterns]
971 971 **.c = kdiff3
972 972 **.jpg = myimgmerge
973 973
974 974 ``merge-tools``
975 975 ---------------
976 976
977 977 This section configures external merge tools to use for file-level
978 978 merges. This section has likely been preconfigured at install time.
979 979 Use :hg:`config merge-tools` to check the existing configuration.
980 980 Also see :hg:`help merge-tools` for more details.
981 981
982 982 Example ``~/.hgrc``::
983 983
984 984 [merge-tools]
985 985 # Override stock tool location
986 986 kdiff3.executable = ~/bin/kdiff3
987 987 # Specify command line
988 988 kdiff3.args = $base $local $other -o $output
989 989 # Give higher priority
990 990 kdiff3.priority = 1
991 991
992 992 # Changing the priority of preconfigured tool
993 993 vimdiff.priority = 0
994 994
995 995 # Define new tool
996 996 myHtmlTool.args = -m $local $other $base $output
997 997 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
998 998 myHtmlTool.priority = 1
999 999
1000 1000 Supported arguments:
1001 1001
1002 1002 ``priority``
1003 1003 The priority in which to evaluate this tool.
1004 Default: 0.
1004 (default: 0)
1005 1005
1006 1006 ``executable``
1007 1007 Either just the name of the executable or its pathname. On Windows,
1008 1008 the path can use environment variables with ${ProgramFiles} syntax.
1009 Default: the tool name.
1009 (default: the tool name)
1010 1010
1011 1011 ``args``
1012 1012 The arguments to pass to the tool executable. You can refer to the
1013 1013 files being merged as well as the output file through these
1014 1014 variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning
1015 1015 of ``$local`` and ``$other`` can vary depending on which action is being
1016 1016 performed. During and update or merge, ``$local`` represents the original
1017 1017 state of the file, while ``$other`` represents the commit you are updating
1018 1018 to or the commit you are merging with. During a rebase ``$local``
1019 1019 represents the destination of the rebase, and ``$other`` represents the
1020 1020 commit being rebased.
1021 Default: ``$local $base $other``
1021 (default: ``$local $base $other``)
1022 1022
1023 1023 ``premerge``
1024 1024 Attempt to run internal non-interactive 3-way merge tool before
1025 1025 launching external tool. Options are ``true``, ``false``, ``keep`` or
1026 1026 ``keep-merge3``. The ``keep`` option will leave markers in the file if the
1027 1027 premerge fails. The ``keep-merge3`` will do the same but include information
1028 1028 about the base of the merge in the marker (see internal :merge3 in
1029 1029 :hg:`help merge-tools`).
1030 Default: True
1030 (default: True)
1031 1031
1032 1032 ``binary``
1033 This tool can merge binary files. Defaults to False, unless tool
1034 was selected by file pattern match.
1033 This tool can merge binary files. (default: False, unless tool
1034 was selected by file pattern match)
1035 1035
1036 1036 ``symlink``
1037 This tool can merge symlinks. Defaults to False, even if tool was
1038 selected by file pattern match.
1037 This tool can merge symlinks. (default: False)
1039 1038
1040 1039 ``check``
1041 1040 A list of merge success-checking options::
1042 1041
1043 1042 ``changed``
1044 1043 Ask whether merge was successful when the merged file shows no changes.
1045 1044 ``conflicts``
1046 1045 Check whether there are conflicts even though the tool reported success.
1047 1046 ``prompt``
1048 1047 Always prompt for merge success, regardless of success reported by tool.
1049 1048
1050 1049 ``fixeol``
1051 1050 Attempt to fix up EOL changes caused by the merge tool.
1052 Default: False
1051 (default: False)
1053 1052
1054 1053 ``gui``
1055 This tool requires a graphical interface to run. Default: False
1054 This tool requires a graphical interface to run. (default: False)
1056 1055
1057 1056 ``regkey``
1058 1057 Windows registry key which describes install location of this
1059 1058 tool. Mercurial will search for this key first under
1060 1059 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1061 Default: None
1060 (default: None)
1062 1061
1063 1062 ``regkeyalt``
1064 1063 An alternate Windows registry key to try if the first key is not
1065 1064 found. The alternate key uses the same ``regname`` and ``regappend``
1066 1065 semantics of the primary key. The most common use for this key
1067 1066 is to search for 32bit applications on 64bit operating systems.
1068 Default: None
1067 (default: None)
1069 1068
1070 1069 ``regname``
1071 Name of value to read from specified registry key. Defaults to the
1072 unnamed (default) value.
1070 Name of value to read from specified registry key.
1071 (default: the unnamed (default) value)
1073 1072
1074 1073 ``regappend``
1075 1074 String to append to the value read from the registry, typically
1076 1075 the executable name of the tool.
1077 Default: None
1076 (default: None)
1078 1077
1079 1078
1080 1079 ``patch``
1081 1080 ---------
1082 1081
1083 1082 Settings used when applying patches, for instance through the 'import'
1084 1083 command or with Mercurial Queues extension.
1085 1084
1086 1085 ``eol``
1087 1086 When set to 'strict' patch content and patched files end of lines
1088 1087 are preserved. When set to ``lf`` or ``crlf``, both files end of
1089 1088 lines are ignored when patching and the result line endings are
1090 1089 normalized to either LF (Unix) or CRLF (Windows). When set to
1091 1090 ``auto``, end of lines are again ignored while patching but line
1092 1091 endings in patched files are normalized to their original setting
1093 1092 on a per-file basis. If target file does not exist or has no end
1094 1093 of line, patch line endings are preserved.
1095 Default: strict.
1094 (default: strict)
1096 1095
1097 1096 ``fuzz``
1098 1097 The number of lines of 'fuzz' to allow when applying patches. This
1099 1098 controls how much context the patcher is allowed to ignore when
1100 1099 trying to apply a patch.
1101 Default: 2
1100 (default: 2)
1102 1101
1103 1102 ``paths``
1104 1103 ---------
1105 1104
1106 1105 Assigns symbolic names to repositories. The left side is the
1107 1106 symbolic name, and the right gives the directory or URL that is the
1108 1107 location of the repository. Default paths can be declared by setting
1109 1108 the following entries.
1110 1109
1111 1110 ``default``
1112 1111 Directory or URL to use when pulling if no source is specified.
1113 Default is set to repository from which the current repository was
1114 cloned.
1112 (default: repository from which the current repository was cloned)
1115 1113
1116 1114 ``default-push``
1117 1115 Optional. Directory or URL to use when pushing if no destination
1118 1116 is specified.
1119 1117
1120 1118 Custom paths can be defined by assigning the path to a name that later can be
1121 1119 used from the command line. Example::
1122 1120
1123 1121 [paths]
1124 1122 my_path = http://example.com/path
1125 1123
1126 1124 To push to the path defined in ``my_path`` run the command::
1127 1125
1128 1126 hg push my_path
1129 1127
1130 1128
1131 1129 ``phases``
1132 1130 ----------
1133 1131
1134 1132 Specifies default handling of phases. See :hg:`help phases` for more
1135 1133 information about working with phases.
1136 1134
1137 1135 ``publish``
1138 1136 Controls draft phase behavior when working as a server. When true,
1139 1137 pushed changesets are set to public in both client and server and
1140 1138 pulled or cloned changesets are set to public in the client.
1141 Default: True
1139 (default: True)
1142 1140
1143 1141 ``new-commit``
1144 1142 Phase of newly-created commits.
1145 Default: draft
1143 (default: draft)
1146 1144
1147 1145 ``checksubrepos``
1148 1146 Check the phase of the current revision of each subrepository. Allowed
1149 1147 values are "ignore", "follow" and "abort". For settings other than
1150 1148 "ignore", the phase of the current revision of each subrepository is
1151 1149 checked before committing the parent repository. If any of those phases is
1152 1150 greater than the phase of the parent repository (e.g. if a subrepo is in a
1153 1151 "secret" phase while the parent repo is in "draft" phase), the commit is
1154 1152 either aborted (if checksubrepos is set to "abort") or the higher phase is
1155 1153 used for the parent repository commit (if set to "follow").
1156 Default: "follow"
1154 (default: follow)
1157 1155
1158 1156
1159 1157 ``profiling``
1160 1158 -------------
1161 1159
1162 1160 Specifies profiling type, format, and file output. Two profilers are
1163 1161 supported: an instrumenting profiler (named ``ls``), and a sampling
1164 1162 profiler (named ``stat``).
1165 1163
1166 1164 In this section description, 'profiling data' stands for the raw data
1167 1165 collected during profiling, while 'profiling report' stands for a
1168 1166 statistical text report generated from the profiling data. The
1169 1167 profiling is done using lsprof.
1170 1168
1171 1169 ``type``
1172 1170 The type of profiler to use.
1173 Default: ls.
1171 (default: ls)
1174 1172
1175 1173 ``ls``
1176 1174 Use Python's built-in instrumenting profiler. This profiler
1177 1175 works on all platforms, but each line number it reports is the
1178 1176 first line of a function. This restriction makes it difficult to
1179 1177 identify the expensive parts of a non-trivial function.
1180 1178 ``stat``
1181 1179 Use a third-party statistical profiler, statprof. This profiler
1182 1180 currently runs only on Unix systems, and is most useful for
1183 1181 profiling commands that run for longer than about 0.1 seconds.
1184 1182
1185 1183 ``format``
1186 1184 Profiling format. Specific to the ``ls`` instrumenting profiler.
1187 Default: text.
1185 (default: text)
1188 1186
1189 1187 ``text``
1190 1188 Generate a profiling report. When saving to a file, it should be
1191 1189 noted that only the report is saved, and the profiling data is
1192 1190 not kept.
1193 1191 ``kcachegrind``
1194 1192 Format profiling data for kcachegrind use: when saving to a
1195 1193 file, the generated file can directly be loaded into
1196 1194 kcachegrind.
1197 1195
1198 1196 ``frequency``
1199 1197 Sampling frequency. Specific to the ``stat`` sampling profiler.
1200 Default: 1000.
1198 (default: 1000)
1201 1199
1202 1200 ``output``
1203 1201 File path where profiling data or report should be saved. If the
1204 file exists, it is replaced. Default: None, data is printed on
1205 stderr
1202 file exists, it is replaced. (default: None, data is printed on
1203 stderr)
1206 1204
1207 1205 ``sort``
1208 1206 Sort field. Specific to the ``ls`` instrumenting profiler.
1209 1207 One of ``callcount``, ``reccallcount``, ``totaltime`` and
1210 1208 ``inlinetime``.
1211 Default: inlinetime.
1209 (default: inlinetime)
1212 1210
1213 1211 ``limit``
1214 1212 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
1215 Default: 30.
1213 (default: 30)
1216 1214
1217 1215 ``nested``
1218 1216 Show at most this number of lines of drill-down info after each main entry.
1219 1217 This can help explain the difference between Total and Inline.
1220 1218 Specific to the ``ls`` instrumenting profiler.
1221 Default: 5.
1219 (default: 5)
1222 1220
1223 1221 ``progress``
1224 1222 ------------
1225 1223
1226 1224 Mercurial commands can draw progress bars that are as informative as
1227 1225 possible. Some progress bars only offer indeterminate information, while others
1228 1226 have a definite end point.
1229 1227
1230 1228 ``delay``
1231 1229 Number of seconds (float) before showing the progress bar. (default: 3)
1232 1230
1233 1231 ``changedelay``
1234 1232 Minimum delay before showing a new topic. When set to less than 3 * refresh,
1235 1233 that value will be used instead. (default: 1)
1236 1234
1237 1235 ``refresh``
1238 1236 Time in seconds between refreshes of the progress bar. (default: 0.1)
1239 1237
1240 1238 ``format``
1241 1239 Format of the progress bar.
1242 1240
1243 1241 Valid entries for the format field are ``topic``, ``bar``, ``number``,
1244 1242 ``unit``, ``estimate``, speed, and item. item defaults to the last 20
1245 1243 characters of the item, but this can be changed by adding either ``-<num>``
1246 1244 which would take the last num characters, or ``+<num>`` for the first num
1247 1245 characters.
1248 1246
1249 1247 (default: Topic bar number estimate)
1250 1248
1251 1249 ``width``
1252 1250 If set, the maximum width of the progress information (that is, min(width,
1253 1251 term width) will be used).
1254 1252
1255 1253 ``clear-complete``
1256 clear the progress bar after it's done (default to True)
1254 clear the progress bar after it's done. (default: True)
1257 1255
1258 1256 ``disable``
1259 1257 If true, don't show a progress bar.
1260 1258
1261 1259 ``assume-tty``
1262 1260 If true, ALWAYS show a progress bar, unless disable is given.
1263 1261
1264 1262 ``revsetalias``
1265 1263 ---------------
1266 1264
1267 1265 Alias definitions for revsets. See :hg:`help revsets` for details.
1268 1266
1269 1267 ``server``
1270 1268 ----------
1271 1269
1272 1270 Controls generic server settings.
1273 1271
1274 1272 ``uncompressed``
1275 1273 Whether to allow clients to clone a repository using the
1276 1274 uncompressed streaming protocol. This transfers about 40% more
1277 1275 data than a regular clone, but uses less memory and CPU on both
1278 1276 server and client. Over a LAN (100 Mbps or better) or a very fast
1279 1277 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
1280 1278 regular clone. Over most WAN connections (anything slower than
1281 1279 about 6 Mbps), uncompressed streaming is slower, because of the
1282 1280 extra data transfer overhead. This mode will also temporarily hold
1283 1281 the write lock while determining what data to transfer.
1284 Default is True.
1282 (default: True)
1285 1283
1286 1284 ``preferuncompressed``
1287 1285 When set, clients will try to use the uncompressed streaming
1288 protocol. Default is False.
1286 protocol. (default: False)
1289 1287
1290 1288 ``validate``
1291 1289 Whether to validate the completeness of pushed changesets by
1292 1290 checking that all new file revisions specified in manifests are
1293 present. Default is False.
1291 present. (default: False)
1294 1292
1295 1293 ``maxhttpheaderlen``
1296 1294 Instruct HTTP clients not to send request headers longer than this
1297 many bytes. Default is 1024.
1295 many bytes. (default: 1024)
1298 1296
1299 1297 ``smtp``
1300 1298 --------
1301 1299
1302 1300 Configuration for extensions that need to send email messages.
1303 1301
1304 1302 ``host``
1305 1303 Host name of mail server, e.g. "mail.example.com".
1306 1304
1307 1305 ``port``
1308 Optional. Port to connect to on mail server. Default: 465 (if
1309 ``tls`` is smtps) or 25 (otherwise).
1306 Optional. Port to connect to on mail server. (default: 465 if
1307 ``tls`` is smtps; 25 otherwise)
1310 1308
1311 1309 ``tls``
1312 1310 Optional. Method to enable TLS when connecting to mail server: starttls,
1313 smtps or none. Default: none.
1311 smtps or none. (default: none)
1314 1312
1315 1313 ``verifycert``
1316 1314 Optional. Verification for the certificate of mail server, when
1317 1315 ``tls`` is starttls or smtps. "strict", "loose" or False. For
1318 1316 "strict" or "loose", the certificate is verified as same as the
1319 1317 verification for HTTPS connections (see ``[hostfingerprints]`` and
1320 1318 ``[web] cacerts`` also). For "strict", sending email is also
1321 1319 aborted, if there is no configuration for mail server in
1322 1320 ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
1323 :hg:`email` overwrites this as "loose". Default: "strict".
1321 :hg:`email` overwrites this as "loose". (default: strict)
1324 1322
1325 1323 ``username``
1326 1324 Optional. User name for authenticating with the SMTP server.
1327 Default: none.
1325 (default: None)
1328 1326
1329 1327 ``password``
1330 1328 Optional. Password for authenticating with the SMTP server. If not
1331 1329 specified, interactive sessions will prompt the user for a
1332 password; non-interactive sessions will fail. Default: none.
1330 password; non-interactive sessions will fail. (default: None)
1333 1331
1334 1332 ``local_hostname``
1335 1333 Optional. The hostname that the sender can use to identify
1336 1334 itself to the MTA.
1337 1335
1338 1336
1339 1337 ``subpaths``
1340 1338 ------------
1341 1339
1342 1340 Subrepository source URLs can go stale if a remote server changes name
1343 1341 or becomes temporarily unavailable. This section lets you define
1344 1342 rewrite rules of the form::
1345 1343
1346 1344 <pattern> = <replacement>
1347 1345
1348 1346 where ``pattern`` is a regular expression matching a subrepository
1349 1347 source URL and ``replacement`` is the replacement string used to
1350 1348 rewrite it. Groups can be matched in ``pattern`` and referenced in
1351 1349 ``replacements``. For instance::
1352 1350
1353 1351 http://server/(.*)-hg/ = http://hg.server/\1/
1354 1352
1355 1353 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
1356 1354
1357 1355 Relative subrepository paths are first made absolute, and the
1358 1356 rewrite rules are then applied on the full (absolute) path. The rules
1359 1357 are applied in definition order.
1360 1358
1361 1359 ``trusted``
1362 1360 -----------
1363 1361
1364 1362 Mercurial will not use the settings in the
1365 1363 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
1366 1364 user or to a trusted group, as various hgrc features allow arbitrary
1367 1365 commands to be run. This issue is often encountered when configuring
1368 1366 hooks or extensions for shared repositories or servers. However,
1369 1367 the web interface will use some safe settings from the ``[web]``
1370 1368 section.
1371 1369
1372 1370 This section specifies what users and groups are trusted. The
1373 1371 current user is always trusted. To trust everybody, list a user or a
1374 1372 group with name ``*``. These settings must be placed in an
1375 1373 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
1376 1374 user or service running Mercurial.
1377 1375
1378 1376 ``users``
1379 1377 Comma-separated list of trusted users.
1380 1378
1381 1379 ``groups``
1382 1380 Comma-separated list of trusted groups.
1383 1381
1384 1382
1385 1383 ``ui``
1386 1384 ------
1387 1385
1388 1386 User interface controls.
1389 1387
1390 1388 ``archivemeta``
1391 1389 Whether to include the .hg_archival.txt file containing meta data
1392 1390 (hashes for the repository base and for tip) in archives created
1393 1391 by the :hg:`archive` command or downloaded via hgweb.
1394 Default is True.
1392 (default: True)
1395 1393
1396 1394 ``askusername``
1397 1395 Whether to prompt for a username when committing. If True, and
1398 1396 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
1399 1397 be prompted to enter a username. If no username is entered, the
1400 1398 default ``USER@HOST`` is used instead.
1401 Default is False.
1399 (default: False)
1402 1400
1403 1401 ``commitsubrepos``
1404 1402 Whether to commit modified subrepositories when committing the
1405 1403 parent repository. If False and one subrepository has uncommitted
1406 1404 changes, abort the commit.
1407 Default is False.
1405 (default: False)
1408 1406
1409 1407 ``debug``
1410 Print debugging information. True or False. Default is False.
1408 Print debugging information. True or False. (default: False)
1411 1409
1412 1410 ``editor``
1413 The editor to use during a commit. Default is ``$EDITOR`` or ``vi``.
1411 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
1414 1412
1415 1413 ``fallbackencoding``
1416 1414 Encoding to try if it's not possible to decode the changelog using
1417 UTF-8. Default is ISO-8859-1.
1415 UTF-8. (default: ISO-8859-1)
1418 1416
1419 1417 ``ignore``
1420 1418 A file to read per-user ignore patterns from. This file should be
1421 1419 in the same format as a repository-wide .hgignore file. Filenames
1422 1420 are relative to the repository root. This option supports hook syntax,
1423 1421 so if you want to specify multiple ignore files, you can do so by
1424 1422 setting something like ``ignore.other = ~/.hgignore2``. For details
1425 1423 of the ignore file format, see the ``hgignore(5)`` man page.
1426 1424
1427 1425 ``interactive``
1428 Allow to prompt the user. True or False. Default is True.
1426 Allow to prompt the user. True or False. (default: True)
1429 1427
1430 1428 ``logtemplate``
1431 1429 Template string for commands that print changesets.
1432 1430
1433 1431 ``merge``
1434 1432 The conflict resolution program to use during a manual merge.
1435 1433 For more information on merge tools see :hg:`help merge-tools`.
1436 1434 For configuring merge tools see the ``[merge-tools]`` section.
1437 1435
1438 1436 ``mergemarkers``
1439 1437 Sets the merge conflict marker label styling. The ``detailed``
1440 1438 style uses the ``mergemarkertemplate`` setting to style the labels.
1441 1439 The ``basic`` style just uses 'local' and 'other' as the marker label.
1442 1440 One of ``basic`` or ``detailed``.
1443 Default is ``basic``.
1441 (default: ``basic``)
1444 1442
1445 1443 ``mergemarkertemplate``
1446 1444 The template used to print the commit description next to each conflict
1447 1445 marker during merge conflicts. See :hg:`help templates` for the template
1448 1446 format.
1449 1447
1450 1448 Defaults to showing the hash, tags, branches, bookmarks, author, and
1451 1449 the first line of the commit description.
1452 1450
1453 1451 If you use non-ASCII characters in names for tags, branches, bookmarks,
1454 1452 authors, and/or commit descriptions, you must pay attention to encodings of
1455 1453 managed files. At template expansion, non-ASCII characters use the encoding
1456 1454 specified by the ``--encoding`` global option, ``HGENCODING`` or other
1457 1455 environment variables that govern your locale. If the encoding of the merge
1458 1456 markers is different from the encoding of the merged files,
1459 1457 serious problems may occur.
1460 1458
1461 1459 ``patch``
1462 1460 An optional external tool that ``hg import`` and some extensions
1463 1461 will use for applying patches. By default Mercurial uses an
1464 1462 internal patch utility. The external tool must work as the common
1465 1463 Unix ``patch`` program. In particular, it must accept a ``-p``
1466 1464 argument to strip patch headers, a ``-d`` argument to specify the
1467 1465 current directory, a file name to patch, and a patch file to take
1468 1466 from stdin.
1469 1467
1470 1468 It is possible to specify a patch tool together with extra
1471 1469 arguments. For example, setting this option to ``patch --merge``
1472 1470 will use the ``patch`` program with its 2-way merge option.
1473 1471
1474 1472 ``portablefilenames``
1475 1473 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
1476 Default is ``warn``.
1474 (default: ``warn``)
1477 1475 If set to ``warn`` (or ``true``), a warning message is printed on POSIX
1478 1476 platforms, if a file with a non-portable filename is added (e.g. a file
1479 1477 with a name that can't be created on Windows because it contains reserved
1480 1478 parts like ``AUX``, reserved characters like ``:``, or would cause a case
1481 1479 collision with an existing file).
1482 1480 If set to ``ignore`` (or ``false``), no warning is printed.
1483 1481 If set to ``abort``, the command is aborted.
1484 1482 On Windows, this configuration option is ignored and the command aborted.
1485 1483
1486 1484 ``quiet``
1487 Reduce the amount of output printed. True or False. Default is False.
1485 Reduce the amount of output printed. True or False. (default: False)
1488 1486
1489 1487 ``remotecmd``
1490 remote command to use for clone/push/pull operations. Default is ``hg``.
1488 remote command to use for clone/push/pull operations. (default: ``hg``)
1491 1489
1492 1490 ``report_untrusted``
1493 1491 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
1494 trusted user or group. True or False. Default is True.
1492 trusted user or group. True or False. (default: True)
1495 1493
1496 1494 ``slash``
1497 1495 Display paths using a slash (``/``) as the path separator. This
1498 1496 only makes a difference on systems where the default path
1499 1497 separator is not the slash character (e.g. Windows uses the
1500 1498 backslash character (``\``)).
1501 Default is False.
1499 (default: False)
1502 1500
1503 1501 ``statuscopies``
1504 1502 Display copies in the status command.
1505 1503
1506 1504 ``ssh``
1507 command to use for SSH connections. Default is ``ssh``.
1505 command to use for SSH connections. (default: ``ssh``)
1508 1506
1509 1507 ``strict``
1510 1508 Require exact command names, instead of allowing unambiguous
1511 abbreviations. True or False. Default is False.
1509 abbreviations. True or False. (default: False)
1512 1510
1513 1511 ``style``
1514 1512 Name of style to use for command output.
1515 1513
1516 1514 ``timeout``
1517 1515 The timeout used when a lock is held (in seconds), a negative value
1518 means no timeout. Default is 600.
1516 means no timeout. (default: 600)
1519 1517
1520 1518 ``traceback``
1521 1519 Mercurial always prints a traceback when an unknown exception
1522 1520 occurs. Setting this to True will make Mercurial print a traceback
1523 1521 on all exceptions, even those recognized by Mercurial (such as
1524 IOError or MemoryError). Default is False.
1522 IOError or MemoryError). (default: False)
1525 1523
1526 1524 ``username``
1527 1525 The committer of a changeset created when running "commit".
1528 1526 Typically a person's name and email address, e.g. ``Fred Widget
1529 <fred@example.com>``. Default is ``$EMAIL`` or ``username@hostname``. If
1530 the username in hgrc is empty, it has to be specified manually or
1531 in a different hgrc file (e.g. ``$HOME/.hgrc``, if the admin set
1532 ``username =`` in the system hgrc). Environment variables in the
1527 <fred@example.com>``. Environment variables in the
1533 1528 username are expanded.
1534 1529
1530 (default: ``$EMAIL`` or ``username@hostname``. If the username in
1531 hgrc is empty, e.g. if the system admin set ``username =`` in the
1532 system hgrc, it has to be specified manually or in a different
1533 hgrc file)
1534
1535 1535 ``verbose``
1536 Increase the amount of output printed. True or False. Default is False.
1536 Increase the amount of output printed. True or False. (default: False)
1537 1537
1538 1538
1539 1539 ``web``
1540 1540 -------
1541 1541
1542 1542 Web interface configuration. The settings in this section apply to
1543 1543 both the builtin webserver (started by :hg:`serve`) and the script you
1544 1544 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
1545 1545 and WSGI).
1546 1546
1547 1547 The Mercurial webserver does no authentication (it does not prompt for
1548 1548 usernames and passwords to validate *who* users are), but it does do
1549 1549 authorization (it grants or denies access for *authenticated users*
1550 1550 based on settings in this section). You must either configure your
1551 1551 webserver to do authentication for you, or disable the authorization
1552 1552 checks.
1553 1553
1554 1554 For a quick setup in a trusted environment, e.g., a private LAN, where
1555 1555 you want it to accept pushes from anybody, you can use the following
1556 1556 command line::
1557 1557
1558 1558 $ hg --config web.allow_push=* --config web.push_ssl=False serve
1559 1559
1560 1560 Note that this will allow anybody to push anything to the server and
1561 1561 that this should not be used for public servers.
1562 1562
1563 1563 The full set of options is:
1564 1564
1565 1565 ``accesslog``
1566 Where to output the access log. Default is stdout.
1566 Where to output the access log. (default: stdout)
1567 1567
1568 1568 ``address``
1569 Interface address to bind to. Default is all.
1569 Interface address to bind to. (default: all)
1570 1570
1571 1571 ``allow_archive``
1572 1572 List of archive format (bz2, gz, zip) allowed for downloading.
1573 Default is empty.
1573 (default: empty)
1574 1574
1575 1575 ``allowbz2``
1576 1576 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
1577 1577 revisions.
1578 Default is False.
1578 (default: False)
1579 1579
1580 1580 ``allowgz``
1581 1581 (DEPRECATED) Whether to allow .tar.gz downloading of repository
1582 1582 revisions.
1583 Default is False.
1583 (default: False)
1584 1584
1585 1585 ``allowpull``
1586 Whether to allow pulling from the repository. Default is True.
1586 Whether to allow pulling from the repository. (default: True)
1587 1587
1588 1588 ``allow_push``
1589 1589 Whether to allow pushing to the repository. If empty or not set,
1590 1590 pushing is not allowed. If the special value ``*``, any remote
1591 1591 user can push, including unauthenticated users. Otherwise, the
1592 1592 remote user must have been authenticated, and the authenticated
1593 1593 user name must be present in this list. The contents of the
1594 1594 allow_push list are examined after the deny_push list.
1595 1595
1596 1596 ``allow_read``
1597 1597 If the user has not already been denied repository access due to
1598 1598 the contents of deny_read, this list determines whether to grant
1599 1599 repository access to the user. If this list is not empty, and the
1600 1600 user is unauthenticated or not present in the list, then access is
1601 1601 denied for the user. If the list is empty or not set, then access
1602 1602 is permitted to all users by default. Setting allow_read to the
1603 1603 special value ``*`` is equivalent to it not being set (i.e. access
1604 1604 is permitted to all users). The contents of the allow_read list are
1605 1605 examined after the deny_read list.
1606 1606
1607 1607 ``allowzip``
1608 1608 (DEPRECATED) Whether to allow .zip downloading of repository
1609 revisions. Default is False. This feature creates temporary files.
1609 revisions. This feature creates temporary files.
1610 (default: False)
1610 1611
1611 1612 ``archivesubrepos``
1612 Whether to recurse into subrepositories when archiving. Default is
1613 False.
1613 Whether to recurse into subrepositories when archiving.
1614 (default: False)
1614 1615
1615 1616 ``baseurl``
1616 1617 Base URL to use when publishing URLs in other locations, so
1617 1618 third-party tools like email notification hooks can construct
1618 1619 URLs. Example: ``http://hgserver/repos/``.
1619 1620
1620 1621 ``cacerts``
1621 1622 Path to file containing a list of PEM encoded certificate
1622 1623 authority certificates. Environment variables and ``~user``
1623 1624 constructs are expanded in the filename. If specified on the
1624 1625 client, then it will verify the identity of remote HTTPS servers
1625 1626 with these certificates.
1626 1627
1627 1628 This feature is only supported when using Python 2.6 or later. If you wish
1628 1629 to use it with earlier versions of Python, install the backported
1629 1630 version of the ssl library that is available from
1630 1631 ``http://pypi.python.org``.
1631 1632
1632 1633 To disable SSL verification temporarily, specify ``--insecure`` from
1633 1634 command line.
1634 1635
1635 1636 You can use OpenSSL's CA certificate file if your platform has
1636 1637 one. On most Linux systems this will be
1637 1638 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
1638 1639 generate this file manually. The form must be as follows::
1639 1640
1640 1641 -----BEGIN CERTIFICATE-----
1641 1642 ... (certificate in base64 PEM encoding) ...
1642 1643 -----END CERTIFICATE-----
1643 1644 -----BEGIN CERTIFICATE-----
1644 1645 ... (certificate in base64 PEM encoding) ...
1645 1646 -----END CERTIFICATE-----
1646 1647
1647 1648 ``cache``
1648 Whether to support caching in hgweb. Defaults to True.
1649 Whether to support caching in hgweb. (default: True)
1649 1650
1650 1651 ``certificate``
1651 1652 Certificate to use when running :hg:`serve`.
1652 1653
1653 1654 ``collapse``
1654 1655 With ``descend`` enabled, repositories in subdirectories are shown at
1655 1656 a single level alongside repositories in the current path. With
1656 1657 ``collapse`` also enabled, repositories residing at a deeper level than
1657 1658 the current path are grouped behind navigable directory entries that
1658 1659 lead to the locations of these repositories. In effect, this setting
1659 1660 collapses each collection of repositories found within a subdirectory
1660 into a single entry for that subdirectory. Default is False.
1661 into a single entry for that subdirectory. (default: False)
1661 1662
1662 1663 ``comparisoncontext``
1663 1664 Number of lines of context to show in side-by-side file comparison. If
1664 negative or the value ``full``, whole files are shown. Default is 5.
1665 negative or the value ``full``, whole files are shown. (default: 5)
1666
1665 1667 This setting can be overridden by a ``context`` request parameter to the
1666 1668 ``comparison`` command, taking the same values.
1667 1669
1668 1670 ``contact``
1669 1671 Name or email address of the person in charge of the repository.
1670 Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
1672 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
1671 1673
1672 1674 ``deny_push``
1673 1675 Whether to deny pushing to the repository. If empty or not set,
1674 1676 push is not denied. If the special value ``*``, all remote users are
1675 1677 denied push. Otherwise, unauthenticated users are all denied, and
1676 1678 any authenticated user name present in this list is also denied. The
1677 1679 contents of the deny_push list are examined before the allow_push list.
1678 1680
1679 1681 ``deny_read``
1680 1682 Whether to deny reading/viewing of the repository. If this list is
1681 1683 not empty, unauthenticated users are all denied, and any
1682 1684 authenticated user name present in this list is also denied access to
1683 1685 the repository. If set to the special value ``*``, all remote users
1684 1686 are denied access (rarely needed ;). If deny_read is empty or not set,
1685 1687 the determination of repository access depends on the presence and
1686 1688 content of the allow_read list (see description). If both
1687 1689 deny_read and allow_read are empty or not set, then access is
1688 1690 permitted to all users by default. If the repository is being
1689 1691 served via hgwebdir, denied users will not be able to see it in
1690 1692 the list of repositories. The contents of the deny_read list have
1691 1693 priority over (are examined before) the contents of the allow_read
1692 1694 list.
1693 1695
1694 1696 ``descend``
1695 1697 hgwebdir indexes will not descend into subdirectories. Only repositories
1696 1698 directly in the current path will be shown (other repositories are still
1697 1699 available from the index corresponding to their containing path).
1698 1700
1699 1701 ``description``
1700 1702 Textual description of the repository's purpose or contents.
1701 Default is "unknown".
1703 (default: "unknown")
1702 1704
1703 1705 ``encoding``
1704 Character encoding name. Default is the current locale charset.
1706 Character encoding name. (default: the current locale charset)
1705 1707 Example: "UTF-8".
1706 1708
1707 1709 ``errorlog``
1708 Where to output the error log. Default is stderr.
1710 Where to output the error log. (default: stderr)
1709 1711
1710 1712 ``guessmime``
1711 1713 Control MIME types for raw download of file content.
1712 1714 Set to True to let hgweb guess the content type from the file
1713 1715 extension. This will serve HTML files as ``text/html`` and might
1714 1716 allow cross-site scripting attacks when serving untrusted
1715 repositories. Default is False.
1717 repositories. (default: False)
1716 1718
1717 1719 ``hidden``
1718 1720 Whether to hide the repository in the hgwebdir index.
1719 Default is False.
1721 (default: False)
1720 1722
1721 1723 ``ipv6``
1722 Whether to use IPv6. Default is False.
1724 Whether to use IPv6. (default: False)
1723 1725
1724 1726 ``logoimg``
1725 1727 File name of the logo image that some templates display on each page.
1726 1728 The file name is relative to ``staticurl``. That is, the full path to
1727 1729 the logo image is "staticurl/logoimg".
1728 1730 If unset, ``hglogo.png`` will be used.
1729 1731
1730 1732 ``logourl``
1731 1733 Base URL to use for logos. If unset, ``http://mercurial.selenic.com/``
1732 1734 will be used.
1733 1735
1734 1736 ``maxchanges``
1735 Maximum number of changes to list on the changelog. Default is 10.
1737 Maximum number of changes to list on the changelog. (default: 10)
1736 1738
1737 1739 ``maxfiles``
1738 Maximum number of files to list per changeset. Default is 10.
1740 Maximum number of files to list per changeset. (default: 10)
1739 1741
1740 1742 ``maxshortchanges``
1741 1743 Maximum number of changes to list on the shortlog, graph or filelog
1742 pages. Default is 60.
1744 pages. (default: 60)
1743 1745
1744 1746 ``name``
1745 Repository name to use in the web interface. Default is current
1746 working directory.
1747 Repository name to use in the web interface.
1748 (default: current working directory)
1747 1749
1748 1750 ``port``
1749 Port to listen on. Default is 8000.
1751 Port to listen on. (default: 8000)
1750 1752
1751 1753 ``prefix``
1752 Prefix path to serve from. Default is '' (server root).
1754 Prefix path to serve from. (default: '' (server root))
1753 1755
1754 1756 ``push_ssl``
1755 1757 Whether to require that inbound pushes be transported over SSL to
1756 prevent password sniffing. Default is True.
1758 prevent password sniffing. (default: True)
1757 1759
1758 1760 ``refreshinterval``
1759 1761 How frequently directory listings re-scan the filesystem for new
1760 1762 repositories, in seconds. This is relevant when wildcards are used
1761 1763 to define paths. Depending on how much filesystem traversal is
1762 1764 required, refreshing may negatively impact performance.
1763 1765
1764 Default is 20. Values less than or equal to 0 always refresh.
1766 Values less than or equal to 0 always refresh.
1767 (default: 20)
1765 1768
1766 1769 ``staticurl``
1767 1770 Base URL to use for static files. If unset, static files (e.g. the
1768 1771 hgicon.png favicon) will be served by the CGI script itself. Use
1769 1772 this setting to serve them directly with the HTTP server.
1770 1773 Example: ``http://hgserver/static/``.
1771 1774
1772 1775 ``stripes``
1773 1776 How many lines a "zebra stripe" should span in multi-line output.
1774 Default is 1; set to 0 to disable.
1777 Set to 0 to disable. (default: 1)
1775 1778
1776 1779 ``style``
1777 1780 Which template map style to use. The available options are the names of
1778 subdirectories in the HTML templates path. Default is ``paper``.
1779 Example: ``monoblue``
1781 subdirectories in the HTML templates path. (default: ``paper``)
1782 Example: ``monoblue``.
1780 1783
1781 1784 ``templates``
1782 1785 Where to find the HTML templates. The default path to the HTML templates
1783 1786 can be obtained from ``hg debuginstall``.
1784 1787
1785 1788 ``websub``
1786 1789 ----------
1787 1790
1788 1791 Web substitution filter definition. You can use this section to
1789 1792 define a set of regular expression substitution patterns which
1790 1793 let you automatically modify the hgweb server output.
1791 1794
1792 1795 The default hgweb templates only apply these substitution patterns
1793 1796 on the revision description fields. You can apply them anywhere
1794 1797 you want when you create your own templates by adding calls to the
1795 1798 "websub" filter (usually after calling the "escape" filter).
1796 1799
1797 1800 This can be used, for example, to convert issue references to links
1798 1801 to your issue tracker, or to convert "markdown-like" syntax into
1799 1802 HTML (see the examples below).
1800 1803
1801 1804 Each entry in this section names a substitution filter.
1802 1805 The value of each entry defines the substitution expression itself.
1803 1806 The websub expressions follow the old interhg extension syntax,
1804 1807 which in turn imitates the Unix sed replacement syntax::
1805 1808
1806 1809 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
1807 1810
1808 1811 You can use any separator other than "/". The final "i" is optional
1809 1812 and indicates that the search must be case insensitive.
1810 1813
1811 1814 Examples::
1812 1815
1813 1816 [websub]
1814 1817 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
1815 1818 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
1816 1819 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
1817 1820
1818 1821 ``worker``
1819 1822 ----------
1820 1823
1821 1824 Parallel master/worker configuration. We currently perform working
1822 1825 directory updates in parallel on Unix-like systems, which greatly
1823 1826 helps performance.
1824 1827
1825 1828 ``numcpus``
1826 Number of CPUs to use for parallel operations. Default is 4 or the
1827 number of CPUs on the system, whichever is larger. A zero or
1829 Number of CPUs to use for parallel operations. A zero or
1828 1830 negative value is treated as ``use the default``.
1831 (default: 4 or the number of CPUs on the system, whichever is larger)
@@ -1,2310 +1,2309 b''
1 1 Short help:
2 2
3 3 $ hg
4 4 Mercurial Distributed SCM
5 5
6 6 basic commands:
7 7
8 8 add add the specified files on the next commit
9 9 annotate show changeset information by line for each file
10 10 clone make a copy of an existing repository
11 11 commit commit the specified files or all outstanding changes
12 12 diff diff repository (or selected files)
13 13 export dump the header and diffs for one or more changesets
14 14 forget forget the specified files on the next commit
15 15 init create a new repository in the given directory
16 16 log show revision history of entire repository or files
17 17 merge merge another revision into working directory
18 18 pull pull changes from the specified source
19 19 push push changes to the specified destination
20 20 remove remove the specified files on the next commit
21 21 serve start stand-alone webserver
22 22 status show changed files in the working directory
23 23 summary summarize working directory state
24 24 update update working directory (or switch revisions)
25 25
26 26 (use "hg help" for the full list of commands or "hg -v" for details)
27 27
28 28 $ hg -q
29 29 add add the specified files on the next commit
30 30 annotate show changeset information by line for each file
31 31 clone make a copy of an existing repository
32 32 commit commit the specified files or all outstanding changes
33 33 diff diff repository (or selected files)
34 34 export dump the header and diffs for one or more changesets
35 35 forget forget the specified files on the next commit
36 36 init create a new repository in the given directory
37 37 log show revision history of entire repository or files
38 38 merge merge another revision into working directory
39 39 pull pull changes from the specified source
40 40 push push changes to the specified destination
41 41 remove remove the specified files on the next commit
42 42 serve start stand-alone webserver
43 43 status show changed files in the working directory
44 44 summary summarize working directory state
45 45 update update working directory (or switch revisions)
46 46
47 47 $ hg help
48 48 Mercurial Distributed SCM
49 49
50 50 list of commands:
51 51
52 52 add add the specified files on the next commit
53 53 addremove add all new files, delete all missing files
54 54 annotate show changeset information by line for each file
55 55 archive create an unversioned archive of a repository revision
56 56 backout reverse effect of earlier changeset
57 57 bisect subdivision search of changesets
58 58 bookmarks create a new bookmark or list existing bookmarks
59 59 branch set or show the current branch name
60 60 branches list repository named branches
61 61 bundle create a changegroup file
62 62 cat output the current or given revision of files
63 63 clone make a copy of an existing repository
64 64 commit commit the specified files or all outstanding changes
65 65 config show combined config settings from all hgrc files
66 66 copy mark files as copied for the next commit
67 67 diff diff repository (or selected files)
68 68 export dump the header and diffs for one or more changesets
69 69 files list tracked files
70 70 forget forget the specified files on the next commit
71 71 graft copy changes from other branches onto the current branch
72 72 grep search for a pattern in specified files and revisions
73 73 heads show branch heads
74 74 help show help for a given topic or a help overview
75 75 identify identify the working directory or specified revision
76 76 import import an ordered set of patches
77 77 incoming show new changesets found in source
78 78 init create a new repository in the given directory
79 79 log show revision history of entire repository or files
80 80 manifest output the current or given revision of the project manifest
81 81 merge merge another revision into working directory
82 82 outgoing show changesets not found in the destination
83 83 paths show aliases for remote repositories
84 84 phase set or show the current phase name
85 85 pull pull changes from the specified source
86 86 push push changes to the specified destination
87 87 recover roll back an interrupted transaction
88 88 remove remove the specified files on the next commit
89 89 rename rename files; equivalent of copy + remove
90 90 resolve redo merges or set/view the merge status of files
91 91 revert restore files to their checkout state
92 92 root print the root (top) of the current working directory
93 93 serve start stand-alone webserver
94 94 status show changed files in the working directory
95 95 summary summarize working directory state
96 96 tag add one or more tags for the current or given revision
97 97 tags list repository tags
98 98 unbundle apply one or more changegroup files
99 99 update update working directory (or switch revisions)
100 100 verify verify the integrity of the repository
101 101 version output version and copyright information
102 102
103 103 additional help topics:
104 104
105 105 config Configuration Files
106 106 dates Date Formats
107 107 diffs Diff Formats
108 108 environment Environment Variables
109 109 extensions Using Additional Features
110 110 filesets Specifying File Sets
111 111 glossary Glossary
112 112 hgignore Syntax for Mercurial Ignore Files
113 113 hgweb Configuring hgweb
114 114 merge-tools Merge Tools
115 115 multirevs Specifying Multiple Revisions
116 116 patterns File Name Patterns
117 117 phases Working with Phases
118 118 revisions Specifying Single Revisions
119 119 revsets Specifying Revision Sets
120 120 scripting Using Mercurial from scripts and automation
121 121 subrepos Subrepositories
122 122 templating Template Usage
123 123 urls URL Paths
124 124
125 125 (use "hg help -v" to show built-in aliases and global options)
126 126
127 127 $ hg -q help
128 128 add add the specified files on the next commit
129 129 addremove add all new files, delete all missing files
130 130 annotate show changeset information by line for each file
131 131 archive create an unversioned archive of a repository revision
132 132 backout reverse effect of earlier changeset
133 133 bisect subdivision search of changesets
134 134 bookmarks create a new bookmark or list existing bookmarks
135 135 branch set or show the current branch name
136 136 branches list repository named branches
137 137 bundle create a changegroup file
138 138 cat output the current or given revision of files
139 139 clone make a copy of an existing repository
140 140 commit commit the specified files or all outstanding changes
141 141 config show combined config settings from all hgrc files
142 142 copy mark files as copied for the next commit
143 143 diff diff repository (or selected files)
144 144 export dump the header and diffs for one or more changesets
145 145 files list tracked files
146 146 forget forget the specified files on the next commit
147 147 graft copy changes from other branches onto the current branch
148 148 grep search for a pattern in specified files and revisions
149 149 heads show branch heads
150 150 help show help for a given topic or a help overview
151 151 identify identify the working directory or specified revision
152 152 import import an ordered set of patches
153 153 incoming show new changesets found in source
154 154 init create a new repository in the given directory
155 155 log show revision history of entire repository or files
156 156 manifest output the current or given revision of the project manifest
157 157 merge merge another revision into working directory
158 158 outgoing show changesets not found in the destination
159 159 paths show aliases for remote repositories
160 160 phase set or show the current phase name
161 161 pull pull changes from the specified source
162 162 push push changes to the specified destination
163 163 recover roll back an interrupted transaction
164 164 remove remove the specified files on the next commit
165 165 rename rename files; equivalent of copy + remove
166 166 resolve redo merges or set/view the merge status of files
167 167 revert restore files to their checkout state
168 168 root print the root (top) of the current working directory
169 169 serve start stand-alone webserver
170 170 status show changed files in the working directory
171 171 summary summarize working directory state
172 172 tag add one or more tags for the current or given revision
173 173 tags list repository tags
174 174 unbundle apply one or more changegroup files
175 175 update update working directory (or switch revisions)
176 176 verify verify the integrity of the repository
177 177 version output version and copyright information
178 178
179 179 additional help topics:
180 180
181 181 config Configuration Files
182 182 dates Date Formats
183 183 diffs Diff Formats
184 184 environment Environment Variables
185 185 extensions Using Additional Features
186 186 filesets Specifying File Sets
187 187 glossary Glossary
188 188 hgignore Syntax for Mercurial Ignore Files
189 189 hgweb Configuring hgweb
190 190 merge-tools Merge Tools
191 191 multirevs Specifying Multiple Revisions
192 192 patterns File Name Patterns
193 193 phases Working with Phases
194 194 revisions Specifying Single Revisions
195 195 revsets Specifying Revision Sets
196 196 scripting Using Mercurial from scripts and automation
197 197 subrepos Subrepositories
198 198 templating Template Usage
199 199 urls URL Paths
200 200
201 201 Test extension help:
202 202 $ hg help extensions --config extensions.rebase= --config extensions.children=
203 203 Using Additional Features
204 204 """""""""""""""""""""""""
205 205
206 206 Mercurial has the ability to add new features through the use of
207 207 extensions. Extensions may add new commands, add options to existing
208 208 commands, change the default behavior of commands, or implement hooks.
209 209
210 210 To enable the "foo" extension, either shipped with Mercurial or in the
211 211 Python search path, create an entry for it in your configuration file,
212 212 like this:
213 213
214 214 [extensions]
215 215 foo =
216 216
217 217 You may also specify the full path to an extension:
218 218
219 219 [extensions]
220 220 myfeature = ~/.hgext/myfeature.py
221 221
222 222 See "hg help config" for more information on configuration files.
223 223
224 224 Extensions are not loaded by default for a variety of reasons: they can
225 225 increase startup overhead; they may be meant for advanced usage only; they
226 226 may provide potentially dangerous abilities (such as letting you destroy
227 227 or modify history); they might not be ready for prime time; or they may
228 228 alter some usual behaviors of stock Mercurial. It is thus up to the user
229 229 to activate extensions as needed.
230 230
231 231 To explicitly disable an extension enabled in a configuration file of
232 232 broader scope, prepend its path with !:
233 233
234 234 [extensions]
235 235 # disabling extension bar residing in /path/to/extension/bar.py
236 236 bar = !/path/to/extension/bar.py
237 237 # ditto, but no path was supplied for extension baz
238 238 baz = !
239 239
240 240 enabled extensions:
241 241
242 242 children command to display child changesets (DEPRECATED)
243 243 rebase command to move sets of revisions to a different ancestor
244 244
245 245 disabled extensions:
246 246
247 247 acl hooks for controlling repository access
248 248 blackbox log repository events to a blackbox for debugging
249 249 bugzilla hooks for integrating with the Bugzilla bug tracker
250 250 censor erase file content at a given revision
251 251 churn command to display statistics about repository history
252 252 color colorize output from some commands
253 253 convert import revisions from foreign VCS repositories into
254 254 Mercurial
255 255 eol automatically manage newlines in repository files
256 256 extdiff command to allow external programs to compare revisions
257 257 factotum http authentication with factotum
258 258 gpg commands to sign and verify changesets
259 259 hgcia hooks for integrating with the CIA.vc notification service
260 260 hgk browse the repository in a graphical way
261 261 highlight syntax highlighting for hgweb (requires Pygments)
262 262 histedit interactive history editing
263 263 keyword expand keywords in tracked files
264 264 largefiles track large binary files
265 265 mq manage a stack of patches
266 266 notify hooks for sending email push notifications
267 267 pager browse command output with an external pager
268 268 patchbomb command to send changesets as (a series of) patch emails
269 269 purge command to delete untracked files from the working
270 270 directory
271 271 record commands to interactively select changes for
272 272 commit/qrefresh
273 273 relink recreates hardlinks between repository clones
274 274 schemes extend schemes with shortcuts to repository swarms
275 275 share share a common history between several working directories
276 276 shelve save and restore changes to the working directory
277 277 strip strip changesets and their descendants from history
278 278 transplant command to transplant changesets from another branch
279 279 win32mbcs allow the use of MBCS paths with problematic encodings
280 280 zeroconf discover and advertise repositories on the local network
281 281 Test short command list with verbose option
282 282
283 283 $ hg -v help shortlist
284 284 Mercurial Distributed SCM
285 285
286 286 basic commands:
287 287
288 288 add add the specified files on the next commit
289 289 annotate, blame
290 290 show changeset information by line for each file
291 291 clone make a copy of an existing repository
292 292 commit, ci commit the specified files or all outstanding changes
293 293 diff diff repository (or selected files)
294 294 export dump the header and diffs for one or more changesets
295 295 forget forget the specified files on the next commit
296 296 init create a new repository in the given directory
297 297 log, history show revision history of entire repository or files
298 298 merge merge another revision into working directory
299 299 pull pull changes from the specified source
300 300 push push changes to the specified destination
301 301 remove, rm remove the specified files on the next commit
302 302 serve start stand-alone webserver
303 303 status, st show changed files in the working directory
304 304 summary, sum summarize working directory state
305 305 update, up, checkout, co
306 306 update working directory (or switch revisions)
307 307
308 308 global options ([+] can be repeated):
309 309
310 310 -R --repository REPO repository root directory or name of overlay bundle
311 311 file
312 312 --cwd DIR change working directory
313 313 -y --noninteractive do not prompt, automatically pick the first choice for
314 314 all prompts
315 315 -q --quiet suppress output
316 316 -v --verbose enable additional output
317 317 --config CONFIG [+] set/override config option (use 'section.name=value')
318 318 --debug enable debugging output
319 319 --debugger start debugger
320 320 --encoding ENCODE set the charset encoding (default: ascii)
321 321 --encodingmode MODE set the charset encoding mode (default: strict)
322 322 --traceback always print a traceback on exception
323 323 --time time how long the command takes
324 324 --profile print command execution profile
325 325 --version output version information and exit
326 326 -h --help display help and exit
327 327 --hidden consider hidden changesets
328 328
329 329 (use "hg help" for the full list of commands)
330 330
331 331 $ hg add -h
332 332 hg add [OPTION]... [FILE]...
333 333
334 334 add the specified files on the next commit
335 335
336 336 Schedule files to be version controlled and added to the repository.
337 337
338 338 The files will be added to the repository at the next commit. To undo an
339 339 add before that, see "hg forget".
340 340
341 341 If no names are given, add all files to the repository.
342 342
343 343 Returns 0 if all files are successfully added.
344 344
345 345 options ([+] can be repeated):
346 346
347 347 -I --include PATTERN [+] include names matching the given patterns
348 348 -X --exclude PATTERN [+] exclude names matching the given patterns
349 349 -S --subrepos recurse into subrepositories
350 350 -n --dry-run do not perform actions, just print output
351 351
352 352 (some details hidden, use --verbose to show complete help)
353 353
354 354 Verbose help for add
355 355
356 356 $ hg add -hv
357 357 hg add [OPTION]... [FILE]...
358 358
359 359 add the specified files on the next commit
360 360
361 361 Schedule files to be version controlled and added to the repository.
362 362
363 363 The files will be added to the repository at the next commit. To undo an
364 364 add before that, see "hg forget".
365 365
366 366 If no names are given, add all files to the repository.
367 367
368 368 An example showing how new (unknown) files are added automatically by "hg
369 369 add":
370 370
371 371 $ ls
372 372 foo.c
373 373 $ hg status
374 374 ? foo.c
375 375 $ hg add
376 376 adding foo.c
377 377 $ hg status
378 378 A foo.c
379 379
380 380 Returns 0 if all files are successfully added.
381 381
382 382 options ([+] can be repeated):
383 383
384 384 -I --include PATTERN [+] include names matching the given patterns
385 385 -X --exclude PATTERN [+] exclude names matching the given patterns
386 386 -S --subrepos recurse into subrepositories
387 387 -n --dry-run do not perform actions, just print output
388 388
389 389 global options ([+] can be repeated):
390 390
391 391 -R --repository REPO repository root directory or name of overlay bundle
392 392 file
393 393 --cwd DIR change working directory
394 394 -y --noninteractive do not prompt, automatically pick the first choice for
395 395 all prompts
396 396 -q --quiet suppress output
397 397 -v --verbose enable additional output
398 398 --config CONFIG [+] set/override config option (use 'section.name=value')
399 399 --debug enable debugging output
400 400 --debugger start debugger
401 401 --encoding ENCODE set the charset encoding (default: ascii)
402 402 --encodingmode MODE set the charset encoding mode (default: strict)
403 403 --traceback always print a traceback on exception
404 404 --time time how long the command takes
405 405 --profile print command execution profile
406 406 --version output version information and exit
407 407 -h --help display help and exit
408 408 --hidden consider hidden changesets
409 409
410 410 Test help option with version option
411 411
412 412 $ hg add -h --version
413 413 Mercurial Distributed SCM (version *) (glob)
414 414 (see http://mercurial.selenic.com for more information)
415 415
416 416 Copyright (C) 2005-2015 Matt Mackall and others
417 417 This is free software; see the source for copying conditions. There is NO
418 418 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
419 419
420 420 $ hg add --skjdfks
421 421 hg add: option --skjdfks not recognized
422 422 hg add [OPTION]... [FILE]...
423 423
424 424 add the specified files on the next commit
425 425
426 426 options ([+] can be repeated):
427 427
428 428 -I --include PATTERN [+] include names matching the given patterns
429 429 -X --exclude PATTERN [+] exclude names matching the given patterns
430 430 -S --subrepos recurse into subrepositories
431 431 -n --dry-run do not perform actions, just print output
432 432
433 433 (use "hg add -h" to show more help)
434 434 [255]
435 435
436 436 Test ambiguous command help
437 437
438 438 $ hg help ad
439 439 list of commands:
440 440
441 441 add add the specified files on the next commit
442 442 addremove add all new files, delete all missing files
443 443
444 444 (use "hg help -v ad" to show built-in aliases and global options)
445 445
446 446 Test command without options
447 447
448 448 $ hg help verify
449 449 hg verify
450 450
451 451 verify the integrity of the repository
452 452
453 453 Verify the integrity of the current repository.
454 454
455 455 This will perform an extensive check of the repository's integrity,
456 456 validating the hashes and checksums of each entry in the changelog,
457 457 manifest, and tracked files, as well as the integrity of their crosslinks
458 458 and indices.
459 459
460 460 Please see http://mercurial.selenic.com/wiki/RepositoryCorruption for more
461 461 information about recovery from corruption of the repository.
462 462
463 463 Returns 0 on success, 1 if errors are encountered.
464 464
465 465 (some details hidden, use --verbose to show complete help)
466 466
467 467 $ hg help diff
468 468 hg diff [OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...
469 469
470 470 diff repository (or selected files)
471 471
472 472 Show differences between revisions for the specified files.
473 473
474 474 Differences between files are shown using the unified diff format.
475 475
476 476 Note:
477 477 diff may generate unexpected results for merges, as it will default to
478 478 comparing against the working directory's first parent changeset if no
479 479 revisions are specified.
480 480
481 481 When two revision arguments are given, then changes are shown between
482 482 those revisions. If only one revision is specified then that revision is
483 483 compared to the working directory, and, when no revisions are specified,
484 484 the working directory files are compared to its parent.
485 485
486 486 Alternatively you can specify -c/--change with a revision to see the
487 487 changes in that changeset relative to its first parent.
488 488
489 489 Without the -a/--text option, diff will avoid generating diffs of files it
490 490 detects as binary. With -a, diff will generate a diff anyway, probably
491 491 with undesirable results.
492 492
493 493 Use the -g/--git option to generate diffs in the git extended diff format.
494 494 For more information, read "hg help diffs".
495 495
496 496 Returns 0 on success.
497 497
498 498 options ([+] can be repeated):
499 499
500 500 -r --rev REV [+] revision
501 501 -c --change REV change made by revision
502 502 -a --text treat all files as text
503 503 -g --git use git extended diff format
504 504 --nodates omit dates from diff headers
505 505 --noprefix omit a/ and b/ prefixes from filenames
506 506 -p --show-function show which function each change is in
507 507 --reverse produce a diff that undoes the changes
508 508 -w --ignore-all-space ignore white space when comparing lines
509 509 -b --ignore-space-change ignore changes in the amount of white space
510 510 -B --ignore-blank-lines ignore changes whose lines are all blank
511 511 -U --unified NUM number of lines of context to show
512 512 --stat output diffstat-style summary of changes
513 513 --root DIR produce diffs relative to subdirectory
514 514 -I --include PATTERN [+] include names matching the given patterns
515 515 -X --exclude PATTERN [+] exclude names matching the given patterns
516 516 -S --subrepos recurse into subrepositories
517 517
518 518 (some details hidden, use --verbose to show complete help)
519 519
520 520 $ hg help status
521 521 hg status [OPTION]... [FILE]...
522 522
523 523 aliases: st
524 524
525 525 show changed files in the working directory
526 526
527 527 Show status of files in the repository. If names are given, only files
528 528 that match are shown. Files that are clean or ignored or the source of a
529 529 copy/move operation, are not listed unless -c/--clean, -i/--ignored,
530 530 -C/--copies or -A/--all are given. Unless options described with "show
531 531 only ..." are given, the options -mardu are used.
532 532
533 533 Option -q/--quiet hides untracked (unknown and ignored) files unless
534 534 explicitly requested with -u/--unknown or -i/--ignored.
535 535
536 536 Note:
537 537 status may appear to disagree with diff if permissions have changed or
538 538 a merge has occurred. The standard diff format does not report
539 539 permission changes and diff only reports changes relative to one merge
540 540 parent.
541 541
542 542 If one revision is given, it is used as the base revision. If two
543 543 revisions are given, the differences between them are shown. The --change
544 544 option can also be used as a shortcut to list the changed files of a
545 545 revision from its first parent.
546 546
547 547 The codes used to show the status of files are:
548 548
549 549 M = modified
550 550 A = added
551 551 R = removed
552 552 C = clean
553 553 ! = missing (deleted by non-hg command, but still tracked)
554 554 ? = not tracked
555 555 I = ignored
556 556 = origin of the previous file (with --copies)
557 557
558 558 Returns 0 on success.
559 559
560 560 options ([+] can be repeated):
561 561
562 562 -A --all show status of all files
563 563 -m --modified show only modified files
564 564 -a --added show only added files
565 565 -r --removed show only removed files
566 566 -d --deleted show only deleted (but tracked) files
567 567 -c --clean show only files without changes
568 568 -u --unknown show only unknown (not tracked) files
569 569 -i --ignored show only ignored files
570 570 -n --no-status hide status prefix
571 571 -C --copies show source of copied files
572 572 -0 --print0 end filenames with NUL, for use with xargs
573 573 --rev REV [+] show difference from revision
574 574 --change REV list the changed files of a revision
575 575 -I --include PATTERN [+] include names matching the given patterns
576 576 -X --exclude PATTERN [+] exclude names matching the given patterns
577 577 -S --subrepos recurse into subrepositories
578 578
579 579 (some details hidden, use --verbose to show complete help)
580 580
581 581 $ hg -q help status
582 582 hg status [OPTION]... [FILE]...
583 583
584 584 show changed files in the working directory
585 585
586 586 $ hg help foo
587 587 abort: no such help topic: foo
588 588 (try "hg help --keyword foo")
589 589 [255]
590 590
591 591 $ hg skjdfks
592 592 hg: unknown command 'skjdfks'
593 593 Mercurial Distributed SCM
594 594
595 595 basic commands:
596 596
597 597 add add the specified files on the next commit
598 598 annotate show changeset information by line for each file
599 599 clone make a copy of an existing repository
600 600 commit commit the specified files or all outstanding changes
601 601 diff diff repository (or selected files)
602 602 export dump the header and diffs for one or more changesets
603 603 forget forget the specified files on the next commit
604 604 init create a new repository in the given directory
605 605 log show revision history of entire repository or files
606 606 merge merge another revision into working directory
607 607 pull pull changes from the specified source
608 608 push push changes to the specified destination
609 609 remove remove the specified files on the next commit
610 610 serve start stand-alone webserver
611 611 status show changed files in the working directory
612 612 summary summarize working directory state
613 613 update update working directory (or switch revisions)
614 614
615 615 (use "hg help" for the full list of commands or "hg -v" for details)
616 616 [255]
617 617
618 618
619 619 $ cat > helpext.py <<EOF
620 620 > import os
621 621 > from mercurial import cmdutil, commands
622 622 >
623 623 > cmdtable = {}
624 624 > command = cmdutil.command(cmdtable)
625 625 >
626 626 > @command('nohelp',
627 627 > [('', 'longdesc', 3, 'x'*90),
628 628 > ('n', '', None, 'normal desc'),
629 629 > ('', 'newline', '', 'line1\nline2')],
630 630 > 'hg nohelp',
631 631 > norepo=True)
632 632 > @command('debugoptDEP', [('', 'dopt', None, 'option is DEPRECATED')])
633 633 > @command('debugoptEXP', [('', 'eopt', None, 'option is EXPERIMENTAL')])
634 634 > def nohelp(ui, *args, **kwargs):
635 635 > pass
636 636 >
637 637 > EOF
638 638 $ echo '[extensions]' >> $HGRCPATH
639 639 $ echo "helpext = `pwd`/helpext.py" >> $HGRCPATH
640 640
641 641 Test command with no help text
642 642
643 643 $ hg help nohelp
644 644 hg nohelp
645 645
646 646 (no help text available)
647 647
648 648 options:
649 649
650 650 --longdesc VALUE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
651 651 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (default: 3)
652 652 -n -- normal desc
653 653 --newline VALUE line1 line2
654 654
655 655 (some details hidden, use --verbose to show complete help)
656 656
657 657 $ hg help -k nohelp
658 658 Commands:
659 659
660 660 nohelp hg nohelp
661 661
662 662 Extension Commands:
663 663
664 664 nohelp (no help text available)
665 665
666 666 Test that default list of commands omits extension commands
667 667
668 668 $ hg help
669 669 Mercurial Distributed SCM
670 670
671 671 list of commands:
672 672
673 673 add add the specified files on the next commit
674 674 addremove add all new files, delete all missing files
675 675 annotate show changeset information by line for each file
676 676 archive create an unversioned archive of a repository revision
677 677 backout reverse effect of earlier changeset
678 678 bisect subdivision search of changesets
679 679 bookmarks create a new bookmark or list existing bookmarks
680 680 branch set or show the current branch name
681 681 branches list repository named branches
682 682 bundle create a changegroup file
683 683 cat output the current or given revision of files
684 684 clone make a copy of an existing repository
685 685 commit commit the specified files or all outstanding changes
686 686 config show combined config settings from all hgrc files
687 687 copy mark files as copied for the next commit
688 688 diff diff repository (or selected files)
689 689 export dump the header and diffs for one or more changesets
690 690 files list tracked files
691 691 forget forget the specified files on the next commit
692 692 graft copy changes from other branches onto the current branch
693 693 grep search for a pattern in specified files and revisions
694 694 heads show branch heads
695 695 help show help for a given topic or a help overview
696 696 identify identify the working directory or specified revision
697 697 import import an ordered set of patches
698 698 incoming show new changesets found in source
699 699 init create a new repository in the given directory
700 700 log show revision history of entire repository or files
701 701 manifest output the current or given revision of the project manifest
702 702 merge merge another revision into working directory
703 703 outgoing show changesets not found in the destination
704 704 paths show aliases for remote repositories
705 705 phase set or show the current phase name
706 706 pull pull changes from the specified source
707 707 push push changes to the specified destination
708 708 recover roll back an interrupted transaction
709 709 remove remove the specified files on the next commit
710 710 rename rename files; equivalent of copy + remove
711 711 resolve redo merges or set/view the merge status of files
712 712 revert restore files to their checkout state
713 713 root print the root (top) of the current working directory
714 714 serve start stand-alone webserver
715 715 status show changed files in the working directory
716 716 summary summarize working directory state
717 717 tag add one or more tags for the current or given revision
718 718 tags list repository tags
719 719 unbundle apply one or more changegroup files
720 720 update update working directory (or switch revisions)
721 721 verify verify the integrity of the repository
722 722 version output version and copyright information
723 723
724 724 enabled extensions:
725 725
726 726 helpext (no help text available)
727 727
728 728 additional help topics:
729 729
730 730 config Configuration Files
731 731 dates Date Formats
732 732 diffs Diff Formats
733 733 environment Environment Variables
734 734 extensions Using Additional Features
735 735 filesets Specifying File Sets
736 736 glossary Glossary
737 737 hgignore Syntax for Mercurial Ignore Files
738 738 hgweb Configuring hgweb
739 739 merge-tools Merge Tools
740 740 multirevs Specifying Multiple Revisions
741 741 patterns File Name Patterns
742 742 phases Working with Phases
743 743 revisions Specifying Single Revisions
744 744 revsets Specifying Revision Sets
745 745 scripting Using Mercurial from scripts and automation
746 746 subrepos Subrepositories
747 747 templating Template Usage
748 748 urls URL Paths
749 749
750 750 (use "hg help -v" to show built-in aliases and global options)
751 751
752 752
753 753 Test list of internal help commands
754 754
755 755 $ hg help debug
756 756 debug commands (internal and unsupported):
757 757
758 758 debugancestor
759 759 find the ancestor revision of two revisions in a given index
760 760 debugbuilddag
761 761 builds a repo with a given DAG from scratch in the current
762 762 empty repo
763 763 debugbundle lists the contents of a bundle
764 764 debugcheckstate
765 765 validate the correctness of the current dirstate
766 766 debugcommands
767 767 list all available commands and options
768 768 debugcomplete
769 769 returns the completion list associated with the given command
770 770 debugdag format the changelog or an index DAG as a concise textual
771 771 description
772 772 debugdata dump the contents of a data file revision
773 773 debugdate parse and display a date
774 774 debugdirstate
775 775 show the contents of the current dirstate
776 776 debugdiscovery
777 777 runs the changeset discovery protocol in isolation
778 778 debugfileset parse and apply a fileset specification
779 779 debugfsinfo show information detected about current filesystem
780 780 debuggetbundle
781 781 retrieves a bundle from a repo
782 782 debugignore display the combined ignore pattern
783 783 debugindex dump the contents of an index file
784 784 debugindexdot
785 785 dump an index DAG as a graphviz dot file
786 786 debuginstall test Mercurial installation
787 787 debugknown test whether node ids are known to a repo
788 788 debuglocks show or modify state of locks
789 789 debugnamecomplete
790 790 complete "names" - tags, open branch names, bookmark names
791 791 debugobsolete
792 792 create arbitrary obsolete marker
793 793 debugoptDEP (no help text available)
794 794 debugoptEXP (no help text available)
795 795 debugpathcomplete
796 796 complete part or all of a tracked path
797 797 debugpushkey access the pushkey key/value protocol
798 798 debugpvec (no help text available)
799 799 debugrebuilddirstate
800 800 rebuild the dirstate as it would look like for the given
801 801 revision
802 802 debugrebuildfncache
803 803 rebuild the fncache file
804 804 debugrename dump rename information
805 805 debugrevlog show data and statistics about a revlog
806 806 debugrevspec parse and apply a revision specification
807 807 debugsetparents
808 808 manually set the parents of the current working directory
809 809 debugsub (no help text available)
810 810 debugsuccessorssets
811 811 show set of successors for revision
812 812 debugwalk show how files match on given patterns
813 813 debugwireargs
814 814 (no help text available)
815 815
816 816 (use "hg help -v debug" to show built-in aliases and global options)
817 817
818 818
819 819 Test list of commands with command with no help text
820 820
821 821 $ hg help helpext
822 822 helpext extension - no help text available
823 823
824 824 list of commands:
825 825
826 826 nohelp (no help text available)
827 827
828 828 (use "hg help -v helpext" to show built-in aliases and global options)
829 829
830 830
831 831 test deprecated and experimental options are hidden in command help
832 832 $ hg help debugoptDEP
833 833 hg debugoptDEP
834 834
835 835 (no help text available)
836 836
837 837 options:
838 838
839 839 (some details hidden, use --verbose to show complete help)
840 840
841 841 $ hg help debugoptEXP
842 842 hg debugoptEXP
843 843
844 844 (no help text available)
845 845
846 846 options:
847 847
848 848 (some details hidden, use --verbose to show complete help)
849 849
850 850 test deprecated and experimental options is shown with -v
851 851 $ hg help -v debugoptDEP | grep dopt
852 852 --dopt option is DEPRECATED
853 853 $ hg help -v debugoptEXP | grep eopt
854 854 --eopt option is EXPERIMENTAL
855 855
856 856 #if gettext
857 857 test deprecated option is hidden with translation with untranslated description
858 858 (use many globy for not failing on changed transaction)
859 859 $ LANGUAGE=sv hg help debugoptDEP
860 860 hg debugoptDEP
861 861
862 862 (*) (glob)
863 863
864 864 options:
865 865
866 866 (some details hidden, use --verbose to show complete help)
867 867 #endif
868 868
869 869 Test commands that collide with topics (issue4240)
870 870
871 871 $ hg config -hq
872 872 hg config [-u] [NAME]...
873 873
874 874 show combined config settings from all hgrc files
875 875 $ hg showconfig -hq
876 876 hg config [-u] [NAME]...
877 877
878 878 show combined config settings from all hgrc files
879 879
880 880 Test a help topic
881 881
882 882 $ hg help revs
883 883 Specifying Single Revisions
884 884 """""""""""""""""""""""""""
885 885
886 886 Mercurial supports several ways to specify individual revisions.
887 887
888 888 A plain integer is treated as a revision number. Negative integers are
889 889 treated as sequential offsets from the tip, with -1 denoting the tip, -2
890 890 denoting the revision prior to the tip, and so forth.
891 891
892 892 A 40-digit hexadecimal string is treated as a unique revision identifier.
893 893
894 894 A hexadecimal string less than 40 characters long is treated as a unique
895 895 revision identifier and is referred to as a short-form identifier. A
896 896 short-form identifier is only valid if it is the prefix of exactly one
897 897 full-length identifier.
898 898
899 899 Any other string is treated as a bookmark, tag, or branch name. A bookmark
900 900 is a movable pointer to a revision. A tag is a permanent name associated
901 901 with a revision. A branch name denotes the tipmost open branch head of
902 902 that branch - or if they are all closed, the tipmost closed head of the
903 903 branch. Bookmark, tag, and branch names must not contain the ":"
904 904 character.
905 905
906 906 The reserved name "tip" always identifies the most recent revision.
907 907
908 908 The reserved name "null" indicates the null revision. This is the revision
909 909 of an empty repository, and the parent of revision 0.
910 910
911 911 The reserved name "." indicates the working directory parent. If no
912 912 working directory is checked out, it is equivalent to null. If an
913 913 uncommitted merge is in progress, "." is the revision of the first parent.
914 914
915 915 Test repeated config section name
916 916
917 917 $ hg help config.host
918 918 "http_proxy.host"
919 919 Host name and (optional) port of the proxy server, for example
920 920 "myproxy:8000".
921 921
922 922 "smtp.host"
923 923 Host name of mail server, e.g. "mail.example.com".
924 924
925 925 Unrelated trailing paragraphs shouldn't be included
926 926
927 927 $ hg help config.extramsg | grep '^$'
928 928
929 929
930 930 Test capitalized section name
931 931
932 932 $ hg help scripting.HGPLAIN > /dev/null
933 933
934 934 Help subsection:
935 935
936 936 $ hg help config.charsets |grep "Email example:" > /dev/null
937 937 [1]
938 938
939 939 Last item in help config.*:
940 940
941 941 $ hg help config.`hg help config|grep '^ "'| \
942 942 > tail -1|sed 's![ "]*!!g'`| \
943 943 > grep "hg help -c config" > /dev/null
944 944 [1]
945 945
946 946 note to use help -c for general hg help config:
947 947
948 948 $ hg help config |grep "hg help -c config" > /dev/null
949 949
950 950 Test templating help
951 951
952 952 $ hg help templating | egrep '(desc|diffstat|firstline|nonempty) '
953 953 desc String. The text of the changeset description.
954 954 diffstat String. Statistics of changes with the following format:
955 955 firstline Any text. Returns the first line of text.
956 956 nonempty Any text. Returns '(none)' if the string is empty.
957 957
958 958 Test help hooks
959 959
960 960 $ cat > helphook1.py <<EOF
961 961 > from mercurial import help
962 962 >
963 963 > def rewrite(topic, doc):
964 964 > return doc + '\nhelphook1\n'
965 965 >
966 966 > def extsetup(ui):
967 967 > help.addtopichook('revsets', rewrite)
968 968 > EOF
969 969 $ cat > helphook2.py <<EOF
970 970 > from mercurial import help
971 971 >
972 972 > def rewrite(topic, doc):
973 973 > return doc + '\nhelphook2\n'
974 974 >
975 975 > def extsetup(ui):
976 976 > help.addtopichook('revsets', rewrite)
977 977 > EOF
978 978 $ echo '[extensions]' >> $HGRCPATH
979 979 $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH
980 980 $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH
981 981 $ hg help revsets | grep helphook
982 982 helphook1
983 983 helphook2
984 984
985 985 Test keyword search help
986 986
987 987 $ cat > prefixedname.py <<EOF
988 988 > '''matched against word "clone"
989 989 > '''
990 990 > EOF
991 991 $ echo '[extensions]' >> $HGRCPATH
992 992 $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH
993 993 $ hg help -k clone
994 994 Topics:
995 995
996 996 config Configuration Files
997 997 extensions Using Additional Features
998 998 glossary Glossary
999 999 phases Working with Phases
1000 1000 subrepos Subrepositories
1001 1001 urls URL Paths
1002 1002
1003 1003 Commands:
1004 1004
1005 1005 bookmarks create a new bookmark or list existing bookmarks
1006 1006 clone make a copy of an existing repository
1007 1007 paths show aliases for remote repositories
1008 1008 update update working directory (or switch revisions)
1009 1009
1010 1010 Extensions:
1011 1011
1012 1012 prefixedname matched against word "clone"
1013 1013 relink recreates hardlinks between repository clones
1014 1014
1015 1015 Extension Commands:
1016 1016
1017 1017 qclone clone main and patch repository at same time
1018 1018
1019 1019 Test unfound topic
1020 1020
1021 1021 $ hg help nonexistingtopicthatwillneverexisteverever
1022 1022 abort: no such help topic: nonexistingtopicthatwillneverexisteverever
1023 1023 (try "hg help --keyword nonexistingtopicthatwillneverexisteverever")
1024 1024 [255]
1025 1025
1026 1026 Test unfound keyword
1027 1027
1028 1028 $ hg help --keyword nonexistingwordthatwillneverexisteverever
1029 1029 abort: no matches
1030 1030 (try "hg help" for a list of topics)
1031 1031 [255]
1032 1032
1033 1033 Test omit indicating for help
1034 1034
1035 1035 $ cat > addverboseitems.py <<EOF
1036 1036 > '''extension to test omit indicating.
1037 1037 >
1038 1038 > This paragraph is never omitted (for extension)
1039 1039 >
1040 1040 > .. container:: verbose
1041 1041 >
1042 1042 > This paragraph is omitted,
1043 1043 > if :hg:\`help\` is invoked without \`\`-v\`\` (for extension)
1044 1044 >
1045 1045 > This paragraph is never omitted, too (for extension)
1046 1046 > '''
1047 1047 >
1048 1048 > from mercurial import help, commands
1049 1049 > testtopic = """This paragraph is never omitted (for topic).
1050 1050 >
1051 1051 > .. container:: verbose
1052 1052 >
1053 1053 > This paragraph is omitted,
1054 1054 > if :hg:\`help\` is invoked without \`\`-v\`\` (for topic)
1055 1055 >
1056 1056 > This paragraph is never omitted, too (for topic)
1057 1057 > """
1058 1058 > def extsetup(ui):
1059 1059 > help.helptable.append((["topic-containing-verbose"],
1060 1060 > "This is the topic to test omit indicating.",
1061 1061 > lambda : testtopic))
1062 1062 > EOF
1063 1063 $ echo '[extensions]' >> $HGRCPATH
1064 1064 $ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH
1065 1065 $ hg help addverboseitems
1066 1066 addverboseitems extension - extension to test omit indicating.
1067 1067
1068 1068 This paragraph is never omitted (for extension)
1069 1069
1070 1070 This paragraph is never omitted, too (for extension)
1071 1071
1072 1072 (some details hidden, use --verbose to show complete help)
1073 1073
1074 1074 no commands defined
1075 1075 $ hg help -v addverboseitems
1076 1076 addverboseitems extension - extension to test omit indicating.
1077 1077
1078 1078 This paragraph is never omitted (for extension)
1079 1079
1080 1080 This paragraph is omitted, if "hg help" is invoked without "-v" (for
1081 1081 extension)
1082 1082
1083 1083 This paragraph is never omitted, too (for extension)
1084 1084
1085 1085 no commands defined
1086 1086 $ hg help topic-containing-verbose
1087 1087 This is the topic to test omit indicating.
1088 1088 """"""""""""""""""""""""""""""""""""""""""
1089 1089
1090 1090 This paragraph is never omitted (for topic).
1091 1091
1092 1092 This paragraph is never omitted, too (for topic)
1093 1093
1094 1094 (some details hidden, use --verbose to show complete help)
1095 1095 $ hg help -v topic-containing-verbose
1096 1096 This is the topic to test omit indicating.
1097 1097 """"""""""""""""""""""""""""""""""""""""""
1098 1098
1099 1099 This paragraph is never omitted (for topic).
1100 1100
1101 1101 This paragraph is omitted, if "hg help" is invoked without "-v" (for
1102 1102 topic)
1103 1103
1104 1104 This paragraph is never omitted, too (for topic)
1105 1105
1106 1106 Test section lookup
1107 1107
1108 1108 $ hg help revset.merge
1109 1109 "merge()"
1110 1110 Changeset is a merge changeset.
1111 1111
1112 1112 $ hg help glossary.dag
1113 1113 DAG
1114 1114 The repository of changesets of a distributed version control system
1115 1115 (DVCS) can be described as a directed acyclic graph (DAG), consisting
1116 1116 of nodes and edges, where nodes correspond to changesets and edges
1117 1117 imply a parent -> child relation. This graph can be visualized by
1118 1118 graphical tools such as "hg log --graph". In Mercurial, the DAG is
1119 1119 limited by the requirement for children to have at most two parents.
1120 1120
1121 1121
1122 1122 $ hg help hgrc.paths
1123 1123 "paths"
1124 1124 -------
1125 1125
1126 1126 Assigns symbolic names to repositories. The left side is the symbolic
1127 1127 name, and the right gives the directory or URL that is the location of the
1128 1128 repository. Default paths can be declared by setting the following
1129 1129 entries.
1130 1130
1131 1131 "default"
1132 1132 Directory or URL to use when pulling if no source is specified.
1133 Default is set to repository from which the current repository was
1134 cloned.
1133 (default: repository from which the current repository was cloned)
1135 1134
1136 1135 "default-push"
1137 1136 Optional. Directory or URL to use when pushing if no destination is
1138 1137 specified.
1139 1138
1140 1139 Custom paths can be defined by assigning the path to a name that later can
1141 1140 be used from the command line. Example:
1142 1141
1143 1142 [paths]
1144 1143 my_path = http://example.com/path
1145 1144
1146 1145 To push to the path defined in "my_path" run the command:
1147 1146
1148 1147 hg push my_path
1149 1148
1150 1149 $ hg help glossary.mcguffin
1151 1150 abort: help section not found
1152 1151 [255]
1153 1152
1154 1153 $ hg help glossary.mc.guffin
1155 1154 abort: help section not found
1156 1155 [255]
1157 1156
1158 1157 $ hg help template.files
1159 1158 files List of strings. All files modified, added, or removed by
1160 1159 this changeset.
1161 1160
1162 1161 Test dynamic list of merge tools only shows up once
1163 1162 $ hg help merge-tools
1164 1163 Merge Tools
1165 1164 """""""""""
1166 1165
1167 1166 To merge files Mercurial uses merge tools.
1168 1167
1169 1168 A merge tool combines two different versions of a file into a merged file.
1170 1169 Merge tools are given the two files and the greatest common ancestor of
1171 1170 the two file versions, so they can determine the changes made on both
1172 1171 branches.
1173 1172
1174 1173 Merge tools are used both for "hg resolve", "hg merge", "hg update", "hg
1175 1174 backout" and in several extensions.
1176 1175
1177 1176 Usually, the merge tool tries to automatically reconcile the files by
1178 1177 combining all non-overlapping changes that occurred separately in the two
1179 1178 different evolutions of the same initial base file. Furthermore, some
1180 1179 interactive merge programs make it easier to manually resolve conflicting
1181 1180 merges, either in a graphical way, or by inserting some conflict markers.
1182 1181 Mercurial does not include any interactive merge programs but relies on
1183 1182 external tools for that.
1184 1183
1185 1184 Available merge tools
1186 1185 =====================
1187 1186
1188 1187 External merge tools and their properties are configured in the merge-
1189 1188 tools configuration section - see hgrc(5) - but they can often just be
1190 1189 named by their executable.
1191 1190
1192 1191 A merge tool is generally usable if its executable can be found on the
1193 1192 system and if it can handle the merge. The executable is found if it is an
1194 1193 absolute or relative executable path or the name of an application in the
1195 1194 executable search path. The tool is assumed to be able to handle the merge
1196 1195 if it can handle symlinks if the file is a symlink, if it can handle
1197 1196 binary files if the file is binary, and if a GUI is available if the tool
1198 1197 requires a GUI.
1199 1198
1200 1199 There are some internal merge tools which can be used. The internal merge
1201 1200 tools are:
1202 1201
1203 1202 ":dump"
1204 1203 Creates three versions of the files to merge, containing the contents of
1205 1204 local, other and base. These files can then be used to perform a merge
1206 1205 manually. If the file to be merged is named "a.txt", these files will
1207 1206 accordingly be named "a.txt.local", "a.txt.other" and "a.txt.base" and
1208 1207 they will be placed in the same directory as "a.txt".
1209 1208
1210 1209 ":fail"
1211 1210 Rather than attempting to merge files that were modified on both
1212 1211 branches, it marks them as unresolved. The resolve command must be used
1213 1212 to resolve these conflicts.
1214 1213
1215 1214 ":local"
1216 1215 Uses the local version of files as the merged version.
1217 1216
1218 1217 ":merge"
1219 1218 Uses the internal non-interactive simple merge algorithm for merging
1220 1219 files. It will fail if there are any conflicts and leave markers in the
1221 1220 partially merged file. Markers will have two sections, one for each side
1222 1221 of merge.
1223 1222
1224 1223 ":merge3"
1225 1224 Uses the internal non-interactive simple merge algorithm for merging
1226 1225 files. It will fail if there are any conflicts and leave markers in the
1227 1226 partially merged file. Marker will have three sections, one from each
1228 1227 side of the merge and one for the base content.
1229 1228
1230 1229 ":other"
1231 1230 Uses the other version of files as the merged version.
1232 1231
1233 1232 ":prompt"
1234 1233 Asks the user which of the local or the other version to keep as the
1235 1234 merged version.
1236 1235
1237 1236 ":tagmerge"
1238 1237 Uses the internal tag merge algorithm (experimental).
1239 1238
1240 1239 ":union"
1241 1240 Uses the internal non-interactive simple merge algorithm for merging
1242 1241 files. It will use both left and right sides for conflict regions. No
1243 1242 markers are inserted.
1244 1243
1245 1244 Internal tools are always available and do not require a GUI but will by
1246 1245 default not handle symlinks or binary files.
1247 1246
1248 1247 Choosing a merge tool
1249 1248 =====================
1250 1249
1251 1250 Mercurial uses these rules when deciding which merge tool to use:
1252 1251
1253 1252 1. If a tool has been specified with the --tool option to merge or
1254 1253 resolve, it is used. If it is the name of a tool in the merge-tools
1255 1254 configuration, its configuration is used. Otherwise the specified tool
1256 1255 must be executable by the shell.
1257 1256 2. If the "HGMERGE" environment variable is present, its value is used and
1258 1257 must be executable by the shell.
1259 1258 3. If the filename of the file to be merged matches any of the patterns in
1260 1259 the merge-patterns configuration section, the first usable merge tool
1261 1260 corresponding to a matching pattern is used. Here, binary capabilities
1262 1261 of the merge tool are not considered.
1263 1262 4. If ui.merge is set it will be considered next. If the value is not the
1264 1263 name of a configured tool, the specified value is used and must be
1265 1264 executable by the shell. Otherwise the named tool is used if it is
1266 1265 usable.
1267 1266 5. If any usable merge tools are present in the merge-tools configuration
1268 1267 section, the one with the highest priority is used.
1269 1268 6. If a program named "hgmerge" can be found on the system, it is used -
1270 1269 but it will by default not be used for symlinks and binary files.
1271 1270 7. If the file to be merged is not binary and is not a symlink, then
1272 1271 internal ":merge" is used.
1273 1272 8. The merge of the file fails and must be resolved before commit.
1274 1273
1275 1274 Note:
1276 1275 After selecting a merge program, Mercurial will by default attempt to
1277 1276 merge the files using a simple merge algorithm first. Only if it
1278 1277 doesn't succeed because of conflicting changes Mercurial will actually
1279 1278 execute the merge program. Whether to use the simple merge algorithm
1280 1279 first can be controlled by the premerge setting of the merge tool.
1281 1280 Premerge is enabled by default unless the file is binary or a symlink.
1282 1281
1283 1282 See the merge-tools and ui sections of hgrc(5) for details on the
1284 1283 configuration of merge tools.
1285 1284
1286 1285 Test usage of section marks in help documents
1287 1286
1288 1287 $ cd "$TESTDIR"/../doc
1289 1288 $ python check-seclevel.py
1290 1289 $ cd $TESTTMP
1291 1290
1292 1291 #if serve
1293 1292
1294 1293 Test the help pages in hgweb.
1295 1294
1296 1295 Dish up an empty repo; serve it cold.
1297 1296
1298 1297 $ hg init "$TESTTMP/test"
1299 1298 $ hg serve -R "$TESTTMP/test" -n test -p $HGPORT -d --pid-file=hg.pid
1300 1299 $ cat hg.pid >> $DAEMON_PIDS
1301 1300
1302 1301 $ get-with-headers.py 127.0.0.1:$HGPORT "help"
1303 1302 200 Script output follows
1304 1303
1305 1304 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1306 1305 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
1307 1306 <head>
1308 1307 <link rel="icon" href="/static/hgicon.png" type="image/png" />
1309 1308 <meta name="robots" content="index, nofollow" />
1310 1309 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
1311 1310 <script type="text/javascript" src="/static/mercurial.js"></script>
1312 1311
1313 1312 <title>Help: Index</title>
1314 1313 </head>
1315 1314 <body>
1316 1315
1317 1316 <div class="container">
1318 1317 <div class="menu">
1319 1318 <div class="logo">
1320 1319 <a href="http://mercurial.selenic.com/">
1321 1320 <img src="/static/hglogo.png" alt="mercurial" /></a>
1322 1321 </div>
1323 1322 <ul>
1324 1323 <li><a href="/shortlog">log</a></li>
1325 1324 <li><a href="/graph">graph</a></li>
1326 1325 <li><a href="/tags">tags</a></li>
1327 1326 <li><a href="/bookmarks">bookmarks</a></li>
1328 1327 <li><a href="/branches">branches</a></li>
1329 1328 </ul>
1330 1329 <ul>
1331 1330 <li class="active">help</li>
1332 1331 </ul>
1333 1332 </div>
1334 1333
1335 1334 <div class="main">
1336 1335 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
1337 1336 <form class="search" action="/log">
1338 1337
1339 1338 <p><input name="rev" id="search1" type="text" size="30" /></p>
1340 1339 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
1341 1340 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
1342 1341 </form>
1343 1342 <table class="bigtable">
1344 1343 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
1345 1344
1346 1345 <tr><td>
1347 1346 <a href="/help/config">
1348 1347 config
1349 1348 </a>
1350 1349 </td><td>
1351 1350 Configuration Files
1352 1351 </td></tr>
1353 1352 <tr><td>
1354 1353 <a href="/help/dates">
1355 1354 dates
1356 1355 </a>
1357 1356 </td><td>
1358 1357 Date Formats
1359 1358 </td></tr>
1360 1359 <tr><td>
1361 1360 <a href="/help/diffs">
1362 1361 diffs
1363 1362 </a>
1364 1363 </td><td>
1365 1364 Diff Formats
1366 1365 </td></tr>
1367 1366 <tr><td>
1368 1367 <a href="/help/environment">
1369 1368 environment
1370 1369 </a>
1371 1370 </td><td>
1372 1371 Environment Variables
1373 1372 </td></tr>
1374 1373 <tr><td>
1375 1374 <a href="/help/extensions">
1376 1375 extensions
1377 1376 </a>
1378 1377 </td><td>
1379 1378 Using Additional Features
1380 1379 </td></tr>
1381 1380 <tr><td>
1382 1381 <a href="/help/filesets">
1383 1382 filesets
1384 1383 </a>
1385 1384 </td><td>
1386 1385 Specifying File Sets
1387 1386 </td></tr>
1388 1387 <tr><td>
1389 1388 <a href="/help/glossary">
1390 1389 glossary
1391 1390 </a>
1392 1391 </td><td>
1393 1392 Glossary
1394 1393 </td></tr>
1395 1394 <tr><td>
1396 1395 <a href="/help/hgignore">
1397 1396 hgignore
1398 1397 </a>
1399 1398 </td><td>
1400 1399 Syntax for Mercurial Ignore Files
1401 1400 </td></tr>
1402 1401 <tr><td>
1403 1402 <a href="/help/hgweb">
1404 1403 hgweb
1405 1404 </a>
1406 1405 </td><td>
1407 1406 Configuring hgweb
1408 1407 </td></tr>
1409 1408 <tr><td>
1410 1409 <a href="/help/merge-tools">
1411 1410 merge-tools
1412 1411 </a>
1413 1412 </td><td>
1414 1413 Merge Tools
1415 1414 </td></tr>
1416 1415 <tr><td>
1417 1416 <a href="/help/multirevs">
1418 1417 multirevs
1419 1418 </a>
1420 1419 </td><td>
1421 1420 Specifying Multiple Revisions
1422 1421 </td></tr>
1423 1422 <tr><td>
1424 1423 <a href="/help/patterns">
1425 1424 patterns
1426 1425 </a>
1427 1426 </td><td>
1428 1427 File Name Patterns
1429 1428 </td></tr>
1430 1429 <tr><td>
1431 1430 <a href="/help/phases">
1432 1431 phases
1433 1432 </a>
1434 1433 </td><td>
1435 1434 Working with Phases
1436 1435 </td></tr>
1437 1436 <tr><td>
1438 1437 <a href="/help/revisions">
1439 1438 revisions
1440 1439 </a>
1441 1440 </td><td>
1442 1441 Specifying Single Revisions
1443 1442 </td></tr>
1444 1443 <tr><td>
1445 1444 <a href="/help/revsets">
1446 1445 revsets
1447 1446 </a>
1448 1447 </td><td>
1449 1448 Specifying Revision Sets
1450 1449 </td></tr>
1451 1450 <tr><td>
1452 1451 <a href="/help/scripting">
1453 1452 scripting
1454 1453 </a>
1455 1454 </td><td>
1456 1455 Using Mercurial from scripts and automation
1457 1456 </td></tr>
1458 1457 <tr><td>
1459 1458 <a href="/help/subrepos">
1460 1459 subrepos
1461 1460 </a>
1462 1461 </td><td>
1463 1462 Subrepositories
1464 1463 </td></tr>
1465 1464 <tr><td>
1466 1465 <a href="/help/templating">
1467 1466 templating
1468 1467 </a>
1469 1468 </td><td>
1470 1469 Template Usage
1471 1470 </td></tr>
1472 1471 <tr><td>
1473 1472 <a href="/help/urls">
1474 1473 urls
1475 1474 </a>
1476 1475 </td><td>
1477 1476 URL Paths
1478 1477 </td></tr>
1479 1478 <tr><td>
1480 1479 <a href="/help/topic-containing-verbose">
1481 1480 topic-containing-verbose
1482 1481 </a>
1483 1482 </td><td>
1484 1483 This is the topic to test omit indicating.
1485 1484 </td></tr>
1486 1485
1487 1486 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
1488 1487
1489 1488 <tr><td>
1490 1489 <a href="/help/add">
1491 1490 add
1492 1491 </a>
1493 1492 </td><td>
1494 1493 add the specified files on the next commit
1495 1494 </td></tr>
1496 1495 <tr><td>
1497 1496 <a href="/help/annotate">
1498 1497 annotate
1499 1498 </a>
1500 1499 </td><td>
1501 1500 show changeset information by line for each file
1502 1501 </td></tr>
1503 1502 <tr><td>
1504 1503 <a href="/help/clone">
1505 1504 clone
1506 1505 </a>
1507 1506 </td><td>
1508 1507 make a copy of an existing repository
1509 1508 </td></tr>
1510 1509 <tr><td>
1511 1510 <a href="/help/commit">
1512 1511 commit
1513 1512 </a>
1514 1513 </td><td>
1515 1514 commit the specified files or all outstanding changes
1516 1515 </td></tr>
1517 1516 <tr><td>
1518 1517 <a href="/help/diff">
1519 1518 diff
1520 1519 </a>
1521 1520 </td><td>
1522 1521 diff repository (or selected files)
1523 1522 </td></tr>
1524 1523 <tr><td>
1525 1524 <a href="/help/export">
1526 1525 export
1527 1526 </a>
1528 1527 </td><td>
1529 1528 dump the header and diffs for one or more changesets
1530 1529 </td></tr>
1531 1530 <tr><td>
1532 1531 <a href="/help/forget">
1533 1532 forget
1534 1533 </a>
1535 1534 </td><td>
1536 1535 forget the specified files on the next commit
1537 1536 </td></tr>
1538 1537 <tr><td>
1539 1538 <a href="/help/init">
1540 1539 init
1541 1540 </a>
1542 1541 </td><td>
1543 1542 create a new repository in the given directory
1544 1543 </td></tr>
1545 1544 <tr><td>
1546 1545 <a href="/help/log">
1547 1546 log
1548 1547 </a>
1549 1548 </td><td>
1550 1549 show revision history of entire repository or files
1551 1550 </td></tr>
1552 1551 <tr><td>
1553 1552 <a href="/help/merge">
1554 1553 merge
1555 1554 </a>
1556 1555 </td><td>
1557 1556 merge another revision into working directory
1558 1557 </td></tr>
1559 1558 <tr><td>
1560 1559 <a href="/help/pull">
1561 1560 pull
1562 1561 </a>
1563 1562 </td><td>
1564 1563 pull changes from the specified source
1565 1564 </td></tr>
1566 1565 <tr><td>
1567 1566 <a href="/help/push">
1568 1567 push
1569 1568 </a>
1570 1569 </td><td>
1571 1570 push changes to the specified destination
1572 1571 </td></tr>
1573 1572 <tr><td>
1574 1573 <a href="/help/remove">
1575 1574 remove
1576 1575 </a>
1577 1576 </td><td>
1578 1577 remove the specified files on the next commit
1579 1578 </td></tr>
1580 1579 <tr><td>
1581 1580 <a href="/help/serve">
1582 1581 serve
1583 1582 </a>
1584 1583 </td><td>
1585 1584 start stand-alone webserver
1586 1585 </td></tr>
1587 1586 <tr><td>
1588 1587 <a href="/help/status">
1589 1588 status
1590 1589 </a>
1591 1590 </td><td>
1592 1591 show changed files in the working directory
1593 1592 </td></tr>
1594 1593 <tr><td>
1595 1594 <a href="/help/summary">
1596 1595 summary
1597 1596 </a>
1598 1597 </td><td>
1599 1598 summarize working directory state
1600 1599 </td></tr>
1601 1600 <tr><td>
1602 1601 <a href="/help/update">
1603 1602 update
1604 1603 </a>
1605 1604 </td><td>
1606 1605 update working directory (or switch revisions)
1607 1606 </td></tr>
1608 1607
1609 1608 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
1610 1609
1611 1610 <tr><td>
1612 1611 <a href="/help/addremove">
1613 1612 addremove
1614 1613 </a>
1615 1614 </td><td>
1616 1615 add all new files, delete all missing files
1617 1616 </td></tr>
1618 1617 <tr><td>
1619 1618 <a href="/help/archive">
1620 1619 archive
1621 1620 </a>
1622 1621 </td><td>
1623 1622 create an unversioned archive of a repository revision
1624 1623 </td></tr>
1625 1624 <tr><td>
1626 1625 <a href="/help/backout">
1627 1626 backout
1628 1627 </a>
1629 1628 </td><td>
1630 1629 reverse effect of earlier changeset
1631 1630 </td></tr>
1632 1631 <tr><td>
1633 1632 <a href="/help/bisect">
1634 1633 bisect
1635 1634 </a>
1636 1635 </td><td>
1637 1636 subdivision search of changesets
1638 1637 </td></tr>
1639 1638 <tr><td>
1640 1639 <a href="/help/bookmarks">
1641 1640 bookmarks
1642 1641 </a>
1643 1642 </td><td>
1644 1643 create a new bookmark or list existing bookmarks
1645 1644 </td></tr>
1646 1645 <tr><td>
1647 1646 <a href="/help/branch">
1648 1647 branch
1649 1648 </a>
1650 1649 </td><td>
1651 1650 set or show the current branch name
1652 1651 </td></tr>
1653 1652 <tr><td>
1654 1653 <a href="/help/branches">
1655 1654 branches
1656 1655 </a>
1657 1656 </td><td>
1658 1657 list repository named branches
1659 1658 </td></tr>
1660 1659 <tr><td>
1661 1660 <a href="/help/bundle">
1662 1661 bundle
1663 1662 </a>
1664 1663 </td><td>
1665 1664 create a changegroup file
1666 1665 </td></tr>
1667 1666 <tr><td>
1668 1667 <a href="/help/cat">
1669 1668 cat
1670 1669 </a>
1671 1670 </td><td>
1672 1671 output the current or given revision of files
1673 1672 </td></tr>
1674 1673 <tr><td>
1675 1674 <a href="/help/config">
1676 1675 config
1677 1676 </a>
1678 1677 </td><td>
1679 1678 show combined config settings from all hgrc files
1680 1679 </td></tr>
1681 1680 <tr><td>
1682 1681 <a href="/help/copy">
1683 1682 copy
1684 1683 </a>
1685 1684 </td><td>
1686 1685 mark files as copied for the next commit
1687 1686 </td></tr>
1688 1687 <tr><td>
1689 1688 <a href="/help/files">
1690 1689 files
1691 1690 </a>
1692 1691 </td><td>
1693 1692 list tracked files
1694 1693 </td></tr>
1695 1694 <tr><td>
1696 1695 <a href="/help/graft">
1697 1696 graft
1698 1697 </a>
1699 1698 </td><td>
1700 1699 copy changes from other branches onto the current branch
1701 1700 </td></tr>
1702 1701 <tr><td>
1703 1702 <a href="/help/grep">
1704 1703 grep
1705 1704 </a>
1706 1705 </td><td>
1707 1706 search for a pattern in specified files and revisions
1708 1707 </td></tr>
1709 1708 <tr><td>
1710 1709 <a href="/help/heads">
1711 1710 heads
1712 1711 </a>
1713 1712 </td><td>
1714 1713 show branch heads
1715 1714 </td></tr>
1716 1715 <tr><td>
1717 1716 <a href="/help/help">
1718 1717 help
1719 1718 </a>
1720 1719 </td><td>
1721 1720 show help for a given topic or a help overview
1722 1721 </td></tr>
1723 1722 <tr><td>
1724 1723 <a href="/help/identify">
1725 1724 identify
1726 1725 </a>
1727 1726 </td><td>
1728 1727 identify the working directory or specified revision
1729 1728 </td></tr>
1730 1729 <tr><td>
1731 1730 <a href="/help/import">
1732 1731 import
1733 1732 </a>
1734 1733 </td><td>
1735 1734 import an ordered set of patches
1736 1735 </td></tr>
1737 1736 <tr><td>
1738 1737 <a href="/help/incoming">
1739 1738 incoming
1740 1739 </a>
1741 1740 </td><td>
1742 1741 show new changesets found in source
1743 1742 </td></tr>
1744 1743 <tr><td>
1745 1744 <a href="/help/manifest">
1746 1745 manifest
1747 1746 </a>
1748 1747 </td><td>
1749 1748 output the current or given revision of the project manifest
1750 1749 </td></tr>
1751 1750 <tr><td>
1752 1751 <a href="/help/nohelp">
1753 1752 nohelp
1754 1753 </a>
1755 1754 </td><td>
1756 1755 (no help text available)
1757 1756 </td></tr>
1758 1757 <tr><td>
1759 1758 <a href="/help/outgoing">
1760 1759 outgoing
1761 1760 </a>
1762 1761 </td><td>
1763 1762 show changesets not found in the destination
1764 1763 </td></tr>
1765 1764 <tr><td>
1766 1765 <a href="/help/paths">
1767 1766 paths
1768 1767 </a>
1769 1768 </td><td>
1770 1769 show aliases for remote repositories
1771 1770 </td></tr>
1772 1771 <tr><td>
1773 1772 <a href="/help/phase">
1774 1773 phase
1775 1774 </a>
1776 1775 </td><td>
1777 1776 set or show the current phase name
1778 1777 </td></tr>
1779 1778 <tr><td>
1780 1779 <a href="/help/recover">
1781 1780 recover
1782 1781 </a>
1783 1782 </td><td>
1784 1783 roll back an interrupted transaction
1785 1784 </td></tr>
1786 1785 <tr><td>
1787 1786 <a href="/help/rename">
1788 1787 rename
1789 1788 </a>
1790 1789 </td><td>
1791 1790 rename files; equivalent of copy + remove
1792 1791 </td></tr>
1793 1792 <tr><td>
1794 1793 <a href="/help/resolve">
1795 1794 resolve
1796 1795 </a>
1797 1796 </td><td>
1798 1797 redo merges or set/view the merge status of files
1799 1798 </td></tr>
1800 1799 <tr><td>
1801 1800 <a href="/help/revert">
1802 1801 revert
1803 1802 </a>
1804 1803 </td><td>
1805 1804 restore files to their checkout state
1806 1805 </td></tr>
1807 1806 <tr><td>
1808 1807 <a href="/help/root">
1809 1808 root
1810 1809 </a>
1811 1810 </td><td>
1812 1811 print the root (top) of the current working directory
1813 1812 </td></tr>
1814 1813 <tr><td>
1815 1814 <a href="/help/tag">
1816 1815 tag
1817 1816 </a>
1818 1817 </td><td>
1819 1818 add one or more tags for the current or given revision
1820 1819 </td></tr>
1821 1820 <tr><td>
1822 1821 <a href="/help/tags">
1823 1822 tags
1824 1823 </a>
1825 1824 </td><td>
1826 1825 list repository tags
1827 1826 </td></tr>
1828 1827 <tr><td>
1829 1828 <a href="/help/unbundle">
1830 1829 unbundle
1831 1830 </a>
1832 1831 </td><td>
1833 1832 apply one or more changegroup files
1834 1833 </td></tr>
1835 1834 <tr><td>
1836 1835 <a href="/help/verify">
1837 1836 verify
1838 1837 </a>
1839 1838 </td><td>
1840 1839 verify the integrity of the repository
1841 1840 </td></tr>
1842 1841 <tr><td>
1843 1842 <a href="/help/version">
1844 1843 version
1845 1844 </a>
1846 1845 </td><td>
1847 1846 output version and copyright information
1848 1847 </td></tr>
1849 1848 </table>
1850 1849 </div>
1851 1850 </div>
1852 1851
1853 1852 <script type="text/javascript">process_dates()</script>
1854 1853
1855 1854
1856 1855 </body>
1857 1856 </html>
1858 1857
1859 1858
1860 1859 $ get-with-headers.py 127.0.0.1:$HGPORT "help/add"
1861 1860 200 Script output follows
1862 1861
1863 1862 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1864 1863 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
1865 1864 <head>
1866 1865 <link rel="icon" href="/static/hgicon.png" type="image/png" />
1867 1866 <meta name="robots" content="index, nofollow" />
1868 1867 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
1869 1868 <script type="text/javascript" src="/static/mercurial.js"></script>
1870 1869
1871 1870 <title>Help: add</title>
1872 1871 </head>
1873 1872 <body>
1874 1873
1875 1874 <div class="container">
1876 1875 <div class="menu">
1877 1876 <div class="logo">
1878 1877 <a href="http://mercurial.selenic.com/">
1879 1878 <img src="/static/hglogo.png" alt="mercurial" /></a>
1880 1879 </div>
1881 1880 <ul>
1882 1881 <li><a href="/shortlog">log</a></li>
1883 1882 <li><a href="/graph">graph</a></li>
1884 1883 <li><a href="/tags">tags</a></li>
1885 1884 <li><a href="/bookmarks">bookmarks</a></li>
1886 1885 <li><a href="/branches">branches</a></li>
1887 1886 </ul>
1888 1887 <ul>
1889 1888 <li class="active"><a href="/help">help</a></li>
1890 1889 </ul>
1891 1890 </div>
1892 1891
1893 1892 <div class="main">
1894 1893 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
1895 1894 <h3>Help: add</h3>
1896 1895
1897 1896 <form class="search" action="/log">
1898 1897
1899 1898 <p><input name="rev" id="search1" type="text" size="30" /></p>
1900 1899 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
1901 1900 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
1902 1901 </form>
1903 1902 <div id="doc">
1904 1903 <p>
1905 1904 hg add [OPTION]... [FILE]...
1906 1905 </p>
1907 1906 <p>
1908 1907 add the specified files on the next commit
1909 1908 </p>
1910 1909 <p>
1911 1910 Schedule files to be version controlled and added to the
1912 1911 repository.
1913 1912 </p>
1914 1913 <p>
1915 1914 The files will be added to the repository at the next commit. To
1916 1915 undo an add before that, see &quot;hg forget&quot;.
1917 1916 </p>
1918 1917 <p>
1919 1918 If no names are given, add all files to the repository.
1920 1919 </p>
1921 1920 <p>
1922 1921 An example showing how new (unknown) files are added
1923 1922 automatically by &quot;hg add&quot;:
1924 1923 </p>
1925 1924 <pre>
1926 1925 \$ ls (re)
1927 1926 foo.c
1928 1927 \$ hg status (re)
1929 1928 ? foo.c
1930 1929 \$ hg add (re)
1931 1930 adding foo.c
1932 1931 \$ hg status (re)
1933 1932 A foo.c
1934 1933 </pre>
1935 1934 <p>
1936 1935 Returns 0 if all files are successfully added.
1937 1936 </p>
1938 1937 <p>
1939 1938 options ([+] can be repeated):
1940 1939 </p>
1941 1940 <table>
1942 1941 <tr><td>-I</td>
1943 1942 <td>--include PATTERN [+]</td>
1944 1943 <td>include names matching the given patterns</td></tr>
1945 1944 <tr><td>-X</td>
1946 1945 <td>--exclude PATTERN [+]</td>
1947 1946 <td>exclude names matching the given patterns</td></tr>
1948 1947 <tr><td>-S</td>
1949 1948 <td>--subrepos</td>
1950 1949 <td>recurse into subrepositories</td></tr>
1951 1950 <tr><td>-n</td>
1952 1951 <td>--dry-run</td>
1953 1952 <td>do not perform actions, just print output</td></tr>
1954 1953 </table>
1955 1954 <p>
1956 1955 global options ([+] can be repeated):
1957 1956 </p>
1958 1957 <table>
1959 1958 <tr><td>-R</td>
1960 1959 <td>--repository REPO</td>
1961 1960 <td>repository root directory or name of overlay bundle file</td></tr>
1962 1961 <tr><td></td>
1963 1962 <td>--cwd DIR</td>
1964 1963 <td>change working directory</td></tr>
1965 1964 <tr><td>-y</td>
1966 1965 <td>--noninteractive</td>
1967 1966 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
1968 1967 <tr><td>-q</td>
1969 1968 <td>--quiet</td>
1970 1969 <td>suppress output</td></tr>
1971 1970 <tr><td>-v</td>
1972 1971 <td>--verbose</td>
1973 1972 <td>enable additional output</td></tr>
1974 1973 <tr><td></td>
1975 1974 <td>--config CONFIG [+]</td>
1976 1975 <td>set/override config option (use 'section.name=value')</td></tr>
1977 1976 <tr><td></td>
1978 1977 <td>--debug</td>
1979 1978 <td>enable debugging output</td></tr>
1980 1979 <tr><td></td>
1981 1980 <td>--debugger</td>
1982 1981 <td>start debugger</td></tr>
1983 1982 <tr><td></td>
1984 1983 <td>--encoding ENCODE</td>
1985 1984 <td>set the charset encoding (default: ascii)</td></tr>
1986 1985 <tr><td></td>
1987 1986 <td>--encodingmode MODE</td>
1988 1987 <td>set the charset encoding mode (default: strict)</td></tr>
1989 1988 <tr><td></td>
1990 1989 <td>--traceback</td>
1991 1990 <td>always print a traceback on exception</td></tr>
1992 1991 <tr><td></td>
1993 1992 <td>--time</td>
1994 1993 <td>time how long the command takes</td></tr>
1995 1994 <tr><td></td>
1996 1995 <td>--profile</td>
1997 1996 <td>print command execution profile</td></tr>
1998 1997 <tr><td></td>
1999 1998 <td>--version</td>
2000 1999 <td>output version information and exit</td></tr>
2001 2000 <tr><td>-h</td>
2002 2001 <td>--help</td>
2003 2002 <td>display help and exit</td></tr>
2004 2003 <tr><td></td>
2005 2004 <td>--hidden</td>
2006 2005 <td>consider hidden changesets</td></tr>
2007 2006 </table>
2008 2007
2009 2008 </div>
2010 2009 </div>
2011 2010 </div>
2012 2011
2013 2012 <script type="text/javascript">process_dates()</script>
2014 2013
2015 2014
2016 2015 </body>
2017 2016 </html>
2018 2017
2019 2018
2020 2019 $ get-with-headers.py 127.0.0.1:$HGPORT "help/remove"
2021 2020 200 Script output follows
2022 2021
2023 2022 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2024 2023 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2025 2024 <head>
2026 2025 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2027 2026 <meta name="robots" content="index, nofollow" />
2028 2027 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2029 2028 <script type="text/javascript" src="/static/mercurial.js"></script>
2030 2029
2031 2030 <title>Help: remove</title>
2032 2031 </head>
2033 2032 <body>
2034 2033
2035 2034 <div class="container">
2036 2035 <div class="menu">
2037 2036 <div class="logo">
2038 2037 <a href="http://mercurial.selenic.com/">
2039 2038 <img src="/static/hglogo.png" alt="mercurial" /></a>
2040 2039 </div>
2041 2040 <ul>
2042 2041 <li><a href="/shortlog">log</a></li>
2043 2042 <li><a href="/graph">graph</a></li>
2044 2043 <li><a href="/tags">tags</a></li>
2045 2044 <li><a href="/bookmarks">bookmarks</a></li>
2046 2045 <li><a href="/branches">branches</a></li>
2047 2046 </ul>
2048 2047 <ul>
2049 2048 <li class="active"><a href="/help">help</a></li>
2050 2049 </ul>
2051 2050 </div>
2052 2051
2053 2052 <div class="main">
2054 2053 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2055 2054 <h3>Help: remove</h3>
2056 2055
2057 2056 <form class="search" action="/log">
2058 2057
2059 2058 <p><input name="rev" id="search1" type="text" size="30" /></p>
2060 2059 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2061 2060 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2062 2061 </form>
2063 2062 <div id="doc">
2064 2063 <p>
2065 2064 hg remove [OPTION]... FILE...
2066 2065 </p>
2067 2066 <p>
2068 2067 aliases: rm
2069 2068 </p>
2070 2069 <p>
2071 2070 remove the specified files on the next commit
2072 2071 </p>
2073 2072 <p>
2074 2073 Schedule the indicated files for removal from the current branch.
2075 2074 </p>
2076 2075 <p>
2077 2076 This command schedules the files to be removed at the next commit.
2078 2077 To undo a remove before that, see &quot;hg revert&quot;. To undo added
2079 2078 files, see &quot;hg forget&quot;.
2080 2079 </p>
2081 2080 <p>
2082 2081 -A/--after can be used to remove only files that have already
2083 2082 been deleted, -f/--force can be used to force deletion, and -Af
2084 2083 can be used to remove files from the next revision without
2085 2084 deleting them from the working directory.
2086 2085 </p>
2087 2086 <p>
2088 2087 The following table details the behavior of remove for different
2089 2088 file states (columns) and option combinations (rows). The file
2090 2089 states are Added [A], Clean [C], Modified [M] and Missing [!]
2091 2090 (as reported by &quot;hg status&quot;). The actions are Warn, Remove
2092 2091 (from branch) and Delete (from disk):
2093 2092 </p>
2094 2093 <table>
2095 2094 <tr><td>opt/state</td>
2096 2095 <td>A</td>
2097 2096 <td>C</td>
2098 2097 <td>M</td>
2099 2098 <td>!</td></tr>
2100 2099 <tr><td>none</td>
2101 2100 <td>W</td>
2102 2101 <td>RD</td>
2103 2102 <td>W</td>
2104 2103 <td>R</td></tr>
2105 2104 <tr><td>-f</td>
2106 2105 <td>R</td>
2107 2106 <td>RD</td>
2108 2107 <td>RD</td>
2109 2108 <td>R</td></tr>
2110 2109 <tr><td>-A</td>
2111 2110 <td>W</td>
2112 2111 <td>W</td>
2113 2112 <td>W</td>
2114 2113 <td>R</td></tr>
2115 2114 <tr><td>-Af</td>
2116 2115 <td>R</td>
2117 2116 <td>R</td>
2118 2117 <td>R</td>
2119 2118 <td>R</td></tr>
2120 2119 </table>
2121 2120 <p>
2122 2121 Note that remove never deletes files in Added [A] state from the
2123 2122 working directory, not even if option --force is specified.
2124 2123 </p>
2125 2124 <p>
2126 2125 Returns 0 on success, 1 if any warnings encountered.
2127 2126 </p>
2128 2127 <p>
2129 2128 options ([+] can be repeated):
2130 2129 </p>
2131 2130 <table>
2132 2131 <tr><td>-A</td>
2133 2132 <td>--after</td>
2134 2133 <td>record delete for missing files</td></tr>
2135 2134 <tr><td>-f</td>
2136 2135 <td>--force</td>
2137 2136 <td>remove (and delete) file even if added or modified</td></tr>
2138 2137 <tr><td>-S</td>
2139 2138 <td>--subrepos</td>
2140 2139 <td>recurse into subrepositories</td></tr>
2141 2140 <tr><td>-I</td>
2142 2141 <td>--include PATTERN [+]</td>
2143 2142 <td>include names matching the given patterns</td></tr>
2144 2143 <tr><td>-X</td>
2145 2144 <td>--exclude PATTERN [+]</td>
2146 2145 <td>exclude names matching the given patterns</td></tr>
2147 2146 </table>
2148 2147 <p>
2149 2148 global options ([+] can be repeated):
2150 2149 </p>
2151 2150 <table>
2152 2151 <tr><td>-R</td>
2153 2152 <td>--repository REPO</td>
2154 2153 <td>repository root directory or name of overlay bundle file</td></tr>
2155 2154 <tr><td></td>
2156 2155 <td>--cwd DIR</td>
2157 2156 <td>change working directory</td></tr>
2158 2157 <tr><td>-y</td>
2159 2158 <td>--noninteractive</td>
2160 2159 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
2161 2160 <tr><td>-q</td>
2162 2161 <td>--quiet</td>
2163 2162 <td>suppress output</td></tr>
2164 2163 <tr><td>-v</td>
2165 2164 <td>--verbose</td>
2166 2165 <td>enable additional output</td></tr>
2167 2166 <tr><td></td>
2168 2167 <td>--config CONFIG [+]</td>
2169 2168 <td>set/override config option (use 'section.name=value')</td></tr>
2170 2169 <tr><td></td>
2171 2170 <td>--debug</td>
2172 2171 <td>enable debugging output</td></tr>
2173 2172 <tr><td></td>
2174 2173 <td>--debugger</td>
2175 2174 <td>start debugger</td></tr>
2176 2175 <tr><td></td>
2177 2176 <td>--encoding ENCODE</td>
2178 2177 <td>set the charset encoding (default: ascii)</td></tr>
2179 2178 <tr><td></td>
2180 2179 <td>--encodingmode MODE</td>
2181 2180 <td>set the charset encoding mode (default: strict)</td></tr>
2182 2181 <tr><td></td>
2183 2182 <td>--traceback</td>
2184 2183 <td>always print a traceback on exception</td></tr>
2185 2184 <tr><td></td>
2186 2185 <td>--time</td>
2187 2186 <td>time how long the command takes</td></tr>
2188 2187 <tr><td></td>
2189 2188 <td>--profile</td>
2190 2189 <td>print command execution profile</td></tr>
2191 2190 <tr><td></td>
2192 2191 <td>--version</td>
2193 2192 <td>output version information and exit</td></tr>
2194 2193 <tr><td>-h</td>
2195 2194 <td>--help</td>
2196 2195 <td>display help and exit</td></tr>
2197 2196 <tr><td></td>
2198 2197 <td>--hidden</td>
2199 2198 <td>consider hidden changesets</td></tr>
2200 2199 </table>
2201 2200
2202 2201 </div>
2203 2202 </div>
2204 2203 </div>
2205 2204
2206 2205 <script type="text/javascript">process_dates()</script>
2207 2206
2208 2207
2209 2208 </body>
2210 2209 </html>
2211 2210
2212 2211
2213 2212 $ get-with-headers.py 127.0.0.1:$HGPORT "help/revisions"
2214 2213 200 Script output follows
2215 2214
2216 2215 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2217 2216 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2218 2217 <head>
2219 2218 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2220 2219 <meta name="robots" content="index, nofollow" />
2221 2220 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2222 2221 <script type="text/javascript" src="/static/mercurial.js"></script>
2223 2222
2224 2223 <title>Help: revisions</title>
2225 2224 </head>
2226 2225 <body>
2227 2226
2228 2227 <div class="container">
2229 2228 <div class="menu">
2230 2229 <div class="logo">
2231 2230 <a href="http://mercurial.selenic.com/">
2232 2231 <img src="/static/hglogo.png" alt="mercurial" /></a>
2233 2232 </div>
2234 2233 <ul>
2235 2234 <li><a href="/shortlog">log</a></li>
2236 2235 <li><a href="/graph">graph</a></li>
2237 2236 <li><a href="/tags">tags</a></li>
2238 2237 <li><a href="/bookmarks">bookmarks</a></li>
2239 2238 <li><a href="/branches">branches</a></li>
2240 2239 </ul>
2241 2240 <ul>
2242 2241 <li class="active"><a href="/help">help</a></li>
2243 2242 </ul>
2244 2243 </div>
2245 2244
2246 2245 <div class="main">
2247 2246 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2248 2247 <h3>Help: revisions</h3>
2249 2248
2250 2249 <form class="search" action="/log">
2251 2250
2252 2251 <p><input name="rev" id="search1" type="text" size="30" /></p>
2253 2252 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2254 2253 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2255 2254 </form>
2256 2255 <div id="doc">
2257 2256 <h1>Specifying Single Revisions</h1>
2258 2257 <p>
2259 2258 Mercurial supports several ways to specify individual revisions.
2260 2259 </p>
2261 2260 <p>
2262 2261 A plain integer is treated as a revision number. Negative integers are
2263 2262 treated as sequential offsets from the tip, with -1 denoting the tip,
2264 2263 -2 denoting the revision prior to the tip, and so forth.
2265 2264 </p>
2266 2265 <p>
2267 2266 A 40-digit hexadecimal string is treated as a unique revision
2268 2267 identifier.
2269 2268 </p>
2270 2269 <p>
2271 2270 A hexadecimal string less than 40 characters long is treated as a
2272 2271 unique revision identifier and is referred to as a short-form
2273 2272 identifier. A short-form identifier is only valid if it is the prefix
2274 2273 of exactly one full-length identifier.
2275 2274 </p>
2276 2275 <p>
2277 2276 Any other string is treated as a bookmark, tag, or branch name. A
2278 2277 bookmark is a movable pointer to a revision. A tag is a permanent name
2279 2278 associated with a revision. A branch name denotes the tipmost open branch head
2280 2279 of that branch - or if they are all closed, the tipmost closed head of the
2281 2280 branch. Bookmark, tag, and branch names must not contain the &quot;:&quot; character.
2282 2281 </p>
2283 2282 <p>
2284 2283 The reserved name &quot;tip&quot; always identifies the most recent revision.
2285 2284 </p>
2286 2285 <p>
2287 2286 The reserved name &quot;null&quot; indicates the null revision. This is the
2288 2287 revision of an empty repository, and the parent of revision 0.
2289 2288 </p>
2290 2289 <p>
2291 2290 The reserved name &quot;.&quot; indicates the working directory parent. If no
2292 2291 working directory is checked out, it is equivalent to null. If an
2293 2292 uncommitted merge is in progress, &quot;.&quot; is the revision of the first
2294 2293 parent.
2295 2294 </p>
2296 2295
2297 2296 </div>
2298 2297 </div>
2299 2298 </div>
2300 2299
2301 2300 <script type="text/javascript">process_dates()</script>
2302 2301
2303 2302
2304 2303 </body>
2305 2304 </html>
2306 2305
2307 2306
2308 2307 $ killdaemons.py
2309 2308
2310 2309 #endif
General Comments 0
You need to be logged in to leave comments. Login now