changeset 12247:bf2afc4bbbeb stable

merge with i18n-stable
author Martin Geisler <mg@lazybytes.net>
date Sat, 11 Sep 2010 00:39:34 +0200
parents 0f6164806283 (diff) 7853a550a61b (current diff)
children 81869cc892f2 4481f8a93c7a 2ca3a845f640
files
diffstat 46 files changed, 281 insertions(+), 134 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/mercurial.spec	Tue Sep 07 18:37:59 2010 -0300
+++ b/contrib/mercurial.spec	Sat Sep 11 00:39:34 2010 +0200
@@ -1,4 +1,4 @@
-Summary: Mercurial -- a distributed SCM
+Summary: A fast, lightweight Source Control Management system
 Name: mercurial
 Version: snapshot
 Release: 0
@@ -40,8 +40,8 @@
 rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir}
 
-install contrib/hgk          $RPM_BUILD_ROOT%{_bindir}
-install contrib/hg-ssh       $RPM_BUILD_ROOT%{_bindir}
+install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}
+install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}
 
 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
 mkdir -p $bash_completion_dir
@@ -52,11 +52,11 @@
 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
 
 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
-install contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}
-install contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}
+install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}
+install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}
 
 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
-install contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
+install -m 644 contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -66,15 +66,17 @@
 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi
 %doc %attr(644,root,root) %{_mandir}/man?/hg*
 %doc %attr(644,root,root) contrib/*.svg contrib/sample.hgrc
-%{_sysconfdir}/bash_completion.d/mercurial.sh
+%dir %{_datadir}/zsh/
+%dir %{_datadir}/zsh/site-functions/
 %{_datadir}/zsh/site-functions/_mercurial
+%dir %{_datadir}/emacs/site-lisp/
 %{_datadir}/emacs/site-lisp/mercurial.el
 %{_datadir}/emacs/site-lisp/mq.el
 %{_bindir}/hg
 %{_bindir}/hgk
 %{_bindir}/hg-ssh
 %dir %{_sysconfdir}/bash_completion.d/
-%dir %{_datadir}/zsh/site-functions/
+%config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
 %dir %{_sysconfdir}/mercurial
 %dir %{_sysconfdir}/mercurial/hgrc.d
 %config(noreplace) %{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
--- a/contrib/win32/mercurial.iss	Tue Sep 07 18:37:59 2010 -0300
+++ b/contrib/win32/mercurial.iss	Sat Sep 11 00:39:34 2010 +0200
@@ -52,6 +52,10 @@
 Source: contrib\hgk; DestDir: {app}/Contrib; DestName: hgk.tcl
 Source: contrib\xml.rnc; DestDir: {app}/Contrib
 Source: contrib\shrink-revlog.py; DestDir: {app}/Contrib
+Source: contrib\mercurial.el; DestDir: {app}/Contrib
+Source: contrib\mq.el; DestDir: {app}/Contrib
+Source: contrib\hgweb.fcgi; DestDir: {app}/Contrib
+Source: contrib\hgweb.wsgi; DestDir: {app}/Contrib
 Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme
 Source: contrib\mergetools.hgrc; DestDir: {tmp};
 Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; Check: CheckFile; AfterInstall: ConcatenateFiles;
--- a/hgext/bookmarks.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/bookmarks.py	Sat Sep 11 00:39:34 2010 +0200
@@ -18,7 +18,7 @@
 By default, when several bookmarks point to the same changeset, they
 will all move forward together. It is possible to obtain a more
 git-like experience by adding the following configuration option to
-your .hgrc::
+your configuration file::
 
   [bookmarks]
   track.current = True
@@ -451,7 +451,8 @@
                 ui.status(_("deleting remote bookmark %s\n") % b)
                 new = '' # delete
             else:
-                ui.warn(_('bookmark %s does not exist on the local or remote repository!\n') % b)
+                ui.warn(_('bookmark %s does not exist on the local '
+                          'or remote repository!\n') % b)
                 return 2
             old = rb.get(b, '')
             r = other.pushkey('bookmarks', b, old, new)
--- a/hgext/churn.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/churn.py	Sat Sep 11 00:39:34 2010 +0200
@@ -129,8 +129,14 @@
         aliases = repo.wjoin('.hgchurn')
     if aliases:
         for l in open(aliases, "r"):
-            alias, actual = l.split('=' in l and '=' or None, 1)
-            amap[alias.strip()] = actual.strip()
+            try:
+                alias, actual = l.split('=' in l and '=' or None, 1)
+                amap[alias.strip()] = actual.strip()
+            except ValueError:
+                l = l.strip()
+                if l:
+                    ui.warn(_("skipping malformed alias: %s\n" % l))
+                continue
 
     rate = countrate(ui, repo, amap, *pats, **opts).items()
     if not rate:
--- a/hgext/color.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/color.py	Sat Sep 11 00:39:34 2010 +0200
@@ -29,7 +29,7 @@
 function (aka ANSI escape codes). This module also provides the
 render_text function, which can be used to add effects to any text.
 
-Default effects may be overridden from the .hgrc file::
+Default effects may be overridden from your configuration file::
 
   [color]
   status.modified = blue bold underline red_background
--- a/hgext/convert/__init__.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/convert/__init__.py	Sat Sep 11 00:39:34 2010 +0200
@@ -40,7 +40,7 @@
     (given in a format understood by the source).
 
     If no destination directory name is specified, it defaults to the
-    basename of the source with '-hg' appended. If the destination
+    basename of the source with ``-hg`` appended. If the destination
     repository doesn't exist, it will be created.
 
     By default, all sources except Mercurial will use --branchsort.
@@ -67,14 +67,17 @@
       <source ID> <destination ID>
 
     If the file doesn't exist, it's automatically created. It's
-    updated on each commit copied, so convert-repo can be interrupted
+    updated on each commit copied, so :hg:`convert` can be interrupted
     and can be run repeatedly to copy new commits.
 
-    The [username mapping] file is a simple text file that maps each
+    The username mapping file is a simple text file that maps each
     source commit author to a destination commit author. It is handy
     for source SCMs that use unix logins to identify authors (eg:
-    CVS). One line per author mapping and the line format is:
-    srcauthor=whatever string you want
+    CVS). One line per author mapping and the line format is::
+
+      source author = destination author
+
+    Empty lines and lines starting with a ``#`` are ignored.
 
     The filemap is a file that allows filtering and remapping of files
     and directories. Each line can contain one of the following
@@ -86,25 +89,29 @@
 
       rename path/to/source path/to/destination
 
-    Comment lines start with '#'. A specificed path matches if it
+    Comment lines start with ``#``. A specificed path matches if it
     equals the full relative name of a file or one of its parent
-    directories. The 'include' or 'exclude' directive with the longest
-    matching path applies, so line order does not matter.
+    directories. The ``include`` or ``exclude`` directive with the
+    longest matching path applies, so line order does not matter.
 
-    The 'include' directive causes a file, or all files under a
+    The ``include`` directive causes a file, or all files under a
     directory, to be included in the destination repository, and the
     exclusion of all other files and directories not explicitly
-    included. The 'exclude' directive causes files or directories to
-    be omitted. The 'rename' directive renames a file or directory if
+    included. The ``exclude`` directive causes files or directories to
+    be omitted. The ``rename`` directive renames a file or directory if
     is converted. To rename from a subdirectory into the root of the
-    repository, use '.' as the path to rename to.
+    repository, use ``.`` as the path to rename to.
 
     The splicemap is a file that allows insertion of synthetic
     history, letting you specify the parents of a revision. This is
     useful if you want to e.g. give a Subversion merge two parents, or
     graft two disconnected series of history together. Each entry
     contains a key, followed by a space, followed by one or two
-    comma-separated values. The key is the revision ID in the source
+    comma-separated values::
+
+      key parent1, parent2
+
+    The key is the revision ID in the source
     revision control system whose parents should be modified (same
     format as a key in .hg/shamap). The values are the revision IDs
     (in either the source or destination revision control system) that
@@ -118,11 +125,15 @@
     conjunction with a splicemap, it allows for a powerful combination
     to help fix even the most badly mismanaged repositories and turn them
     into nicely structured Mercurial repositories. The branchmap contains
-    lines of the form "original_branch_name new_branch_name".
-    "original_branch_name" is the name of the branch in the source
-    repository, and "new_branch_name" is the name of the branch is the
-    destination repository. This can be used to (for instance) move code
-    in one repository from "default" to a named branch.
+    lines of the form::
+
+      original_branch_name new_branch_name
+
+    where "original_branch_name" is the name of the branch in the
+    source repository, and "new_branch_name" is the name of the branch
+    is the destination repository. No whitespace is allowed in the
+    branch names. This can be used to (for instance) move code in one
+    repository from "default" to a named branch.
 
     Mercurial Source
     ----------------
--- a/hgext/gpg.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/gpg.py	Sat Sep 11 00:39:34 2010 +0200
@@ -227,7 +227,7 @@
         data = node2txt(repo, n, sigver)
         sig = mygpg.sign(data)
         if not sig:
-            raise util.Abort(_("Error while signing"))
+            raise util.abort(_("error while signing"))
         sig = binascii.b2a_base64(sig)
         sig = sig.replace("\n", "")
         sigmessage += "%s %s %s\n" % (hexnode, sigver, sig)
--- a/hgext/hgk.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/hgk.py	Sat Sep 11 00:39:34 2010 +0200
@@ -19,7 +19,7 @@
 
 The :hg:`view` command will launch the hgk Tcl script. For this command
 to work, hgk must be in your search path. Alternately, you can specify
-the path to hgk in your .hgrc file::
+the path to hgk in your configuration file::
 
   [hgk]
   path=/location/of/hgk
--- a/hgext/keyword.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/keyword.py	Sat Sep 11 00:39:34 2010 +0200
@@ -35,6 +35,9 @@
 change history. The mechanism can be regarded as a convenience for the
 current user or for archive distribution.
 
+Keywords expand to the changeset data pertaining to the latest change
+relative to the working directory parent of each file.
+
 Configuration is done in the [keyword], [keywordset] and [keywordmaps]
 sections of hgrc files.
 
--- a/hgext/mq.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/mq.py	Sat Sep 11 00:39:34 2010 +0200
@@ -2083,7 +2083,7 @@
     if not files:
         raise util.Abort(_('qfold requires at least one patch name'))
     if not q.check_toppatch(repo)[0]:
-        raise util.Abort(_('No patches applied'))
+        raise util.Abort(_('no patches applied'))
     q.check_localchanges(repo)
 
     message = cmdutil.logmessage(opts)
@@ -2110,7 +2110,7 @@
         pf = q.join(p)
         (patchsuccess, files, fuzz) = q.patch(repo, pf)
         if not patchsuccess:
-            raise util.Abort(_('Error folding patch %s') % p)
+            raise util.Abort(_('error folding patch %s') % p)
         patch.updatedir(ui, repo, files)
 
     if not message:
@@ -2799,7 +2799,7 @@
     else:
         repopath = cmdutil.findrepo(os.getcwd())
         if not repopath:
-            raise util.Abort(_('There is no Mercurial repository here '
+            raise util.Abort(_('there is no Mercurial repository here '
                                '(.hg not found)'))
     repo = hg.repository(ui, repopath)
     return qinit(ui, repo, True)
--- a/hgext/pager.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/pager.py	Sat Sep 11 00:39:34 2010 +0200
@@ -5,7 +5,7 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 #
-# To load the extension, add it to your .hgrc file:
+# To load the extension, add it to your configuration file:
 #
 #   [extension]
 #   pager =
@@ -46,7 +46,7 @@
 If pager.attend is present, pager.ignore will be ignored.
 
 To ignore global commands like :hg:`version` or :hg:`help`, you have
-to specify them in the global .hgrc
+to specify them in your user configuration file.
 '''
 
 import sys, os, signal, shlex, errno
--- a/hgext/transplant.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/hgext/transplant.py	Sat Sep 11 00:39:34 2010 +0200
@@ -234,7 +234,7 @@
                 p2 = node
                 self.log(user, date, message, p1, p2, merge=merge)
                 self.ui.write(str(inst) + '\n')
-                raise util.Abort(_('Fix up the merge and run '
+                raise util.Abort(_('fix up the merge and run '
                                    'hg transplant --continue'))
         else:
             files = None
--- a/mercurial/commands.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/commands.py	Sat Sep 11 00:39:34 2010 +0200
@@ -846,7 +846,7 @@
         lookup = r.lookup
     elif len(args) == 2:
         if not repo:
-            raise util.Abort(_("There is no Mercurial repository here "
+            raise util.Abort(_("there is no Mercurial repository here "
                                "(.hg not found)"))
         rev1, rev2 = args
         r = repo.changelog
@@ -1341,7 +1341,8 @@
     if patchproblems:
         if ui.config('ui', 'patch'):
             ui.write(_(" (Current patch tool may be incompatible with patch,"
-                       " or misconfigured. Please check your .hgrc file)\n"))
+                       " or misconfigured. Please check your configuration"
+                       " file)\n"))
         else:
             ui.write(_(" Internal patcher failure, please report this error"
                        " to http://mercurial.selenic.com/bts/\n"))
@@ -1357,10 +1358,12 @@
     if not cmdpath:
         if editor == 'vi':
             ui.write(_(" No commit editor set and can't find vi in PATH\n"))
-            ui.write(_(" (specify a commit editor in your .hgrc file)\n"))
+            ui.write(_(" (specify a commit editor in your configuration"
+                       " file)\n"))
         else:
             ui.write(_(" Can't find editor '%s' in PATH\n") % editor)
-            ui.write(_(" (specify a commit editor in your .hgrc file)\n"))
+            ui.write(_(" (specify a commit editor in your configuration"
+                       " file)\n"))
             problems += 1
 
     # check username
@@ -1369,7 +1372,7 @@
         user = ui.username()
     except util.Abort, e:
         ui.write(" %s\n" % e)
-        ui.write(_(" (specify a username in your .hgrc file)\n"))
+        ui.write(_(" (specify a username in your configuration file)\n"))
         problems += 1
 
     if not problems:
@@ -2105,7 +2108,7 @@
     """
 
     if not repo and not source:
-        raise util.Abort(_("There is no Mercurial repository here "
+        raise util.Abort(_("there is no Mercurial repository here "
                            "(.hg not found)"))
 
     hexfunc = ui.debugflag and hex or short
@@ -2727,8 +2730,8 @@
     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
+    Path names are defined in the [paths] section of your
+    configuration file and in ``/etc/mercurial/hgrc``. If run inside a
     repository, ``.hg/hgrc`` is used, too.
 
     The path names ``default`` and ``default-push`` have a special
@@ -2798,7 +2801,7 @@
         try:
             revs = [other.lookup(rev) for rev in revs]
         except error.CapabilityError:
-            err = _("Other repository doesn't support revision lookup, "
+            err = _("other repository doesn't support revision lookup, "
                     "so a rev cannot be specified.")
             raise util.Abort(err)
 
@@ -2913,21 +2916,24 @@
             ui.warn(_('not removing %s: file is untracked\n') % m.rel(f))
             ret = 1
 
-    def warn(files, reason):
-        for f in files:
-            ui.warn(_('not removing %s: file %s (use -f to force removal)\n')
-                    % (m.rel(f), reason))
-            ret = 1
-
     if force:
         remove, forget = modified + deleted + clean, added
     elif after:
         remove, forget = deleted, []
-        warn(modified + added + clean, _('still exists'))
+        for f in modified + added + clean:
+            ui.warn(_('not removing %s: file still exists (use -f'
+                      ' to force removal)\n') % m.rel(f))
+            ret = 1
     else:
         remove, forget = deleted + clean, []
-        warn(modified, _('is modified'))
-        warn(added, _('has been marked for add'))
+        for f in modified:
+            ui.warn(_('not removing %s: file is modified (use -f'
+                      ' to force removal)\n') % m.rel(f))
+            ret = 1
+        for f in added:
+            ui.warn(_('not removing %s: file has been marked for add (use -f'
+                      ' to force removal)\n') % m.rel(f))
+            ret = 1
 
     for f in sorted(remove + forget):
         if ui.verbose or not m.exact(f):
@@ -2963,11 +2969,11 @@
     """redo merges or set/view the merge status of files
 
     Merges with unresolved conflicts are often the result of
-    non-interactive merging using the ``internal:merge`` hgrc setting,
-    or a command-line merge tool like ``diff3``. The resolve command
-    is used to manage the files involved in a merge, after :hg:`merge`
-    has been run, and before :hg:`commit` is run (i.e. the working
-    directory must have two parents).
+    non-interactive merging using the ``internal:merge`` configuration
+    setting, or a command-line merge tool like ``diff3``. The resolve
+    command is used to manage the files involved in a merge, after
+    :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the
+    working directory must have two parents).
 
     The resolve command can be used in the following ways:
 
--- a/mercurial/context.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/context.py	Sat Sep 11 00:39:34 2010 +0200
@@ -198,7 +198,7 @@
             if match(fn):
                 yield fn
         for fn in sorted(fset):
-            if match.bad(fn, _('No such file in rev %s') % self) and match(fn):
+            if match.bad(fn, _('no such file in rev %s') % self) and match(fn):
                 yield fn
 
     def sub(self, path):
--- a/mercurial/dagparser.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/dagparser.py	Sat Sep 11 00:39:34 2010 +0200
@@ -268,7 +268,7 @@
                 s += c
                 i += 1
                 c = nextch()
-            raise util.Abort("invalid character in dag description: %s..." % s)
+            raise util.Abort(_("invalid character in dag description: %s...") % s)
 
 def dagtextlines(events,
                  addspaces=True,
@@ -296,14 +296,14 @@
 
                 # sanity check
                 if r != wantr:
-                    raise util.Abort("Expected id %i, got %i" % (wantr, r))
+                    raise util.Abort(_("expected id %i, got %i") % (wantr, r))
                 if not ps:
                     ps = [-1]
                 else:
                     for p in ps:
                         if p >= r:
-                            raise util.Abort("Parent id %i is larger than "
-                                             "current id %i" % (p, r))
+                            raise util.Abort(_("parent id %i is larger than "
+                                               "current id %i") % (p, r))
                 wantr += 1
 
                 # new root?
--- a/mercurial/dispatch.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/dispatch.py	Sat Sep 11 00:39:34 2010 +0200
@@ -424,9 +424,9 @@
     cmd, func, args, options, cmdoptions = _parse(lui, args)
 
     if options["config"]:
-        raise util.Abort(_("Option --config may not be abbreviated!"))
+        raise util.Abort(_("option --config may not be abbreviated!"))
     if options["cwd"]:
-        raise util.Abort(_("Option --cwd may not be abbreviated!"))
+        raise util.Abort(_("option --cwd may not be abbreviated!"))
     if options["repository"]:
         raise util.Abort(_(
             "Option -R has to be separated from other options (e.g. not -qR) "
--- a/mercurial/hbisect.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/hbisect.py	Sat Sep 11 00:39:34 2010 +0200
@@ -63,7 +63,7 @@
     if not ancestors: # now we're confused
         if len(state['bad']) == 1 and len(state['good']) == 1:
             raise util.Abort(_("starting revisions are not directly related"))
-        raise util.Abort(_("Inconsistent state, %s:%s is good and bad")
+        raise util.Abort(_("inconsistent state, %s:%s is good and bad")
                          % (badrev, short(bad)))
 
     # build children dict
--- a/mercurial/help.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/help.py	Sat Sep 11 00:39:34 2010 +0200
@@ -83,7 +83,7 @@
     return loader
 
 helptable = [
-    (["config"], _("Configuration Files"), loaddoc('config')),
+    (["config", "hgrc"], _("Configuration Files"), loaddoc('config')),
     (["dates"], _("Date Formats"), loaddoc('dates')),
     (["patterns"], _("File Name Patterns"), loaddoc('patterns')),
     (['environment', 'env'], _('Environment Variables'),
--- a/mercurial/help/diffs.txt	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/help/diffs.txt	Sat Sep 11 00:39:34 2010 +0200
@@ -25,5 +25,5 @@
 
 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.
+section of your configuration file. You do not need to set this option
+when importing diffs in this format or using them in the mq extension.
--- a/mercurial/help/environment.txt	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/help/environment.txt	Sat Sep 11 00:39:34 2010 +0200
@@ -8,7 +8,7 @@
 HGEDITOR
     This is the name of the editor to run when committing. See EDITOR.
 
-    (deprecated, use .hgrc)
+    (deprecated, use configuration file)
 
 HGENCODING
     This overrides the default locale setting detected by Mercurial.
@@ -29,13 +29,13 @@
     will be executed with three arguments: local file, remote file,
     ancestor file.
 
-    (deprecated, use .hgrc)
+    (deprecated, use configuration file)
 
 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 configuration
+    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:
 
@@ -43,9 +43,9 @@
     - otherwise, the file itself will be added
 
 HGPLAIN
-    When set, this disables any options in .hgrc that might change
-    Mercurial's default output. This includes encoding, defaults,
-    verbose mode, debug mode, quiet mode, tracebacks, and
+    When set, this disables any configuration settings that might
+    change Mercurial's default output. This includes encoding,
+    defaults, verbose mode, debug mode, quiet mode, tracebacks, and
     localization. This can be useful when scripting against Mercurial
     in the face of existing user configuration.
 
@@ -57,12 +57,12 @@
     available values will be considered in this order:
 
     - HGUSER (deprecated)
-    - hgrc files from the HGRCPATH
+    - configuration files from the HGRCPATH
     - EMAIL
     - interactive prompt
     - LOGNAME (with ``@hostname`` appended)
 
-    (deprecated, use .hgrc)
+    (deprecated, use configuration file)
 
 EMAIL
     May be used as the author of a commit; see HGUSER.
--- a/mercurial/help/extensions.txt	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/help/extensions.txt	Sat Sep 11 00:39:34 2010 +0200
@@ -11,9 +11,9 @@
 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 configuration file,
+like this::
 
   [extensions]
   foo =
@@ -23,8 +23,8 @@
   [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 a configuration file of
+broader scope, prepend its path with !::
 
   [extensions]
   # disabling extension bar residing in /path/to/extension/bar.py
--- a/mercurial/help/urls.txt	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/help/urls.txt	Sat Sep 11 00:39:34 2010 +0200
@@ -35,11 +35,11 @@
     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
+  configuration file 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 configuration file with path
+aliases under the [paths] section like so::
 
   [paths]
   alias1 = URL1
--- a/mercurial/localrepo.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/localrepo.py	Sat Sep 11 00:39:34 2010 +0200
@@ -1199,7 +1199,7 @@
                 cg = remote.changegroup(fetch, 'pull')
             else:
                 if not remote.capable('changegroupsubset'):
-                    raise util.Abort(_("Partial pull cannot be done because "
+                    raise util.Abort(_("partial pull cannot be done because "
                                        "other repository doesn't support "
                                        "changegroupsubset."))
                 cg = remote.changegroupsubset(fetch, heads, 'pull')
--- a/mercurial/mail.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/mail.py	Sat Sep 11 00:39:34 2010 +0200
@@ -36,7 +36,7 @@
     s = smtplib.SMTP(local_hostname=local_hostname)
     mailhost = ui.config('smtp', 'host')
     if not mailhost:
-        raise util.Abort(_('no [smtp]host in hgrc - cannot send mail'))
+        raise util.Abort(_('smtp.host not configured - cannot send mail'))
     mailport = int(ui.config('smtp', 'port', 25))
     ui.note(_('sending mail: smtp host %s, port %s\n') %
             (mailhost, mailport))
--- a/mercurial/match.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/match.py	Sat Sep 11 00:39:34 2010 +0200
@@ -7,6 +7,7 @@
 
 import re
 import util
+from i18n import _
 
 class match(object):
     def __init__(self, root, cwd, patterns, include=[], exclude=[],
@@ -214,8 +215,8 @@
             try:
                 re.compile('(?:%s)' % _regex(k, p, tail))
             except re.error:
-                raise util.Abort("invalid pattern (%s): %s" % (k, p))
-        raise util.Abort("invalid pattern")
+                raise util.Abort(_("invalid pattern (%s): %s") % (k, p))
+        raise util.Abort(_("invalid pattern"))
 
 def _normalize(names, default, root, cwd):
     pats = []
--- a/mercurial/patch.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/patch.py	Sat Sep 11 00:39:34 2010 +0200
@@ -1284,7 +1284,7 @@
     if eolmode is None:
         eolmode = ui.config('patch', 'eol', 'strict')
     if eolmode.lower() not in eolmodes:
-        raise util.Abort(_('Unsupported line endings type: %s') % eolmode)
+        raise util.Abort(_('unsupported line endings type: %s') % eolmode)
     eolmode = eolmode.lower()
 
     try:
--- a/mercurial/simplemerge.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/simplemerge.py	Sat Sep 11 00:39:34 2010 +0200
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
 # Copyright (C) 2004, 2005 Canonical Ltd
 #
 # This program is free software; you can redistribute it and/or modify
--- a/mercurial/verify.py	Tue Sep 07 18:37:59 2010 -0300
+++ b/mercurial/verify.py	Sat Sep 11 00:39:34 2010 +0200
@@ -199,7 +199,7 @@
     for f, f2, size in repo.store.datafiles():
         if not f:
             err(None, _("cannot decode filename '%s'") % f2)
-        elif size > 0:
+        elif size > 0 or not revlogv1:
             storefiles.add(f)
 
     files = sorted(set(filenodes) | set(filelinkrevs))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/revlog-formatv0.py	Sat Sep 11 00:39:34 2010 +0200
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+# Copyright 2010 Intevation GmbH
+# Author(s):
+# Thomas Arendsen Hein <thomas@intevation.de>
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+"""Create a Mercurial repository in revlog format 0
+
+changeset:   0:a1ef0b125355
+tag:         tip
+user:        user
+date:        Thu Jan 01 00:00:00 1970 +0000
+files:       empty
+description:
+empty file
+"""
+
+import os, sys
+
+files = [
+    ('formatv0/.hg/00changelog.i',
+     '000000000000004400000000000000000000000000000000000000'
+     '000000000000000000000000000000000000000000000000000000'
+     '0000a1ef0b125355d27765928be600cfe85784284ab3'),
+    ('formatv0/.hg/00changelog.d',
+     '756163613935613961356635353036303562366138343738336237'
+     '61623536363738616436356635380a757365720a3020300a656d70'
+     '74790a0a656d7074792066696c65'),
+    ('formatv0/.hg/00manifest.i',
+     '000000000000003000000000000000000000000000000000000000'
+     '000000000000000000000000000000000000000000000000000000'
+     '0000aca95a9a5f550605b6a84783b7ab56678ad65f58'),
+    ('formatv0/.hg/00manifest.d',
+     '75656d707479006238306465356431333837353835343163356630'
+     '35323635616431343461623966613836643164620a'),
+    ('formatv0/.hg/data/empty.i',
+     '000000000000000000000000000000000000000000000000000000'
+     '000000000000000000000000000000000000000000000000000000'
+     '0000b80de5d138758541c5f05265ad144ab9fa86d1db'),
+    ('formatv0/.hg/data/empty.d',
+     ''),
+]
+
+def makedirs(name):
+    """recursive directory creation"""
+    parent = os.path.dirname(name)
+    if parent:
+        makedirs(parent)
+    os.mkdir(name)
+
+makedirs(os.path.join(*'formatv0/.hg/data'.split('/')))
+
+for name, data in files:
+    f = open(name, 'wb')
+    f.write(data.decode('hex'))
+    f.close()
+
+sys.exit(0)
--- a/tests/test-cat.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-cat.out	Sat Sep 11 00:39:34 2010 +0200
@@ -4,5 +4,5 @@
 0
 0
 0
-a: No such file in rev 03f6b0774996
+a: no such file in rev 03f6b0774996
 1
--- a/tests/test-churn	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-churn	Sat Sep 11 00:39:34 2010 +0200
@@ -38,7 +38,9 @@
 echo % churn with aliases
 cat > ../aliases <<EOF
 user1 alias1
+
 user3 alias3
+not-an-alias
 EOF
 hg churn --aliases ../aliases
 echo % churn with .hgchurn
--- a/tests/test-churn.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-churn.out	Sat Sep 11 00:39:34 2010 +0200
@@ -16,10 +16,12 @@
 user2      2 ***************************************************************
 user1      1 ********************************
 % churn with aliases
+skipping malformed alias: not-an-alias
 alias3      3 **************************************************************
 alias1      3 **************************************************************
 user2       2 *****************************************
 % churn with .hgchurn
+skipping malformed alias: not-an-alias
 alias3      3 **************************************************************
 alias1      3 **************************************************************
 user2       2 *****************************************
--- a/tests/test-convert-cvs	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-convert-cvs	Sat Sep 11 00:39:34 2010 +0200
@@ -134,6 +134,7 @@
 
 echo % commit new file revisions with some fuzz
 cd src
+sleep 1
 echo f >> a
 cvscall -q commit -mfuzzy . | grep '<--' |\
     sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
--- a/tests/test-convert.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-convert.out	Sat Sep 11 00:39:34 2010 +0200
@@ -24,7 +24,7 @@
     understood by the source).
 
     If no destination directory name is specified, it defaults to the basename
-    of the source with '-hg' appended. If the destination repository doesn't
+    of the source with "-hg" appended. If the destination repository doesn't
     exist, it will be created.
 
     By default, all sources except Mercurial will use --branchsort. Mercurial
@@ -48,13 +48,17 @@
       <source ID> <destination ID>
 
     If the file doesn't exist, it's automatically created. It's updated on
-    each commit copied, so convert-repo can be interrupted and can be run
+    each commit copied, so "hg convert" can be interrupted and can be run
     repeatedly to copy new commits.
 
-    The [username mapping] file is a simple text file that maps each source
+    The username mapping file is a simple text file that maps each source
     commit author to a destination commit author. It is handy for source SCMs
     that use unix logins to identify authors (eg: CVS). One line per author
-    mapping and the line format is: srcauthor=whatever string you want
+    mapping and the line format is:
+
+      source author = destination author
+
+    Empty lines and lines starting with a "#" are ignored.
 
     The filemap is a file that allows filtering and remapping of files and
     directories. Each line can contain one of the following directives:
@@ -65,40 +69,48 @@
 
       rename path/to/source path/to/destination
 
-    Comment lines start with '#'. A specificed path matches if it equals the
+    Comment lines start with "#". A specificed path matches if it equals the
     full relative name of a file or one of its parent directories. The
-    'include' or 'exclude' directive with the longest matching path applies,
+    "include" or "exclude" directive with the longest matching path applies,
     so line order does not matter.
 
-    The 'include' directive causes a file, or all files under a directory, to
+    The "include" directive causes a file, or all files under a directory, to
     be included in the destination repository, and the exclusion of all other
-    files and directories not explicitly included. The 'exclude' directive
-    causes files or directories to be omitted. The 'rename' directive renames
+    files and directories not explicitly included. The "exclude" directive
+    causes files or directories to be omitted. The "rename" directive renames
     a file or directory if is converted. To rename from a subdirectory into
-    the root of the repository, use '.' as the path to rename to.
+    the root of the repository, use "." as the path to rename to.
 
     The splicemap is a file that allows insertion of synthetic history,
     letting you specify the parents of a revision. This is useful if you want
     to e.g. give a Subversion merge two parents, or graft two disconnected
     series of history together. Each entry contains a key, followed by a
-    space, followed by one or two comma-separated values. The key is the
-    revision ID in the source revision control system whose parents should be
-    modified (same format as a key in .hg/shamap). The values are the revision
-    IDs (in either the source or destination revision control system) that
-    should be used as the new parents for that node. For example, if you have
-    merged "release-1.0" into "trunk", then you should specify the revision on
-    "trunk" as the first parent and the one on the "release-1.0" branch as the
-    second.
+    space, followed by one or two comma-separated values:
+
+      key parent1, parent2
+
+    The key is the revision ID in the source revision control system whose
+    parents should be modified (same format as a key in .hg/shamap). The
+    values are the revision IDs (in either the source or destination revision
+    control system) that should be used as the new parents for that node. For
+    example, if you have merged "release-1.0" into "trunk", then you should
+    specify the revision on "trunk" as the first parent and the one on the
+    "release-1.0" branch as the second.
 
     The branchmap is a file that allows you to rename a branch when it is
     being brought in from whatever external repository. When used in
     conjunction with a splicemap, it allows for a powerful combination to help
     fix even the most badly mismanaged repositories and turn them into nicely
     structured Mercurial repositories. The branchmap contains lines of the
-    form "original_branch_name new_branch_name". "original_branch_name" is the
-    name of the branch in the source repository, and "new_branch_name" is the
-    name of the branch is the destination repository. This can be used to (for
-    instance) move code in one repository from "default" to a named branch.
+    form:
+
+      original_branch_name new_branch_name
+
+    where "original_branch_name" is the name of the branch in the source
+    repository, and "new_branch_name" is the name of the branch is the
+    destination repository. No whitespace is allowed in the branch names. This
+    can be used to (for instance) move code in one repository from "default"
+    to a named branch.
 
     Mercurial Source
     ----------------
--- a/tests/test-dispatch.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-dispatch.out	Sat Sep 11 00:39:34 2010 +0200
@@ -32,6 +32,6 @@
 use "hg -v help cat" to show global options
 % [defaults]
 a
-a: No such file in rev 000000000000
+a: no such file in rev 000000000000
 % no repo
 abort: There is no Mercurial repository here (.hg not found)!
--- a/tests/test-globalopts.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-globalopts.out	Sat Sep 11 00:39:34 2010 +0200
@@ -56,8 +56,8 @@
 %% earlygetopt short option without following space
 0:b6c483daf290
 %% earlygetopt with illegal abbreviations
-abort: Option --config may not be abbreviated!
-abort: Option --cwd may not be abbreviated!
+abort: option --config may not be abbreviated!
+abort: option --cwd may not be abbreviated!
 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
--- a/tests/test-identify.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-identify.out	Sat Sep 11 00:39:34 2010 +0200
@@ -1,5 +1,5 @@
 % no repo
-abort: There is no Mercurial repository here (.hg not found)
+abort: there is no Mercurial repository here (.hg not found)
 % create repo
 adding a
 % basic id usage
--- a/tests/test-import-eol.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-import-eol.out	Sat Sep 11 00:39:34 2010 +0200
@@ -2,7 +2,7 @@
 adding a
 % invalid eol
 applying eol.diff
-abort: Unsupported line endings type: LFCR
+abort: unsupported line endings type: LFCR
 % force LF
 applying eol.diff
 'a\nyyyy\ncc\n\nd\ne'
--- a/tests/test-install.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-install.out	Sat Sep 11 00:39:34 2010 +0200
@@ -14,5 +14,5 @@
 Checking commit editor...
 Checking username...
  no username supplied (see "hg help config")
- (specify a username in your .hgrc file)
+ (specify a username in your configuration file)
 1 problems detected, please check your install!
--- a/tests/test-mq.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-mq.out	Sat Sep 11 00:39:34 2010 +0200
@@ -99,7 +99,7 @@
 A B
 A series
 % init --mq without repo
-abort: There is no Mercurial repository here (.hg not found)
+abort: there is no Mercurial repository here (.hg not found)
 % init --mq with repo path
 ok
 % init --mq with nonexistent directory
--- a/tests/test-remove	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-remove	Sat Sep 11 00:39:34 2010 +0200
@@ -2,6 +2,7 @@
 
 remove() {
     hg rm $@
+    echo "exit code: $?"
     hg st
     # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5
     find . -name .hg -prune -o -type f -print | sort
--- a/tests/test-remove.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-remove.out	Sat Sep 11 00:39:34 2010 +0200
@@ -1,83 +1,100 @@
 % file not managed
 not removing foo: file is untracked
+exit code: 1
 ? foo
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 00 state added, options none
 not removing bar: file has been marked for add (use -f to force removal)
+exit code: 1
 A bar
 ./bar
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 01 state clean, options none
+exit code: 0
 R foo
 ? bar
 ./bar
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 02 state modified, options none
 not removing foo: file is modified (use -f to force removal)
+exit code: 1
 M foo
 ? bar
 ./bar
 ./foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 03 state missing, options none
+exit code: 0
 R foo
 ? bar
 ./bar
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 10 state added, options -f
+exit code: 0
 ? bar
 ./bar
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 11 state clean, options -f
+exit code: 0
 R foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 12 state modified, options -f
+exit code: 0
 R foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 13 state missing, options -f
+exit code: 0
 R foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 20 state added, options -A
 not removing bar: file still exists (use -f to force removal)
+exit code: 1
 A bar
 ./bar
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 21 state clean, options -A
 not removing foo: file still exists (use -f to force removal)
+exit code: 1
 ? bar
 ./bar
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 22 state modified, options -A
 not removing foo: file still exists (use -f to force removal)
+exit code: 1
 M foo
 ? bar
 ./bar
 ./foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 23 state missing, options -A
+exit code: 0
 R foo
 ? bar
 ./bar
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 30 state added, options -Af
+exit code: 0
 ? bar
 ./bar
 ./foo
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 31 state clean, options -Af
+exit code: 0
 R foo
 ./foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 32 state modified, options -Af
+exit code: 0
 R foo
 ./foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 33 state missing, options -Af
+exit code: 0
 R foo
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 adding test/bar
@@ -85,6 +102,7 @@
 % dir, options none
 removing test/bar
 removing test/foo
+exit code: 0
 R test/bar
 R test/foo
 ./foo
@@ -92,6 +110,7 @@
 % dir, options -f
 removing test/bar
 removing test/foo
+exit code: 0
 R test/bar
 R test/foo
 ./foo
@@ -99,6 +118,7 @@
 % dir, options -A
 not removing test/foo: file still exists (use -f to force removal)
 removing test/bar
+exit code: 1
 R test/bar
 ./foo
 ./test/foo
@@ -106,6 +126,7 @@
 % dir, options -Af
 removing test/bar
 removing test/foo
+exit code: 0
 R test/bar
 R test/foo
 ./foo
--- a/tests/test-revert.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-revert.out	Sat Sep 11 00:39:34 2010 +0200
@@ -37,7 +37,7 @@
 %% should say file not managed
 file not managed: q
 %% should say file not found
-notfound: No such file in rev 095eacd0c0d7
+notfound: no such file in rev 095eacd0c0d7
 A z
 ? e.orig
 %% should add a, remove d, forget z
--- a/tests/test-transplant.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-transplant.out	Sat Sep 11 00:39:34 2010 +0200
@@ -112,14 +112,14 @@
 Hunk #1 FAILED at 0
 1 out of 1 hunks FAILED -- saving rejects to file foo.rej
 patch failed to apply
-abort: Fix up the merge and run hg transplant --continue
+abort: fix up the merge and run hg transplant --continue
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 applying a1e30dd1b8e7
 patching file foo
 Hunk #1 FAILED at 0
 1 out of 1 hunks FAILED -- saving rejects to file foo.rej
 patch failed to apply
-abort: Fix up the merge and run hg transplant --continue
+abort: fix up the merge and run hg transplant --continue
 a1e30dd1b8e7 transplanted as f1563cf27039
 skipping already applied revision 1:a1e30dd1b8e7
 applying 1739ac5f6139
@@ -166,7 +166,7 @@
 created new head
 file b1 already exists
 1 out of 1 hunks FAILED -- saving rejects to file b1.rej
-abort: Fix up the merge and run hg transplant --continue
+abort: fix up the merge and run hg transplant --continue
 filtering
 applying 348b36d0b6a5
 patch failed to apply
--- a/tests/test-verify	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-verify	Sat Sep 11 00:39:34 2010 +0200
@@ -48,4 +48,12 @@
 echo % verify
 hg verify
 
+cd ..
+
+echo % test revlog format 0
+
+"$TESTDIR/revlog-formatv0.py"
+cd formatv0
+hg verify
+
 exit 0
--- a/tests/test-verify.out	Tue Sep 07 18:37:59 2010 -0300
+++ b/tests/test-verify.out	Sat Sep 11 00:39:34 2010 +0200
@@ -50,3 +50,10 @@
 1 warnings encountered!
 1 integrity errors encountered!
 (first damaged changeset appears to be 0)
+% test revlog format 0
+repository uses revlog format 0
+checking changesets
+checking manifests
+crosschecking files in changesets and manifests
+checking files
+1 files, 1 changesets, 1 total revisions