diff --git a/mercurial/help.py b/mercurial/help.py
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -52,21 +52,18 @@ def listexts(header, exts, maxlength):
def extshelp():
doc = _(r'''
Mercurial has the ability to add new features through the use of
- extensions. Extensions may add new commands, add options to
- existing commands, change the default behavior of commands, or
- implement hooks.
+ extensions. Extensions may add new commands, add options to existing
+ commands, change the default behavior of commands, or implement hooks.
- Extensions are not loaded by default for a variety of reasons:
- they can increase startup overhead; they may be meant for
- advanced usage only; they may provide potentially dangerous
- abilities (such as letting you destroy or modify history); they
- might not be ready for prime time; or they may alter some
- usual behaviors of stock Mercurial. It is thus up to the user to
- activate extensions as needed.
+ Extensions are not loaded by default for a variety of reasons: they can
+ increase startup overhead; they may be meant for advanced usage only; they
+ may provide potentially dangerous abilities (such as letting you destroy
+ or modify history); they might not be ready for prime time; or they may
+ alter some usual behaviors of stock Mercurial. It is thus up to the user
+ to activate extensions as needed.
- To enable the "foo" extension, either shipped with Mercurial
- or in the Python search path, create an entry for it in your
- hgrc, like this:
+ To enable the "foo" extension, either shipped with Mercurial or in the
+ Python search path, create an entry for it in your hgrc, like this:
[extensions]
foo =
@@ -76,8 +73,8 @@ def extshelp():
[extensions]
myfeature = ~/.hgext/myfeature.py
- To explicitly disable an extension enabled in an hgrc of broader
- scope, prepend its path with !:
+ To explicitly disable an extension enabled in an hgrc of broader scope,
+ prepend its path with !:
[extensions]
# disabling extension bar residing in /path/to/extension/bar.py
@@ -121,10 +118,10 @@ helptable = (
"1165432709 0" (Wed Dec 6 13:18:29 2006 UTC)
- This is the internal representation format for dates. unixtime is
- the number of seconds since the epoch (1970-01-01 00:00 UTC).
- offset is the offset of the local timezone, in seconds west of UTC
- (negative if the timezone is east of UTC).
+ This is the internal representation format for dates. unixtime is the
+ number of seconds since the epoch (1970-01-01 00:00 UTC). offset is the
+ offset of the local timezone, in seconds west of UTC (negative if the
+ timezone is east of UTC).
The log command also accepts date ranges:
@@ -136,27 +133,27 @@ helptable = (
(["patterns"], _("File Name Patterns"),
_(r'''
- Mercurial accepts several notations for identifying one or more
- files at a time.
+ Mercurial accepts several notations for identifying one or more files at a
+ time.
- By default, Mercurial treats filenames as shell-style extended
- glob patterns.
+ By default, Mercurial treats filenames as shell-style extended glob
+ patterns.
Alternate pattern notations must be specified explicitly.
- To use a plain path name without any pattern matching, start it
- with "path:". These path names must completely match starting at
- the current repository root.
+ To use a plain path name without any pattern matching, start it with
+ "path:". These path names must completely match starting at the current
+ repository root.
- To use an extended glob, start a name with "glob:". Globs are
- rooted at the current directory; a glob such as "*.c" will only
- match files in the current directory ending with ".c".
+ To use an extended glob, start a name with "glob:". Globs are rooted at
+ the current directory; a glob such as "*.c" will only match files in the
+ current directory ending with ".c".
- The supported glob syntax extensions are "**" to match any string
- across path separators and "{a,b}" to mean "a or b".
+ The supported glob syntax extensions are "**" to match any string across
+ path separators and "{a,b}" to mean "a or b".
- To use a Perl/Python regular expression, start a name with "re:".
- Regexp pattern matching is anchored at the root of the repository.
+ To use a Perl/Python regular expression, start a name with "re:". Regexp
+ pattern matching is anchored at the root of the repository.
Plain examples:
@@ -168,8 +165,8 @@ helptable = (
glob:*.c any name ending in ".c" in the current directory
*.c any name ending in ".c" in the current directory
- **.c any name ending in ".c" in any subdirectory of the
- current directory including itself.
+ **.c any name ending in ".c" in any subdirectory of the current
+ directory including itself.
foo/*.c any name ending in ".c" in the directory foo
foo/**.c any name ending in ".c" in any subdirectory of foo
including itself.
@@ -183,11 +180,11 @@ helptable = (
(['environment', 'env'], _('Environment Variables'),
_(r'''
HG::
- Path to the 'hg' executable, automatically passed when running
- hooks, extensions or external tools. If unset or empty, this is
- the hg executable's name if it's frozen, or an executable named
- 'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on
- Windows) is searched.
+ Path to the 'hg' executable, automatically passed when running hooks,
+ extensions or external tools. If unset or empty, this is the hg
+ executable's name if it's frozen, or an executable named 'hg' (with
+ %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on Windows) is
+ searched.
HGEDITOR::
This is the name of the editor to run when committing. See EDITOR.
@@ -195,39 +192,37 @@ HGEDITOR::
(deprecated, use .hgrc)
HGENCODING::
- This overrides the default locale setting detected by Mercurial.
- This setting is used to convert data including usernames,
- changeset descriptions, tag names, and branches. This setting can
- be overridden with the --encoding command-line option.
+ This overrides the default locale setting detected by Mercurial. This
+ setting is used to convert data including usernames, changeset
+ descriptions, tag names, and branches. This setting can be overridden with
+ the --encoding command-line option.
HGENCODINGMODE::
- This sets Mercurial's behavior for handling unknown characters
- while transcoding user input. The default is "strict", which
- causes Mercurial to abort if it can't map a character. Other
- settings include "replace", which replaces unknown characters, and
- "ignore", which drops them. This setting can be overridden with
- the --encodingmode command-line option.
+ This sets Mercurial's behavior for handling unknown characters while
+ transcoding user input. The default is "strict", which causes Mercurial to
+ abort if it can't map a character. Other settings include "replace", which
+ replaces unknown characters, and "ignore", which drops them. This setting
+ can be overridden with the --encodingmode command-line option.
HGMERGE::
- An executable to use for resolving merge conflicts. The program
- will be executed with three arguments: local file, remote file,
- ancestor file.
+ An executable to use for resolving merge conflicts. The program will be
+ executed with three arguments: local file, remote file, ancestor file.
(deprecated, use .hgrc)
HGRCPATH::
- A list of files or directories to search for hgrc files. Item
- separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set,
- platform default search path is used. If empty, only the .hg/hgrc
- from the current repository is read.
+ A list of files or directories to search for hgrc files. Item separator is
+ ":" on Unix, ";" on Windows. If HGRCPATH is not set, platform default
+ search path is used. If empty, only the .hg/hgrc from the current
+ repository is read.
For each element in HGRCPATH:
* if it's a directory, all files ending with .rc are added
* otherwise, the file itself will be added
HGUSER::
- This is the string used as the author of a commit. If not set,
- available values will be considered in this order:
+ This is the string used as the author of a commit. If not set, available
+ values will be considered in this order:
* HGUSER (deprecated)
* hgrc files from the HGRCPATH
@@ -247,77 +242,71 @@ VISUAL::
This is the name of the editor to use when committing. See EDITOR.
EDITOR::
- Sometimes Mercurial needs to open a text file in an editor for a
- user to modify, for example when writing commit messages. The
- editor it uses is determined by looking at the environment
- variables HGEDITOR, VISUAL and EDITOR, in that order. The first
- non-empty one is chosen. If all of them are empty, the editor
- defaults to 'vi'.
+ Sometimes Mercurial needs to open a text file in an editor for a user to
+ modify, for example when writing commit messages. The editor it uses is
+ determined by looking at the environment variables HGEDITOR, VISUAL and
+ EDITOR, in that order. The first non-empty one is chosen. If all of them
+ are empty, the editor defaults to 'vi'.
PYTHONPATH::
- This is used by Python to find imported modules and may need to be
- set appropriately if this Mercurial is not installed system-wide.
+ This is used by Python to find imported modules and may need to be set
+ appropriately if this Mercurial is not installed system-wide.
''')),
(['revs', 'revisions'], _('Specifying Single Revisions'),
_(r'''
Mercurial supports several ways to specify individual revisions.
- A plain integer is treated as a revision number. Negative integers
- are treated as topological offsets from the tip, with -1 denoting
- the tip. As such, negative numbers are only useful if you've
- memorized your local tree numbers and want to save typing a single
- digit. This editor suggests copy and paste.
+ A plain integer is treated as a revision number. Negative integers are
+ treated as topological offsets from the tip, with -1 denoting the tip. As
+ such, negative numbers are only useful if you've memorized your local tree
+ numbers and want to save typing a single digit. This editor suggests copy
+ and paste.
- A 40-digit hexadecimal string is treated as a unique revision
- identifier.
+ A 40-digit hexadecimal string is treated as a unique revision identifier.
- A hexadecimal string less than 40 characters long is treated as a
- unique revision identifier, and referred to as a short-form
- identifier. A short-form identifier is only valid if it is the
- prefix of exactly one full-length identifier.
+ A hexadecimal string less than 40 characters long is treated as a unique
+ revision identifier, and referred to as a short-form identifier. A
+ short-form identifier is only valid if it is the prefix of exactly one
+ full-length identifier.
- Any other string is treated as a tag name, which is a symbolic
- name associated with a revision identifier. Tag names may not
- contain the ":" character.
+ Any other string is treated as a tag name, which is a symbolic name
+ associated with a revision identifier. Tag names may not contain the ":"
+ character.
- The reserved name "tip" is a special tag that always identifies
- the most recent revision.
+ The reserved name "tip" is a special tag that always identifies the most
+ recent revision.
- The reserved name "null" indicates the null revision. This is the
- revision of an empty repository, and the parent of revision 0.
+ The reserved name "null" indicates the null revision. This is the revision
+ of an empty repository, and the parent of revision 0.
- The reserved name "." indicates the working directory parent. If
- no working directory is checked out, it is equivalent to null. If
- an uncommitted merge is in progress, "." is the revision of the
- first parent.
+ The reserved name "." indicates the working directory parent. If no
+ working directory is checked out, it is equivalent to null. If an
+ uncommitted merge is in progress, "." is the revision of the first parent.
''')),
(['mrevs', 'multirevs'], _('Specifying Multiple Revisions'),
_(r'''
- When Mercurial accepts more than one revision, they may be
- specified individually, or provided as a topologically continuous
- range, separated by the ":" character.
+ When Mercurial accepts more than one revision, they may be specified
+ individually, or provided as a topologically continuous range, separated
+ by the ":" character.
- The syntax of range notation is [BEGIN]:[END], where BEGIN and END
- are revision identifiers. Both BEGIN and END are optional. If
- BEGIN is not specified, it defaults to revision number 0. If END
- is not specified, it defaults to the tip. The range ":" thus means
- "all revisions".
+ The syntax of range notation is [BEGIN]:[END], where BEGIN and END are
+ revision identifiers. Both BEGIN and END are optional. If BEGIN is not
+ specified, it defaults to revision number 0. If END is not specified, it
+ defaults to the tip. The range ":" thus means "all revisions".
- If BEGIN is greater than END, revisions are treated in reverse
- order.
+ If BEGIN is greater than END, revisions are treated in reverse order.
- A range acts as a closed interval. This means that a range of 3:5
- gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.
+ A range acts as a closed interval. This means that a range of 3:5 gives 3,
+ 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.
''')),
(['diffs'], _('Diff Formats'),
_(r'''
- Mercurial's default format for showing changes between two
- versions of a file is compatible with the unified format of GNU
- diff, which can be used by GNU patch and many other standard
- tools.
+ Mercurial's default format for showing changes between two versions of a
+ file is compatible with the unified format of GNU diff, which can be used
+ by GNU patch and many other standard tools.
While this standard format is often enough, it does not encode the
following information:
@@ -327,121 +316,116 @@ PYTHONPATH::
- changes in binary files
- creation or deletion of empty files
- Mercurial also supports the extended diff format from the git VCS
- which addresses these limitations. The git diff format is not
- produced by default because a few widespread tools still do not
- understand this format.
+ Mercurial also supports the extended diff format from the git VCS which
+ addresses these limitations. The git diff format is not produced by
+ default because a few widespread tools still do not understand this
+ format.
- This means that when generating diffs from a Mercurial repository
- (e.g. with "hg export"), you should be careful about things like
- file copies and renames or other things mentioned above, because
- when applying a standard diff to a different repository, this
- extra information is lost. Mercurial's internal operations (like
- push and pull) are not affected by this, because they use an
- internal binary format for communicating changes.
+ This means that when generating diffs from a Mercurial repository (e.g.
+ with "hg export"), you should be careful about things like file copies and
+ renames or other things mentioned above, because when applying a standard
+ diff to a different repository, this extra information is lost.
+ Mercurial's internal operations (like push and pull) are not affected by
+ this, because they use an internal binary format for communicating
+ changes.
- To make Mercurial produce the git extended diff format, use the
- --git option available for many commands, or set 'git = True' in
- the [diff] section of your hgrc. You do not need to set this
- option when importing diffs in this format or using them in the mq
- extension.
+ To make Mercurial produce the git extended diff format, use the --git
+ option available for many commands, or set 'git = True' in the [diff]
+ section of your hgrc. You do not need to set this option when importing
+ diffs in this format or using them in the mq extension.
''')),
(['templating'], _('Template Usage'),
_(r'''
- Mercurial allows you to customize output of commands through
- templates. You can either pass in a template from the command
- line, via the --template option, or select an existing
- template-style (--style).
+ Mercurial allows you to customize output of commands through templates.
+ You can either pass in a template from the command line, via the
+ --template option, or select an existing template-style (--style).
- You can customize output for any "log-like" command: log,
- outgoing, incoming, tip, parents, heads and glog.
+ You can customize output for any "log-like" command: log, outgoing,
+ incoming, tip, parents, heads and glog.
- Three styles are packaged with Mercurial: default (the style used
- when no explicit preference is passed), compact and changelog.
- Usage:
+ Three styles are packaged with Mercurial: default (the style used when no
+ explicit preference is passed), compact and changelog. Usage:
$ hg log -r1 --style changelog
- A template is a piece of text, with markup to invoke variable
- expansion:
+ A template is a piece of text, with markup to invoke variable expansion:
$ hg log -r1 --template "{node}\n"
b56ce7b07c52de7d5fd79fb89701ea538af65746
- Strings in curly braces are called keywords. The availability of
- keywords depends on the exact context of the templater. These
- keywords are usually available for templating a log-like command:
+ Strings in curly braces are called keywords. The availability of keywords
+ depends on the exact context of the templater. These keywords are usually
+ available for templating a log-like command:
- author: String. The unmodified author of the changeset.
- - branches: String. The name of the branch on which the changeset
- was committed. Will be empty if the branch name was default.
+ - branches: String. The name of the branch on which the changeset was
+ committed. Will be empty if the branch name was default.
- date: Date information. The date when the changeset was committed.
- desc: String. The text of the changeset description.
- - diffstat: String. Statistics of changes with the following
- format: "modified files: +added/-removed lines"
- - files: List of strings. All files modified, added, or removed by
- this changeset.
+ - diffstat: String. Statistics of changes with the following format:
+ "modified files: +added/-removed lines"
+ - files: List of strings. All files modified, added, or removed by this
+ changeset.
- file_adds: List of strings. Files added by this changeset.
- file_mods: List of strings. Files modified by this changeset.
- file_dels: List of strings. Files removed by this changeset.
- - node: String. The changeset identification hash, as a
- 40-character hexadecimal string.
+ - node: String. The changeset identification hash, as a 40-character
+ hexadecimal string.
- parents: List of strings. The parents of the changeset.
- rev: Integer. The repository-local changeset revision number.
- tags: List of strings. Any tags associated with the changeset.
- The "date" keyword does not produce human-readable output. If you
- want to use a date in your output, you can use a filter to process
- it. Filters are functions which return a string based on the input
- variable. You can also use a chain of filters to get the desired
- output:
+ The "date" keyword does not produce human-readable output. If you want to
+ use a date in your output, you can use a filter to process it. Filters are
+ functions which return a string based on the input variable. You can also
+ use a chain of filters to get the desired output:
$ hg tip --template "{date|isodate}\n"
2008-08-21 18:22 +0000
List of filters:
- - addbreaks: Any text. Add an XHTML "
" tag before the end of
- every line except the last.
- - age: Date. Returns a human-readable date/time difference between
- the given date/time and the current date/time.
- - basename: Any text. Treats the text as a path, and returns the
- last component of the path after splitting by the path
- separator (ignoring trailing separators). For example,
- "foo/bar/baz" becomes "baz" and "foo/bar//" becomes "bar".
+ - addbreaks: Any text. Add an XHTML "
" tag before the end of every
+ line except the last.
+ - age: Date. Returns a human-readable date/time difference between the
+ given date/time and the current date/time.
+ - basename: Any text. Treats the text as a path, and returns the last
+ component of the path after splitting by the path separator
+ (ignoring trailing separators). For example, "foo/bar/baz" becomes
+ "baz" and "foo/bar//" becomes "bar".
- stripdir: Treat the text as path and strip a directory level, if
possible. For example, "foo" and "foo/bar" becomes "foo".
- - date: Date. Returns a date in a Unix date format, including
- the timezone: "Mon Sep 04 15:13:13 2006 0700".
- - domain: Any text. Finds the first string that looks like an
- email address, and extracts just the domain component.
- Example: 'User ' becomes 'example.com'.
- - email: Any text. Extracts the first string that looks like an
- email address. Example: 'User ' becomes
+ - date: Date. Returns a date in a Unix date format, including the
+ timezone: "Mon Sep 04 15:13:13 2006 0700".
+ - domain: Any text. Finds the first string that looks like an email
+ address, and extracts just the domain component. Example: 'User
+ ' becomes 'example.com'.
+ - email: Any text. Extracts the first string that looks like an email
+ address. Example: 'User ' becomes
'user@example.com'.
- - escape: Any text. Replaces the special XML/XHTML characters "&",
- "<" and ">" with XML entities.
+ - escape: Any text. Replaces the special XML/XHTML characters "&", "<" and
+ ">" with XML entities.
- fill68: Any text. Wraps the text to fit in 68 columns.
- fill76: Any text. Wraps the text to fit in 76 columns.
- firstline: Any text. Returns the first line of text.
- nonempty: Any text. Returns '(none)' if the string is empty.
- - hgdate: Date. Returns the date as a pair of numbers:
- "1157407993 25200" (Unix timestamp, timezone offset).
+ - hgdate: Date. Returns the date as a pair of numbers: "1157407993 25200"
+ (Unix timestamp, timezone offset).
- isodate: Date. Returns the date in ISO 8601 format.
- localdate: Date. Converts a date to local date.
- - obfuscate: Any text. Returns the input text rendered as a
- sequence of XML entities.
+ - obfuscate: Any text. Returns the input text rendered as a sequence of
+ XML entities.
- person: Any text. Returns the text before an email address.
- - rfc822date: Date. Returns a date using the same format used
- in email headers.
- - short: Changeset hash. Returns the short form of a changeset
- hash, i.e. a 12-byte hexadecimal string.
+ - rfc822date: Date. Returns a date using the same format used in email
+ headers.
+ - short: Changeset hash. Returns the short form of a changeset hash, i.e.
+ a 12-byte hexadecimal string.
- shortdate: Date. Returns a date like "2006-09-18".
- strip: Any text. Strips all leading and trailing whitespace.
- - tabindent: Any text. Returns the text, with every line except
- the first starting with a tab character.
- - urlescape: Any text. Escapes all "special" characters. For
- example, "foo bar" becomes "foo%20bar".
+ - tabindent: Any text. Returns the text, with every line except the first
+ starting with a tab character.
+ - urlescape: Any text. Escapes all "special" characters. For example, "foo
+ bar" becomes "foo%20bar".
- user: Any text. Returns the user portion of an email address.
''')),
@@ -455,57 +439,53 @@ PYTHONPATH::
https://[user[:pass]@]host[:port]/[path][#revision]
ssh://[user[:pass]@]host[:port]/[path][#revision]
- Paths in the local filesystem can either point to Mercurial
- repositories or to bundle files (as created by 'hg bundle' or
- 'hg incoming --bundle').
+ Paths in the local filesystem can either point to Mercurial repositories
+ or to bundle files (as created by 'hg bundle' or 'hg incoming --bundle').
- An optional identifier after # indicates a particular branch, tag,
- or changeset to use from the remote repository. See also 'hg help
- revisions'.
+ An optional identifier after # indicates a particular branch, tag, or
+ changeset to use from the remote repository. See also 'hg help revisions'.
- Some features, such as pushing to http:// and https:// URLs are
- only possible if the feature is explicitly enabled on the remote
- Mercurial server.
+ Some features, such as pushing to http:// and https:// URLs are only
+ possible if the feature is explicitly enabled on the remote Mercurial
+ server.
Some notes about using SSH with Mercurial:
- - SSH requires an accessible shell account on the destination
- machine and a copy of hg in the remote path or specified with as
- remotecmd.
- - path is relative to the remote user's home directory by default.
- Use an extra slash at the start of a path to specify an absolute path:
+ - SSH requires an accessible shell account on the destination machine and
+ a copy of hg in the remote path or specified with as remotecmd.
+ - path is relative to the remote user's home directory by default. Use an
+ extra slash at the start of a path to specify an absolute path:
ssh://example.com//tmp/repository
- - Mercurial doesn't use its own compression via SSH; the right
- thing to do is to configure it in your ~/.ssh/config, e.g.:
+ - Mercurial doesn't use its own compression via SSH; the right thing to do
+ is to configure it in your ~/.ssh/config, e.g.:
Host *.mylocalnetwork.example.com
Compression no
Host *
Compression yes
- Alternatively specify "ssh -C" as your ssh command in your hgrc
- or with the --ssh command line option.
+ Alternatively specify "ssh -C" as your ssh command in your hgrc or with
+ the --ssh command line option.
- These URLs can all be stored in your hgrc with path aliases under
- the [paths] section like so:
+ These URLs can all be stored in your hgrc with path aliases under the
+ [paths] section like so:
[paths]
alias1 = URL1
alias2 = URL2
...
- You can then use the alias for any command that uses a URL (for
- example 'hg pull alias1' would pull from the 'alias1' path).
+ You can then use the alias for any command that uses a URL (for example
+ 'hg pull alias1' would pull from the 'alias1' path).
- Two path aliases are special because they are used as defaults
- when you do not provide the URL to a command:
+ Two path aliases are special because they are used as defaults when you do
+ not provide the URL to a command:
default:
- When you create a repository with hg clone, the clone command
- saves the location of the source repository as the new
- repository's 'default' path. This is then used when you omit
- path from push- and pull-like commands (including incoming and
- outgoing).
+ When you create a repository with hg clone, the clone command saves the
+ location of the source repository as the new repository's 'default'
+ path. This is then used when you omit path from push- and pull-like
+ commands (including incoming and outgoing).
default-push:
- The push command will look for a path named 'default-push', and
- prefer it over 'default' if both are defined.
+ The push command will look for a path named 'default-push', and prefer
+ it over 'default' if both are defined.
''')),
(["extensions"], _("Using additional features"), extshelp),
)