changeset 9051:f8e25885d975

commands: wrapped docstrings at 78 characters We have always had a left margin of 4 characters -- probably just because that's how docstrings for top-level functions turn out by default, but it also looks nice in the built-in help. The docstrings were wrapped at 70 characters, which is the default for Emacs. However, this gives a right margin of 10 characters in a standard 80 character terminal. I've now wrapped the relevant docstrings at 78 characters, effectively killing the right margin. The asymmetric margins looked a bit odd and some of the text looked cramped with a right margin, so Dirkjan and I felt that it was best to remove it entirely. The two character gap was kept to have some space between the border of the terminal -- it will also make diffs involving the docstrings fit in a 80 character line.
author Martin Geisler <mg@lazybytes.net>
date Tue, 07 Jul 2009 23:54:30 +0200
parents 77324df822e2
children 1344e607180b
files mercurial/commands.py tests/test-dispatch.out tests/test-help.out
diffstat 3 files changed, 526 insertions(+), 574 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Jul 07 23:30:48 2009 +0200
+++ b/mercurial/commands.py	Tue Jul 07 23:54:30 2009 +0200
@@ -20,11 +20,10 @@
 def add(ui, repo, *pats, **opts):
     """add the specified files on the next commit
 
-    Schedule files to be version controlled and added to the
-    repository.
-
-    The files will be added to the repository at the next commit. To
-    undo an add before that, see hg forget.
+    Schedule files to be version controlled and added to the repository.
+
+    The files will be added to the repository at the next commit. To undo an
+    add before that, see hg forget.
 
     If no names are given, add all files to the repository.
     """
@@ -49,19 +48,16 @@
 def addremove(ui, repo, *pats, **opts):
     """add all new files, delete all missing files
 
-    Add all new files and remove all missing files from the
-    repository.
-
-    New files are ignored if they match any of the patterns in
-    .hgignore. As with add, these changes take effect at the next
-    commit.
-
-    Use the -s/--similarity option to detect renamed files. With a
-    parameter > 0, this compares every removed file with every added
-    file and records those similar enough as renames. This option
-    takes a percentage between 0 (disabled) and 100 (files must be
-    identical) as its parameter. Detecting renamed files this way can
-    be expensive.
+    Add all new files and remove all missing files from the repository.
+
+    New files are ignored if they match any of the patterns in .hgignore. As
+    with add, these changes take effect at the next commit.
+
+    Use the -s/--similarity option to detect renamed files. With a parameter >
+    0, this compares every removed file with every added file and records
+    those similar enough as renames. This option takes a percentage between 0
+    (disabled) and 100 (files must be identical) as its parameter. Detecting
+    renamed files this way can be expensive.
     """
     try:
         sim = float(opts.get('similarity') or 0)
@@ -74,16 +70,13 @@
 def annotate(ui, repo, *pats, **opts):
     """show changeset information by line for each file
 
-    List changes in files, showing the revision id responsible for
-    each line
-
-    This command is useful for discovering when a change was made and
-    by whom.
-
-    Without the -a/--text option, annotate will avoid processing files
-    it detects as binary. With -a, annotate will annotate the file
-    anyway, although the results will probably be neither useful
-    nor desirable.
+    List changes in files, showing the revision id responsible for each line
+
+    This command is useful for discovering when a change was made and by whom.
+
+    Without the -a/--text option, annotate will avoid processing files it
+    detects as binary. With -a, annotate will annotate the file anyway,
+    although the results will probably be neither useful nor desirable.
     """
     datefunc = ui.quiet and util.shortdate or util.datestr
     getdate = util.cachefunc(lambda x: datefunc(x[0].date()))
@@ -137,11 +130,10 @@
 def archive(ui, repo, dest, **opts):
     '''create an unversioned archive of a repository revision
 
-    By default, the revision used is the parent of the working
-    directory; use -r/--rev to specify a different revision.
-
-    To specify the type of archive to create, use -t/--type. Valid
-    types are:
+    By default, the revision used is the parent of the working directory; use
+    -r/--rev to specify a different revision.
+
+    To specify the type of archive to create, use -t/--type. Valid types are:
 
     "files" (default): a directory full of files
     "tar": tar archive, uncompressed
@@ -150,13 +142,12 @@
     "uzip": zip archive, uncompressed
     "zip": zip archive, compressed using deflate
 
-    The exact name of the destination archive or directory is given
-    using a format string; see 'hg help export' for details.
-
-    Each member added to an archive file has a directory prefix
-    prepended. Use -p/--prefix to specify a format string for the
-    prefix. The default is the basename of the archive, with suffixes
-    removed.
+    The exact name of the destination archive or directory is given using a
+    format string; see 'hg help export' for details.
+
+    Each member added to an archive file has a directory prefix prepended. Use
+    -p/--prefix to specify a format string for the prefix. The default is the
+    basename of the archive, with suffixes removed.
     '''
 
     ctx = repo[opts.get('rev')]
@@ -181,17 +172,17 @@
 def backout(ui, repo, node=None, rev=None, **opts):
     '''reverse effect of earlier changeset
 
-    Commit the backed out changes as a new changeset. The new
-    changeset is a child of the backed out changeset.
-
-    If you backout a changeset other than the tip, a new head is
-    created. This head will be the new tip and you should merge this
-    backout changeset with another head.
-
-    The --merge option remembers the parent of the working directory
-    before starting the backout, then merges the new head with that
-    changeset afterwards. This saves you from doing the merge by hand.
-    The result of this merge is not committed, as with a normal merge.
+    Commit the backed out changes as a new changeset. The new changeset is a
+    child of the backed out changeset.
+
+    If you backout a changeset other than the tip, a new head is created. This
+    head will be the new tip and you should merge this backout changeset with
+    another head.
+
+    The --merge option remembers the parent of the working directory before
+    starting the backout, then merges the new head with that changeset
+    afterwards. This saves you from doing the merge by hand. The result of
+    this merge is not committed, as with a normal merge.
 
     See 'hg help dates' for a list of formats valid for -d/--date.
     '''
@@ -268,23 +259,22 @@
                reset=None, good=None, bad=None, skip=None, noupdate=None):
     """subdivision search of changesets
 
-    This command helps to find changesets which introduce problems. To
-    use, mark the earliest changeset you know exhibits the problem as
-    bad, then mark the latest changeset which is free from the problem
-    as good. Bisect will update your working directory to a revision
-    for testing (unless the -U/--noupdate option is specified). Once
-    you have performed tests, mark the working directory as good or
-    bad, and bisect will either update to another candidate changeset
-    or announce that it has found the bad revision.
-
-    As a shortcut, you can also use the revision argument to mark a
-    revision as good or bad without checking it out first.
-
-    If you supply a command, it will be used for automatic bisection.
-    Its exit status will be used to mark revisions as good or bad:
-    status 0 means good, 125 means to skip the revision, 127
-    (command not found) will abort the bisection, and any other
-    non-zero exit status means the revision is bad.
+    This command helps to find changesets which introduce problems. To use,
+    mark the earliest changeset you know exhibits the problem as bad, then
+    mark the latest changeset which is free from the problem as good. Bisect
+    will update your working directory to a revision for testing (unless the
+    -U/--noupdate option is specified). Once you have performed tests, mark
+    the working directory as good or bad, and bisect will either update to
+    another candidate changeset or announce that it has found the bad
+    revision.
+
+    As a shortcut, you can also use the revision argument to mark a revision
+    as good or bad without checking it out first.
+
+    If you supply a command, it will be used for automatic bisection. Its exit
+    status will be used to mark revisions as good or bad: status 0 means good,
+    125 means to skip the revision, 127 (command not found) will abort the
+    bisection, and any other non-zero exit status means the revision is bad.
     """
     def print_result(nodes, good):
         displayer = cmdutil.show_changeset(ui, repo, {})
@@ -406,21 +396,19 @@
 def branch(ui, repo, label=None, **opts):
     """set or show the current branch name
 
-    With no argument, show the current branch name. With one argument,
-    set the working directory branch name (the branch will not exist
-    in the repository until the next commit). Standard practice
-    recommends that primary development take place on the 'default'
-    branch.
-
-    Unless -f/--force is specified, branch will not let you set a
-    branch name that already exists, even if it's inactive.
-
-    Use -C/--clean to reset the working directory branch to that of
-    the parent of the working directory, negating a previous branch
-    change.
-
-    Use the command 'hg update' to switch to an existing branch. Use
-    'hg commit --close-branch' to mark this branch as closed.
+    With no argument, show the current branch name. With one argument, set the
+    working directory branch name (the branch will not exist in the repository
+    until the next commit). Standard practice recommends that primary
+    development take place on the 'default' branch.
+
+    Unless -f/--force is specified, branch will not let you set a branch name
+    that already exists, even if it's inactive.
+
+    Use -C/--clean to reset the working directory branch to that of the parent
+    of the working directory, negating a previous branch change.
+
+    Use the command 'hg update' to switch to an existing branch. Use 'hg
+    commit --close-branch' to mark this branch as closed.
     """
 
     if opts.get('clean'):
@@ -440,12 +428,12 @@
 def branches(ui, repo, active=False, closed=False):
     """list repository named branches
 
-    List the repository's named branches, indicating which ones are
-    inactive. If -c/--closed is specified, also list branches which have
-    been marked closed (see hg commit --close-branch).
-
-    If -a/--active is specified, only show active branches. A branch
-    is considered active if it contains repository heads.
+    List the repository's named branches, indicating which ones are inactive.
+    If -c/--closed is specified, also list branches which have been marked
+    closed (see hg commit --close-branch).
+
+    If -a/--active is specified, only show active branches. A branch is
+    considered active if it contains repository heads.
 
     Use the command 'hg update' to switch to an existing branch.
     """
@@ -482,25 +470,24 @@
 def bundle(ui, repo, fname, dest=None, **opts):
     """create a changegroup file
 
-    Generate a compressed changegroup file collecting changesets not
-    known to be in another repository.
-
-    If no destination repository is specified the destination is
-    assumed to have all the nodes specified by one or more --base
-    parameters. To create a bundle containing all changesets, use
-    -a/--all (or --base null).
-
-    You can change compression method with the -t/--type option.
-    The available compression methods are: none, bzip2, and
-    gzip (by default, bundles are compressed using bzip2).
-
-    The bundle file can then be transferred using conventional means
-    and applied to another repository with the unbundle or pull
-    command. This is useful when direct push and pull are not
-    available or when exporting an entire repository is undesirable.
-
-    Applying bundles preserves all changeset contents including
-    permissions, copy/rename information, and revision history.
+    Generate a compressed changegroup file collecting changesets not known to
+    be in another repository.
+
+    If no destination repository is specified the destination is assumed to
+    have all the nodes specified by one or more --base parameters. To create a
+    bundle containing all changesets, use -a/--all (or --base null).
+
+    You can change compression method with the -t/--type option. The available
+    compression methods are: none, bzip2, and gzip (by default, bundles are
+    compressed using bzip2).
+
+    The bundle file can then be transferred using conventional means and
+    applied to another repository with the unbundle or pull command. This is
+    useful when direct push and pull are not available or when exporting an
+    entire repository is undesirable.
+
+    Applying bundles preserves all changeset contents including permissions,
+    copy/rename information, and revision history.
     """
     revs = opts.get('rev') or None
     if revs:
@@ -557,13 +544,13 @@
 def cat(ui, repo, file1, *pats, **opts):
     """output the current or given revision of files
 
-    Print the specified files as they were at the given revision. If
-    no revision is given, the parent of the working directory is used,
-    or tip if no revision is checked out.
-
-    Output may be to a file, in which case the name of the file is
-    given using a format string. The formatting rules are the same as
-    for the export command, with the following additions:
+    Print the specified files as they were at the given revision. If no
+    revision is given, the parent of the working directory is used, or tip if
+    no revision is checked out.
+
+    Output may be to a file, in which case the name of the file is given using
+    a format string. The formatting rules are the same as for the export
+    command, with the following additions:
 
     %s   basename of file being printed
     %d   dirname of file being printed, or '.' if in repository root
@@ -586,47 +573,42 @@
 
     Create a copy of an existing repository in a new directory.
 
-    If no destination directory name is specified, it defaults to the
-    basename of the source.
-
-    The location of the source is added to the new repository's
-    .hg/hgrc file, as the default to be used for future pulls.
-
-    If you use the -r/--rev option to clone up to a specific revision,
-    no subsequent revisions (including subsequent tags) will be
-    present in the cloned repository. This option implies --pull, even
-    on local repositories.
-
-    By default, clone will check out the head of the 'default' branch.
-    If the -U/--noupdate option is used, the new clone will contain
-    only a repository (.hg) and no working copy (the working copy
-    parent is the null revision).
+    If no destination directory name is specified, it defaults to the basename
+    of the source.
+
+    The location of the source is added to the new repository's .hg/hgrc file,
+    as the default to be used for future pulls.
+
+    If you use the -r/--rev option to clone up to a specific revision, no
+    subsequent revisions (including subsequent tags) will be present in the
+    cloned repository. This option implies --pull, even on local repositories.
+
+    By default, clone will check out the head of the 'default' branch. If the
+    -U/--noupdate option is used, the new clone will contain only a repository
+    (.hg) and no working copy (the working copy parent is the null revision).
 
     See 'hg help urls' for valid source format details.
 
     It is possible to specify an ssh:// URL as the destination, but no
-    .hg/hgrc and working directory will be created on the remote side.
-    Please see 'hg help urls' for important details about ssh:// URLs.
-
-    For efficiency, hardlinks are used for cloning whenever the source
-    and destination are on the same filesystem (note this applies only
-    to the repository data, not to the checked out files). Some
-    filesystems, such as AFS, implement hardlinking incorrectly, but
-    do not report errors. In these cases, use the --pull option to
-    avoid hardlinking.
-
-    In some cases, you can clone repositories and checked out files
-    using full hardlinks with
+    .hg/hgrc and working directory will be created on the remote side. Please
+    see 'hg help urls' for important details about ssh:// URLs.
+
+    For efficiency, hardlinks are used for cloning whenever the source and
+    destination are on the same filesystem (note this applies only to the
+    repository data, not to the checked out files). Some filesystems, such as
+    AFS, implement hardlinking incorrectly, but do not report errors. In these
+    cases, use the --pull option to avoid hardlinking.
+
+    In some cases, you can clone repositories and checked out files using full
+    hardlinks with
 
       $ cp -al REPO REPOCLONE
 
-    This is the fastest way to clone, but it is not always safe. The
-    operation is not atomic (making sure REPO is not modified during
-    the operation is up to you) and you have to make sure your editor
-    breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
-    this is not compatible with certain extensions that place their
-    metadata under the .hg directory, such as mq.
-
+    This is the fastest way to clone, but it is not always safe. The operation
+    is not atomic (making sure REPO is not modified during the operation is up
+    to you) and you have to make sure your editor breaks hardlinks (Emacs and
+    most Linux Kernel tools do so). Also, this is not compatible with certain
+    extensions that place their metadata under the .hg directory, such as mq.
     """
     hg.clone(cmdutil.remoteui(ui, opts), source, dest,
              pull=opts.get('pull'),
@@ -638,17 +620,17 @@
     """commit the specified files or all outstanding changes
 
     Commit changes to the given files into the repository. Unlike a
-    centralized RCS, this operation is a local operation. See hg push
-    for a way to actively distribute your changes.
-
-    If a list of files is omitted, all changes reported by "hg status"
-    will be committed.
-
-    If you are committing the result of a merge, do not provide any
-    filenames or -I/-X filters.
-
-    If no commit message is specified, the configured editor is
-    started to prompt you for a message.
+    centralized RCS, this operation is a local operation. See hg push for a
+    way to actively distribute your changes.
+
+    If a list of files is omitted, all changes reported by "hg status" will be
+    committed.
+
+    If you are committing the result of a merge, do not provide any filenames
+    or -I/-X filters.
+
+    If no commit message is specified, the configured editor is started to
+    prompt you for a message.
 
     See 'hg help dates' for a list of formats valid for -d/--date.
     """
@@ -686,16 +668,16 @@
 def copy(ui, repo, *pats, **opts):
     """mark files as copied for the next commit
 
-    Mark dest as having copies of source files. If dest is a
-    directory, copies are put in that directory. If dest is a file,
-    the source must be a single file.
-
-    By default, this command copies the contents of files as they
-    exist in the working directory. If invoked with -A/--after, the
-    operation is recorded, but no copying is performed.
-
-    This command takes effect with the next commit. To undo a copy
-    before that, see hg revert.
+    Mark dest as having copies of source files. If dest is a directory, copies
+    are put in that directory. If dest is a file, the source must be a single
+    file.
+
+    By default, this command copies the contents of files as they exist in the
+    working directory. If invoked with -A/--after, the operation is recorded,
+    but no copying is performed.
+
+    This command takes effect with the next commit. To undo a copy before
+    that, see hg revert.
     """
     wlock = repo.wlock(False)
     try:
@@ -798,14 +780,14 @@
 
     With no arguments, print names and values of all config items.
 
-    With one argument of the form section.name, print just the value
-    of that config item.
-
-    With multiple arguments, print names and values of all config
-    items with matching section names.
-
-    With --debug, the source (filename and line number) is printed
-    for each config item.
+    With one argument of the form section.name, print just the value of that
+    config item.
+
+    With multiple arguments, print names and values of all config items with
+    matching section names.
+
+    With --debug, the source (filename and line number) is printed for each
+    config item.
     """
 
     untrusted = bool(opts.get('untrusted'))
@@ -832,8 +814,8 @@
 def debugsetparents(ui, repo, rev1, rev2=None):
     """manually set the parents of the current working directory
 
-    This is useful for writing repository conversion tools, but should
-    be used with care.
+    This is useful for writing repository conversion tools, but should be used
+    with care.
     """
 
     if not rev2:
@@ -1067,22 +1049,21 @@
 
     Differences between files are shown using the unified diff format.
 
-    NOTE: diff may generate unexpected results for merges, as it will
-    default to comparing against the working directory's first parent
-    changeset if no revisions are specified.
-
-    When two revision arguments are given, then changes are shown
-    between those revisions. If only one revision is specified then
-    that revision is compared to the working directory, and, when no
-    revisions are specified, the working directory files are compared
-    to its parent.
-
-    Without the -a/--text option, diff will avoid generating diffs of
-    files it detects as binary. With -a, diff will generate a diff
-    anyway, probably with undesirable results.
-
-    Use the -g/--git option to generate diffs in the git extended diff
-    format. For more information, read 'hg help diffs'.
+    NOTE: diff may generate unexpected results for merges, as it will default
+    to comparing against the working directory's first parent changeset if no
+    revisions are specified.
+
+    When two revision arguments are given, then changes are shown between
+    those revisions. If only one revision is specified then that revision is
+    compared to the working directory, and, when no revisions are specified,
+    the working directory files are compared to its parent.
+
+    Without the -a/--text option, diff will avoid generating diffs of files it
+    detects as binary. With -a, diff will generate a diff anyway, probably
+    with undesirable results.
+
+    Use the -g/--git option to generate diffs in the git extended diff format.
+    For more information, read 'hg help diffs'.
     """
 
     revs = opts.get('rev')
@@ -1107,15 +1088,14 @@
 
     Print the changeset header and diffs for one or more revisions.
 
-    The information shown in the changeset header is: author,
-    changeset hash, parent(s) and commit comment.
-
-    NOTE: export may generate unexpected diff output for merge
-    changesets, as it will compare the merge changeset against its
-    first parent only.
-
-    Output may be to a file, in which case the name of the file is
-    given using a format string. The formatting rules are as follows:
+    The information shown in the changeset header is: author, changeset hash,
+    parent(s) and commit comment.
+
+    NOTE: export may generate unexpected diff output for merge changesets, as
+    it will compare the merge changeset against its first parent only.
+
+    Output may be to a file, in which case the name of the file is given using
+    a format string. The formatting rules are as follows:
 
     %%   literal "%" character
     %H   changeset hash (40 bytes of hexadecimal)
@@ -1126,15 +1106,15 @@
     %n   zero-padded sequence number, starting at 1
     %r   zero-padded changeset revision number
 
-    Without the -a/--text option, export will avoid generating diffs
-    of files it detects as binary. With -a, export will generate a
-    diff anyway, probably with undesirable results.
-
-    Use the -g/--git option to generate diffs in the git extended diff
-    format. See 'hg help diffs' for more information.
-
-    With the --switch-parent option, the diff will be against the
-    second parent. It can be useful to review a merge.
+    Without the -a/--text option, export will avoid generating diffs of files
+    it detects as binary. With -a, export will generate a diff anyway,
+    probably with undesirable results.
+
+    Use the -g/--git option to generate diffs in the git extended diff format.
+    See 'hg help diffs' for more information.
+
+    With the --switch-parent option, the diff will be against the second
+    parent. It can be useful to review a merge.
     """
     if not changesets:
         raise util.Abort(_("export requires at least one changeset"))
@@ -1150,12 +1130,11 @@
 def forget(ui, repo, *pats, **opts):
     """forget the specified files on the next commit
 
-    Mark the specified files so they will no longer be tracked
-    after the next commit.
-
-    This only removes files from the current branch, not from the
-    entire project history, and it does not delete them from the
-    working directory.
+    Mark the specified files so they will no longer be tracked after the next
+    commit.
+
+    This only removes files from the current branch, not from the entire
+    project history, and it does not delete them from the working directory.
 
     To undo a forget before the next commit, see hg add.
     """
@@ -1184,15 +1163,13 @@
     Search revisions of files for a regular expression.
 
     This command behaves differently than Unix grep. It only accepts
-    Python/Perl regexps. It searches repository history, not the
-    working directory. It always prints the revision number in which a
-    match appears.
-
-    By default, grep only prints output for the first revision of a
-    file in which it finds a match. To get it to print every revision
-    that contains a change in match status ("-" for a match that
-    becomes a non-match, or "+" for a non-match that becomes a match),
-    use the --all flag.
+    Python/Perl regexps. It searches repository history, not the working
+    directory. It always prints the revision number in which a match appears.
+
+    By default, grep only prints output for the first revision of a file in
+    which it finds a match. To get it to print every revision that contains a
+    change in match status ("-" for a match that becomes a non-match, or "+"
+    for a non-match that becomes a match), use the --all flag.
     """
     reflags = 0
     if opts.get('ignore_case'):
@@ -1366,23 +1343,23 @@
 
     With no arguments, show all repository head changesets.
 
-    Repository "heads" are changesets that don't have child
-    changesets. They are where development generally takes place and
-    are the usual targets for update and merge operations.
-
-    If one or more REV is given, the "branch heads" will be shown for
-    the named branch associated with that revision. The name of the
-    branch is called the revision's branch tag.
-
-    Branch heads are revisions on a given named branch that do not have
-    any descendants on the same branch. A branch head could be a true head
-    or it could be the last changeset on a branch before a new branch
-    was created. If none of the branch heads are true heads, the branch
-    is considered inactive. If -c/--closed is specified, also show branch
-    heads marked closed (see hg commit --close-branch).
-
-    If STARTREV is specified only those heads (or branch heads) that
-    are descendants of STARTREV will be displayed.
+    Repository "heads" are changesets that don't have child changesets. They
+    are where development generally takes place and are the usual targets for
+    update and merge operations.
+
+    If one or more REV is given, the "branch heads" will be shown for the
+    named branch associated with that revision. The name of the branch is
+    called the revision's branch tag.
+
+    Branch heads are revisions on a given named branch that do not have any
+    descendants on the same branch. A branch head could be a true head or it
+    could be the last changeset on a branch before a new branch was created.
+    If none of the branch heads are true heads, the branch is considered
+    inactive. If -c/--closed is specified, also show branch heads marked
+    closed (see hg commit --close-branch).
+
+    If STARTREV is specified only those heads (or branch heads) that are
+    descendants of STARTREV will be displayed.
     """
     if opts.get('rev'):
         start = repo.lookup(opts['rev'])
@@ -1428,8 +1405,8 @@
 
     With no arguments, print a list of commands with short help messages.
 
-    Given a topic, extension, or command name, print help for that
-    topic."""
+    Given a topic, extension, or command name, print help for that topic.
+    """
     option_lists = []
 
     def addglobalopts(aliases):
@@ -1637,16 +1614,15 @@
              rev=None, num=None, id=None, branch=None, tags=None):
     """identify the working copy or specified revision
 
-    With no revision, print a summary of the current state of the
-    repository.
-
-    Specifying a path to a repository root or Mercurial bundle will
-    cause lookup to operate on that repository/bundle.
-
-    This summary identifies the repository state using one or two
-    parent hash identifiers, followed by a "+" if there are
-    uncommitted changes in the working directory, a list of tags for
-    this revision and a branch name for non-default branches.
+    With no revision, print a summary of the current state of the repository.
+
+    Specifying a path to a repository root or Mercurial bundle will cause
+    lookup to operate on that repository/bundle.
+
+    This summary identifies the repository state using one or two parent hash
+    identifiers, followed by a "+" if there are uncommitted changes in the
+    working directory, a list of tags for this revision and a branch name for
+    non-default branches.
     """
 
     if not repo and not source:
@@ -1713,33 +1689,31 @@
 
     Import a list of patches and commit them individually.
 
-    If there are outstanding changes in the working directory, import
-    will abort unless given the -f/--force flag.
-
-    You can import a patch straight from a mail message. Even patches
-    as attachments work (to use the body part, it must have type
-    text/plain or text/x-patch). From and Subject headers of email
-    message are used as default committer and commit message. All
-    text/plain body parts before first diff are added to commit
-    message.
-
-    If the imported patch was generated by hg export, user and
-    description from patch override values from message headers and
-    body. Values given on command line with -m/--message and -u/--user
-    override these.
-
-    If --exact is specified, import will set the working directory to
-    the parent of each patch before applying it, and will abort if the
-    resulting changeset has a different ID than the one recorded in
-    the patch. This may happen due to character set problems or other
-    deficiencies in the text patch format.
-
-    With -s/--similarity, hg will attempt to discover renames and
-    copies in the patch in the same way as 'addremove'.
-
-    To read a patch from standard input, use "-" as the patch name. If
-    a URL is specified, the patch will be downloaded from it.
-    See 'hg help dates' for a list of formats valid for -d/--date.
+    If there are outstanding changes in the working directory, import will
+    abort unless given the -f/--force flag.
+
+    You can import a patch straight from a mail message. Even patches as
+    attachments work (to use the body part, it must have type text/plain or
+    text/x-patch). From and Subject headers of email message are used as
+    default committer and commit message. All text/plain body parts before
+    first diff are added to commit message.
+
+    If the imported patch was generated by hg export, user and description
+    from patch override values from message headers and body. Values given on
+    command line with -m/--message and -u/--user override these.
+
+    If --exact is specified, import will set the working directory to the
+    parent of each patch before applying it, and will abort if the resulting
+    changeset has a different ID than the one recorded in the patch. This may
+    happen due to character set problems or other deficiencies in the text
+    patch format.
+
+    With -s/--similarity, hg will attempt to discover renames and copies in
+    the patch in the same way as 'addremove'.
+
+    To read a patch from standard input, use "-" as the patch name. If a URL
+    is specified, the patch will be downloaded from it. See 'hg help dates'
+    for a list of formats valid for -d/--date.
     """
     patches = (patch1,) + patches
 
@@ -1839,12 +1813,12 @@
 def incoming(ui, repo, source="default", **opts):
     """show new changesets found in source
 
-    Show new changesets found in the specified path/URL or the default
-    pull location. These are the changesets that would have been pulled
-    if a pull at the time you issued this command.
-
-    For remote repository, using --bundle avoids downloading the
-    changesets twice if the incoming is followed by a pull.
+    Show new changesets found in the specified path/URL or the default pull
+    location. These are the changesets that would have been pulled if a pull
+    at the time you issued this command.
+
+    For remote repository, using --bundle avoids downloading the changesets
+    twice if the incoming is followed by a pull.
 
     See pull for valid source format details.
     """
@@ -1908,33 +1882,33 @@
 def init(ui, dest=".", **opts):
     """create a new repository in the given directory
 
-    Initialize a new repository in the given directory. If the given
-    directory does not exist, it will be created.
+    Initialize a new repository in the given directory. If the given directory
+    does not exist, it will be created.
 
     If no directory is given, the current directory is used.
 
-    It is possible to specify an ssh:// URL as the destination.
-    See 'hg help urls' for more information.
+    It is possible to specify an ssh:// URL as the destination. See 'hg help
+    urls' for more information.
     """
     hg.repository(cmdutil.remoteui(ui, opts), dest, create=1)
 
 def locate(ui, repo, *pats, **opts):
     """locate files matching specific patterns
 
-    Print files under Mercurial control in the working directory whose
-    names match the given patterns.
+    Print files under Mercurial control in the working directory whose names
+    match the given patterns.
 
     By default, this command searches all directories in the working
-    directory. To search just the current directory and its
-    subdirectories, use "--include .".
-
-    If no patterns are given to match, this command prints the names
-    of all files under Mercurial control in the working directory.
-
-    If you want to feed the output of this command into the "xargs"
-    command, use the -0 option to both this command and "xargs". This
-    will avoid the problem of "xargs" treating single filenames that
-    contain whitespace as multiple filenames.
+    directory. To search just the current directory and its subdirectories,
+    use "--include .".
+
+    If no patterns are given to match, this command prints the names of all
+    files under Mercurial control in the working directory.
+
+    If you want to feed the output of this command into the "xargs" command,
+    use the -0 option to both this command and "xargs". This will avoid the
+    problem of "xargs" treating single filenames that contain whitespace as
+    multiple filenames.
     """
     end = opts.get('print0') and '\0' or '\n'
     rev = opts.get('rev') or None
@@ -1956,30 +1930,29 @@
 def log(ui, repo, *pats, **opts):
     """show revision history of entire repository or files
 
-    Print the revision history of the specified files or the entire
-    project.
-
-    File history is shown without following rename or copy history of
-    files. Use -f/--follow with a filename to follow history across
-    renames and copies. --follow without a filename will only show
-    ancestors or descendants of the starting revision. --follow-first
-    only follows the first parent of merge revisions.
-
-    If no revision range is specified, the default is tip:0 unless
-    --follow is set, in which case the working directory parent is
-    used as the starting revision.
+    Print the revision history of the specified files or the entire project.
+
+    File history is shown without following rename or copy history of files.
+    Use -f/--follow with a filename to follow history across renames and
+    copies. --follow without a filename will only show ancestors or
+    descendants of the starting revision. --follow-first only follows the
+    first parent of merge revisions.
+
+    If no revision range is specified, the default is tip:0 unless --follow is
+    set, in which case the working directory parent is used as the starting
+    revision.
 
     See 'hg help dates' for a list of formats valid for -d/--date.
 
-    By default this command prints revision number and changeset id,
-    tags, non-trivial parents, user, date and time, and a summary for
-    each commit. When the -v/--verbose switch is used, the list of
-    changed files and full commit message are shown.
+    By default this command prints revision number and changeset id, tags,
+    non-trivial parents, user, date and time, and a summary for each commit.
+    When the -v/--verbose switch is used, the list of changed files and full
+    commit message are shown.
 
     NOTE: log -p/--patch may generate unexpected diff output for merge
-    changesets, as it will only compare the merge changeset against
-    its first parent. Also, only files different from BOTH parents
-    will appear in files:.
+    changesets, as it will only compare the merge changeset against its first
+    parent. Also, only files different from BOTH parents will appear in
+    files:.
     """
 
     get = util.cachefunc(lambda r: repo[r].changeset())
@@ -2082,9 +2055,9 @@
 def manifest(ui, repo, node=None, rev=None):
     """output the current or given revision of the project manifest
 
-    Print a list of version controlled files for the given revision.
-    If no revision is given, the first parent of the working directory
-    is used, or the null revision if no revision is checked out.
+    Print a list of version controlled files for the given revision. If no
+    revision is given, the first parent of the working directory is used, or
+    the null revision if no revision is checked out.
 
     With -v, print file permissions, symlink and executable bits.
     With --debug, print file revision hashes.
@@ -2108,18 +2081,17 @@
 def merge(ui, repo, node=None, **opts):
     """merge working directory with another revision
 
-    The current working directory is updated with all changes made in
-    the requested revision since the last common predecessor revision.
-
-    Files that changed between either parent are marked as changed for
-    the next commit and a commit must be performed before any further
-    updates to the repository are allowed. The next commit will have
-    two parents.
-
-    If no revision is specified, the working directory's parent is a
-    head revision, and the current branch contains exactly one other
-    head, the other head is merged with by default. Otherwise, an
-    explicit revision with which to merge with must be provided.
+    The current working directory is updated with all changes made in the
+    requested revision since the last common predecessor revision.
+
+    Files that changed between either parent are marked as changed for the
+    next commit and a commit must be performed before any further updates to
+    the repository are allowed. The next commit will have two parents.
+
+    If no revision is specified, the working directory's parent is a head
+    revision, and the current branch contains exactly one other head, the
+    other head is merged with by default. Otherwise, an explicit revision with
+    which to merge with must be provided.
     """
 
     if opts.get('rev') and node:
@@ -2166,9 +2138,9 @@
 def outgoing(ui, repo, dest=None, **opts):
     """show changesets not found in destination
 
-    Show changesets not found in the specified destination repository
-    or the default push location. These are the changesets that would
-    be pushed if a push was requested.
+    Show changesets not found in the specified destination repository or the
+    default push location. These are the changesets that would be pushed if a
+    push was requested.
 
     See pull for valid destination format details.
     """
@@ -2201,11 +2173,10 @@
 def parents(ui, repo, file_=None, **opts):
     """show the parents of the working directory or revision
 
-    Print the working directory's parent revisions. If a revision is
-    given via -r/--rev, the parent of that revision will be printed.
-    If a file argument is given, the revision in which the file was
-    last changed (before the working directory revision or the
-    argument to --rev if given) is printed.
+    Print the working directory's parent revisions. If a revision is given via
+    -r/--rev, the parent of that revision will be printed. If a file argument
+    is given, the revision in which the file was last changed (before the
+    working directory revision or the argument to --rev if given) is printed.
     """
     rev = opts.get('rev')
     if rev:
@@ -2241,11 +2212,11 @@
 def paths(ui, repo, search=None):
     """show aliases for remote repositories
 
-    Show definition of symbolic path name NAME. If no name is given,
-    show definition of all available names.
-
-    Path names are defined in the [paths] section of /etc/mercurial/hgrc
-    and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.
+    Show definition of symbolic path name NAME. If no name is given, show
+    definition of all available names.
+
+    Path names are defined in the [paths] section of /etc/mercurial/hgrc and
+    $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.
 
     See 'hg help urls' for more information.
     """
@@ -2278,18 +2249,18 @@
 
     Pull changes from a remote repository to a local one.
 
-    This finds all changes from the repository at the specified path
-    or URL and adds them to a local repository (the current one unless
-    -R is specified). By default, this does not update the copy of the
-    project in the working directory.
-
-    Use hg incoming if you want to see what would have been added by a
-    pull at the time you issued this command. If you then decide to
-    added those changes to the repository, you should use pull -r X
-    where X is the last changeset listed by hg incoming.
-
-    If SOURCE is omitted, the 'default' path will be used.
-    See 'hg help urls' for more information.
+    This finds all changes from the repository at the specified path or URL
+    and adds them to a local repository (the current one unless -R is
+    specified). By default, this does not update the copy of the project in
+    the working directory.
+
+    Use hg incoming if you want to see what would have been added by a pull at
+    the time you issued this command. If you then decide to added those
+    changes to the repository, you should use pull -r X where X is the last
+    changeset listed by hg incoming.
+
+    If SOURCE is omitted, the 'default' path will be used. See 'hg help urls'
+    for more information.
     """
     source, revs, checkout = hg.parseurl(ui.expandpath(source), opts.get('rev'))
     other = hg.repository(cmdutil.remoteui(repo, opts), source)
@@ -2310,20 +2281,19 @@
 
     Push changes from the local repository to the given destination.
 
-    This is the symmetrical operation for pull. It moves changes from
-    the current repository to a different one. If the destination is
-    local this is identical to a pull in that directory from the
-    current one.
+    This is the symmetrical operation for pull. It moves changes from the
+    current repository to a different one. If the destination is local this is
+    identical to a pull in that directory from the current one.
 
     By default, push will refuse to run if it detects the result would
-    increase the number of remote heads. This generally indicates the
-    user forgot to pull and merge before pushing.
-
-    If -r/--rev is used, the named revision and all its ancestors will
-    be pushed to the remote repository.
-
-    Please see 'hg help urls' for important details about ssh://
-    URLs. If DESTINATION is omitted, a default path will be used.
+    increase the number of remote heads. This generally indicates the user
+    forgot to pull and merge before pushing.
+
+    If -r/--rev is used, the named revision and all its ancestors will be
+    pushed to the remote repository.
+
+    Please see 'hg help urls' for important details about ssh:// URLs. If
+    DESTINATION is omitted, a default path will be used.
     """
     dest, revs, checkout = hg.parseurl(
         ui.expandpath(dest or 'default-push', dest or 'default'), opts.get('rev'))
@@ -2346,9 +2316,8 @@
 
     Recover from an interrupted commit or pull.
 
-    This command tries to fix the repository status after an
-    interrupted operation. It should only be necessary when Mercurial
-    suggests it.
+    This command tries to fix the repository status after an interrupted
+    operation. It should only be necessary when Mercurial suggests it.
     """
     if repo.recover():
         return hg.verify(repo)
@@ -2359,17 +2328,16 @@
 
     Schedule the indicated files for removal from the repository.
 
-    This only removes files from the current branch, not from the
-    entire project history. -A/--after can be used to remove only
-    files that have already been deleted, -f/--force can be used to
-    force deletion, and -Af can be used to remove files from the next
-    revision without deleting them from the working directory.
-
-    The following table details the behavior of remove for different
-    file states (columns) and option combinations (rows). The file
-    states are Added [A], Clean [C], Modified [M] and Missing [!]
-    (as reported by hg status). The actions are Warn, Remove (from
-    branch) and Delete (from disk).
+    This only removes files from the current branch, not from the entire
+    project history. -A/--after can be used to remove only files that have
+    already been deleted, -f/--force can be used to force deletion, and -Af
+    can be used to remove files from the next revision without deleting them
+    from the working directory.
+
+    The following table details the behavior of remove for different file
+    states (columns) and option combinations (rows). The file states are Added
+    [A], Clean [C], Modified [M] and Missing [!] (as reported by hg status).
+    The actions are Warn, Remove (from branch) and Delete (from disk).
 
            A  C  M  !
     none   W  RD W  R
@@ -2377,8 +2345,8 @@
     -A     W  W  W  R
     -Af    R  R  R  R
 
-    This command schedules the files to be removed at the next commit.
-    To undo a remove before that, see hg revert.
+    This command schedules the files to be removed at the next commit. To undo
+    a remove before that, see hg revert.
     """
 
     after, force = opts.get('after'), opts.get('force')
@@ -2418,16 +2386,16 @@
 def rename(ui, repo, *pats, **opts):
     """rename files; equivalent of copy + remove
 
-    Mark dest as copies of sources; mark sources for deletion. If dest
-    is a directory, copies are put in that directory. If dest is a
-    file, there can only be one source.
-
-    By default, this command copies the contents of files as they
-    exist in the working directory. If invoked with -A/--after, the
-    operation is recorded, but no copying is performed.
-
-    This command takes effect at the next commit. To undo a rename
-    before that, see hg revert.
+    Mark dest as copies of sources; mark sources for deletion. If dest is a
+    directory, copies are put in that directory. If dest is a file, there can
+    only be one source.
+
+    By default, this command copies the contents of files as they exist in the
+    working directory. If invoked with -A/--after, the operation is recorded,
+    but no copying is performed.
+
+    This command takes effect at the next commit. To undo a rename before
+    that, see hg revert.
     """
     wlock = repo.wlock(False)
     try:
@@ -2439,16 +2407,16 @@
     """retry file merges from a merge or update
 
     This command will cleanly retry unresolved file merges using file
-    revisions preserved from the last update or merge. To attempt to
-    resolve all unresolved files, use the -a/--all switch.
-
-    If a conflict is resolved manually, please note that the changes
-    will be overwritten if the merge is retried with resolve. The
-    -m/--mark switch should be used to mark the file as resolved.
-
-    This command also allows listing resolved files and manually
-    indicating whether or not files are resolved. All files must be
-    marked as resolved before a commit is permitted.
+    revisions preserved from the last update or merge. To attempt to resolve
+    all unresolved files, use the -a/--all switch.
+
+    If a conflict is resolved manually, please note that the changes will be
+    overwritten if the merge is retried with resolve. The -m/--mark switch
+    should be used to mark the file as resolved.
+
+    This command also allows listing resolved files and manually indicating
+    whether or not files are resolved. All files must be marked as resolved
+    before a commit is permitted.
 
     The codes used to show the status of files are:
     U = unresolved
@@ -2493,35 +2461,33 @@
 def revert(ui, repo, *pats, **opts):
     """restore individual files or directories to an earlier state
 
-    (Use update -r to check out earlier revisions, revert does not
-    change the working directory parents.)
-
-    With no revision specified, revert the named files or directories
-    to the contents they had in the parent of the working directory.
-    This restores the contents of the affected files to an unmodified
-    state and unschedules adds, removes, copies, and renames. If the
-    working directory has two parents, you must explicitly specify the
-    revision to revert to.
-
-    Using the -r/--rev option, revert the given files or directories
-    to their contents as of a specific revision. This can be helpful
-    to "roll back" some or all of an earlier change. See 'hg help
-    dates' for a list of formats valid for -d/--date.
-
-    Revert modifies the working directory. It does not commit any
-    changes, or change the parent of the working directory. If you
-    revert to a revision other than the parent of the working
-    directory, the reverted files will thus appear modified
-    afterwards.
-
-    If a file has been deleted, it is restored. If the executable mode
-    of a file was changed, it is reset.
-
-    If names are given, all files matching the names are reverted.
-    If no arguments are given, no files are reverted.
-
-    Modified files are saved with a .orig suffix before reverting.
-    To disable these backups, use --no-backup.
+    (Use update -r to check out earlier revisions, revert does not change the
+    working directory parents.)
+
+    With no revision specified, revert the named files or directories to the
+    contents they had in the parent of the working directory. This restores
+    the contents of the affected files to an unmodified state and unschedules
+    adds, removes, copies, and renames. If the working directory has two
+    parents, you must explicitly specify the revision to revert to.
+
+    Using the -r/--rev option, revert the given files or directories to their
+    contents as of a specific revision. This can be helpful to "roll back"
+    some or all of an earlier change. See 'hg help dates' for a list of
+    formats valid for -d/--date.
+
+    Revert modifies the working directory. It does not commit any changes, or
+    change the parent of the working directory. If you revert to a revision
+    other than the parent of the working directory, the reverted files will
+    thus appear modified afterwards.
+
+    If a file has been deleted, it is restored. If the executable mode of a
+    file was changed, it is reset.
+
+    If names are given, all files matching the names are reverted. If no
+    arguments are given, no files are reverted.
+
+    Modified files are saved with a .orig suffix before reverting. To disable
+    these backups, use --no-backup.
     """
 
     if opts["date"]:
@@ -2710,15 +2676,14 @@
     """roll back the last transaction
 
     This command should be used with care. There is only one level of
-    rollback, and there is no way to undo a rollback. It will also
-    restore the dirstate at the time of the last transaction, losing
-    any dirstate changes since that time. This command does not alter
-    the working directory.
-
-    Transactions are used to encapsulate the effects of all commands
-    that create new changesets or propagate existing changesets into a
-    repository. For example, the following commands are transactional,
-    and their effects can be rolled back:
+    rollback, and there is no way to undo a rollback. It will also restore the
+    dirstate at the time of the last transaction, losing any dirstate changes
+    since that time. This command does not alter the working directory.
+
+    Transactions are used to encapsulate the effects of all commands that
+    create new changesets or propagate existing changesets into a repository.
+    For example, the following commands are transactional, and their effects
+    can be rolled back:
 
       commit
       import
@@ -2726,12 +2691,12 @@
       push (with this repository as destination)
       unbundle
 
-    This command is not intended for use on public repositories. Once
-    changes are visible for pull by other users, rolling a transaction
-    back locally is ineffective (someone else may already have pulled
-    the changes). Furthermore, a race is possible with readers of the
-    repository; for example an in-progress pull from the repository
-    may fail if a rollback is performed.
+    This command is not intended for use on public repositories. Once changes
+    are visible for pull by other users, rolling a transaction back locally is
+    ineffective (someone else may already have pulled the changes).
+    Furthermore, a race is possible with readers of the repository; for
+    example an in-progress pull from the repository may fail if a rollback is
+    performed.
     """
     repo.rollback()
 
@@ -2747,9 +2712,8 @@
 
     Start a local HTTP repository browser and pull server.
 
-    By default, the server logs accesses to stdout and errors to
-    stderr. Use the -A/--accesslog and -E/--errorlog options to log to
-    files.
+    By default, the server logs accesses to stdout and errors to stderr. Use
+    the -A/--accesslog and -E/--errorlog options to log to files.
     """
 
     if opts["stdio"]:
@@ -2810,24 +2774,22 @@
 def status(ui, repo, *pats, **opts):
     """show changed files in the working directory
 
-    Show status of files in the repository. If names are given, only
-    files that match are shown. Files that are clean or ignored or
-    the source of a copy/move operation, are not listed unless
-    -c/--clean, -i/--ignored, -C/--copies or -A/--all are given.
-    Unless options described with "show only ..." are given, the
-    options -mardu are used.
-
-    Option -q/--quiet hides untracked (unknown and ignored) files
-    unless explicitly requested with -u/--unknown or -i/--ignored.
-
-    NOTE: status may appear to disagree with diff if permissions have
-    changed or a merge has occurred. The standard diff format does not
-    report permission changes and diff only reports changes relative
-    to one merge parent.
-
-    If one revision is given, it is used as the base revision.
-    If two revisions are given, the differences between them are
-    shown.
+    Show status of files in the repository. If names are given, only files
+    that match are shown. Files that are clean or ignored or the source of a
+    copy/move operation, are not listed unless -c/--clean, -i/--ignored,
+    -C/--copies or -A/--all are given. Unless options described with "show
+    only ..." are given, the options -mardu are used.
+
+    Option -q/--quiet hides untracked (unknown and ignored) files unless
+    explicitly requested with -u/--unknown or -i/--ignored.
+
+    NOTE: status may appear to disagree with diff if permissions have changed
+    or a merge has occurred. The standard diff format does not report
+    permission changes and diff only reports changes relative to one merge
+    parent.
+
+    If one revision is given, it is used as the base revision. If two
+    revisions are given, the differences between them are shown.
 
     The codes used to show the status of files are:
     M = modified
@@ -2885,18 +2847,17 @@
 
     Name a particular revision using <name>.
 
-    Tags are used to name particular revisions of the repository and are
-    very useful to compare different revisions, to go back to significant
-    earlier versions or to mark branch points as releases, etc.
-
-    If no revision is given, the parent of the working directory is
-    used, or tip if no revision is checked out.
-
-    To facilitate version control, distribution, and merging of tags,
-    they are stored as a file named ".hgtags" which is managed
-    similarly to other project files and can be hand-edited if
-    necessary. The file '.hg/localtags' is used for local tags (not
-    shared among repositories).
+    Tags are used to name particular revisions of the repository and are very
+    useful to compare different revisions, to go back to significant earlier
+    versions or to mark branch points as releases, etc.
+
+    If no revision is given, the parent of the working directory is used, or
+    tip if no revision is checked out.
+
+    To facilitate version control, distribution, and merging of tags, they are
+    stored as a file named ".hgtags" which is managed similarly to other
+    project files and can be hand-edited if necessary. The file
+    '.hg/localtags' is used for local tags (not shared among repositories).
 
     See 'hg help dates' for a list of formats valid for -d/--date.
     """
@@ -2949,8 +2910,8 @@
 def tags(ui, repo):
     """list repository tags
 
-    This lists both regular and local tags. When the -v/--verbose
-    switch is used, a third column "local" is printed for local tags.
+    This lists both regular and local tags. When the -v/--verbose switch is
+    used, a third column "local" is printed for local tags.
     """
 
     hexfunc = ui.debugflag and hex or short
@@ -2978,22 +2939,22 @@
 def tip(ui, repo, **opts):
     """show the tip revision
 
-    The tip revision (usually just called the tip) is the changeset
-    most recently added to the repository (and therefore the most
-    recently changed head).
-
-    If you have just made a commit, that commit will be the tip. If
-    you have just pulled changes from another repository, the tip of
-    that repository becomes the current tip. The "tip" tag is special
-    and cannot be renamed or assigned to a different changeset.
+    The tip revision (usually just called the tip) is the changeset most
+    recently added to the repository (and therefore the most recently changed
+    head).
+
+    If you have just made a commit, that commit will be the tip. If you have
+    just pulled changes from another repository, the tip of that repository
+    becomes the current tip. The "tip" tag is special and cannot be renamed or
+    assigned to a different changeset.
     """
     cmdutil.show_changeset(ui, repo, opts).show(repo[len(repo) - 1])
 
 def unbundle(ui, repo, fname1, *fnames, **opts):
     """apply one or more changegroup files
 
-    Apply one or more compressed changegroup files generated by the
-    bundle command.
+    Apply one or more compressed changegroup files generated by the bundle
+    command.
     """
     fnames = (fname1,) + fnames
 
@@ -3011,31 +2972,27 @@
 def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
     """update working directory
 
-    Update the repository's working directory to the specified
-    revision, or the tip of the current branch if none is specified.
-    Use null as the revision to remove the working copy (like 'hg
-    clone -U').
-
-    When the working directory contains no uncommitted changes, it
-    will be replaced by the state of the requested revision from the
-    repository. When the requested revision is on a different branch,
-    the working directory will additionally be switched to that
-    branch.
-
-    When there are uncommitted changes, use option -C/--clean to
-    discard them, forcibly replacing the state of the working
-    directory with the requested revision. Alternately, use -c/--check
-    to abort.
-
-    When there are uncommitted changes and option -C/--clean is not
-    used, and the parent revision and requested revision are on the
-    same branch, and one of them is an ancestor of the other, then the
-    new working directory will contain the requested revision merged
-    with the uncommitted changes. Otherwise, the update will fail with
-    a suggestion to use 'merge' or 'update -C' instead.
-
-    If you want to update just one file to an older revision, use
-    revert.
+    Update the repository's working directory to the specified revision, or
+    the tip of the current branch if none is specified. Use null as the
+    revision to remove the working copy (like 'hg clone -U').
+
+    When the working directory contains no uncommitted changes, it will be
+    replaced by the state of the requested revision from the repository. When
+    the requested revision is on a different branch, the working directory
+    will additionally be switched to that branch.
+
+    When there are uncommitted changes, use option -C/--clean to discard them,
+    forcibly replacing the state of the working directory with the requested
+    revision. Alternately, use -c/--check to abort.
+
+    When there are uncommitted changes and option -C/--clean is not used, and
+    the parent revision and requested revision are on the same branch, and one
+    of them is an ancestor of the other, then the new working directory will
+    contain the requested revision merged with the uncommitted changes.
+    Otherwise, the update will fail with a suggestion to use 'merge' or
+    'update -C' instead.
+
+    If you want to update just one file to an older revision, use revert.
 
     See 'hg help dates' for a list of formats valid for -d/--date.
     """
@@ -3066,10 +3023,10 @@
 
     Verify the integrity of the current repository.
 
-    This will perform an extensive check of the repository's
-    integrity, validating the hashes and checksums of each entry in
-    the changelog, manifest, and tracked files, as well as the
-    integrity of their crosslinks and indices.
+    This will perform an extensive check of the repository's integrity,
+    validating the hashes and checksums of each entry in the changelog,
+    manifest, and tracked files, as well as the integrity of their crosslinks
+    and indices.
     """
     return hg.verify(repo)
 
--- a/tests/test-dispatch.out	Tue Jul 07 23:30:48 2009 +0200
+++ b/tests/test-dispatch.out	Tue Jul 07 23:54:30 2009 +0200
@@ -5,13 +5,13 @@
 
 output the current or given revision of files
 
-    Print the specified files as they were at the given revision. If
-    no revision is given, the parent of the working directory is used,
-    or tip if no revision is checked out.
+    Print the specified files as they were at the given revision. If no
+    revision is given, the parent of the working directory is used, or tip if
+    no revision is checked out.
 
-    Output may be to a file, in which case the name of the file is
-    given using a format string. The formatting rules are the same as
-    for the export command, with the following additions:
+    Output may be to a file, in which case the name of the file is given using
+    a format string. The formatting rules are the same as for the export
+    command, with the following additions:
 
     %s   basename of file being printed
     %d   dirname of file being printed, or '.' if in repository root
--- a/tests/test-help.out	Tue Jul 07 23:30:48 2009 +0200
+++ b/tests/test-help.out	Tue Jul 07 23:54:30 2009 +0200
@@ -170,11 +170,10 @@
 
 add the specified files on the next commit
 
-    Schedule files to be version controlled and added to the
-    repository.
+    Schedule files to be version controlled and added to the repository.
 
-    The files will be added to the repository at the next commit. To
-    undo an add before that, see hg forget.
+    The files will be added to the repository at the next commit. To undo an
+    add before that, see hg forget.
 
     If no names are given, add all files to the repository.
 
@@ -190,11 +189,10 @@
 
 add the specified files on the next commit
 
-    Schedule files to be version controlled and added to the
-    repository.
+    Schedule files to be version controlled and added to the repository.
 
-    The files will be added to the repository at the next commit. To
-    undo an add before that, see hg forget.
+    The files will be added to the repository at the next commit. To undo an
+    add before that, see hg forget.
 
     If no names are given, add all files to the repository.
 
@@ -213,22 +211,21 @@
 
     Differences between files are shown using the unified diff format.
 
-    NOTE: diff may generate unexpected results for merges, as it will
-    default to comparing against the working directory's first parent
-    changeset if no revisions are specified.
+    NOTE: diff may generate unexpected results for merges, as it will default
+    to comparing against the working directory's first parent changeset if no
+    revisions are specified.
 
-    When two revision arguments are given, then changes are shown
-    between those revisions. If only one revision is specified then
-    that revision is compared to the working directory, and, when no
-    revisions are specified, the working directory files are compared
-    to its parent.
+    When two revision arguments are given, then changes are shown between
+    those revisions. If only one revision is specified then that revision is
+    compared to the working directory, and, when no revisions are specified,
+    the working directory files are compared to its parent.
 
-    Without the -a/--text option, diff will avoid generating diffs of
-    files it detects as binary. With -a, diff will generate a diff
-    anyway, probably with undesirable results.
+    Without the -a/--text option, diff will avoid generating diffs of files it
+    detects as binary. With -a, diff will generate a diff anyway, probably
+    with undesirable results.
 
-    Use the -g/--git option to generate diffs in the git extended diff
-    format. For more information, read 'hg help diffs'.
+    Use the -g/--git option to generate diffs in the git extended diff format.
+    For more information, read 'hg help diffs'.
 
 options:
 
@@ -252,24 +249,22 @@
 
 show changed files in the working directory
 
-    Show status of files in the repository. If names are given, only
-    files that match are shown. Files that are clean or ignored or
-    the source of a copy/move operation, are not listed unless
-    -c/--clean, -i/--ignored, -C/--copies or -A/--all are given.
-    Unless options described with "show only ..." are given, the
-    options -mardu are used.
+    Show status of files in the repository. If names are given, only files
+    that match are shown. Files that are clean or ignored or the source of a
+    copy/move operation, are not listed unless -c/--clean, -i/--ignored,
+    -C/--copies or -A/--all are given. Unless options described with "show
+    only ..." are given, the options -mardu are used.
 
-    Option -q/--quiet hides untracked (unknown and ignored) files
-    unless explicitly requested with -u/--unknown or -i/--ignored.
+    Option -q/--quiet hides untracked (unknown and ignored) files unless
+    explicitly requested with -u/--unknown or -i/--ignored.
 
-    NOTE: status may appear to disagree with diff if permissions have
-    changed or a merge has occurred. The standard diff format does not
-    report permission changes and diff only reports changes relative
-    to one merge parent.
+    NOTE: status may appear to disagree with diff if permissions have changed
+    or a merge has occurred. The standard diff format does not report
+    permission changes and diff only reports changes relative to one merge
+    parent.
 
-    If one revision is given, it is used as the base revision.
-    If two revisions are given, the differences between them are
-    shown.
+    If one revision is given, it is used as the base revision. If two
+    revisions are given, the differences between them are shown.
 
     The codes used to show the status of files are:
     M = modified