merge with stable
authorMatt Mackall <mpm@selenic.com>
Fri, 01 Aug 2014 18:32:52 -0500
changeset 21976 3467cf39aae6
parent 21925 7142e04b438e (current diff)
parent 21975 8cab8a5006a5 (diff)
child 21977 4ca4e1572022
merge with stable
--- a/.hgsigs	Fri Jul 18 19:46:56 2014 -0400
+++ b/.hgsigs	Fri Aug 01 18:32:52 2014 -0500
@@ -90,3 +90,5 @@
 2195ac506c6ababe86985b932f4948837c0891b5 0 iQIVAwUAU2LO/CBXgaxoKi1yAQI/3w/7BT/VRPyxey6tYp7i5cONIlEB3gznebGYwm0SGYNE6lsvS2VLh6ztb+j4eqOadr8Ssna6bslBx+dVsm+VuJ+vrNLMucD5Uc+fhn6dAfVqg+YBzUEaedI5yNsJizcJUDI7hUVsxiPiiYd9hchCWJ+z2tVt2jCyG2lMV2rbW36AM89sgz/wn5/AaAFsgoS6up/uzA3Tmw+qZSO6dZChb4Q8midIUWEbNzVhokgYcw7/HmjmvkvV9RJYiG8aBnMdQmxTE69q2dTjnnDL6wu61WU2FpTN09HRFbemUqzAfoJp8MmXq6jWgfLcm0cI3kRo7ZNpnEkmVKsfKQCXXiaR4alt9IQpQ6Jl7LSYsYI+D4ejpYysIsZyAE8qzltYhBKJWqO27A5V4WdJsoTgA/RwKfPRlci4PY8I4N466S7PBXVz/Cc5EpFkecvrgceTmBafb8JEi+gPiD2Po4vtW3bCeV4xldiEXHeJ77byUz7fZU7jL78SjJVOCCQTJfKZVr36kTz3KlaOz3E700RxzEFDYbK7I41mdANeQBmNNbcvRTy5ma6W6I3McEcAH4wqM5fFQ8YS+QWJxk85Si8KtaDPqoEdC/0dQPavuU/jAVjhV8IbmmkOtO7WvOHQDBtrR15yMxGMnUwMrPHaRNKdHNYRG0LL7lpCtdMi1mzLQgHYY9SRYvI=
 269c80ee5b3cb3684fa8edc61501b3506d02eb10 0 iQIVAwUAU4uX5CBXgaxoKi1yAQLpdg/+OxulOKwZN+Nr7xsRhUijYjyAElRf2mGDvMrbAOA2xNf85DOXjOrX5TKETumf1qANA5cHa1twA8wYgxUzhx30H+w5EsLjyeSsOncRnD5WZNqSoIq2XevT0T4c8xdyNftyBqK4h/SC/t2h3vEiSCUaGcfNK8yk4XO45MIk4kk9nlA9jNWdA5ZMLgEFBye2ggz0JjEAPUkVDqlr9sNORDEbnwZxGPV8CK9HaL/I8VWClaFgjKQmjqV3SQsNFe2XPffzXmIipFJ+ODuXVxYpAsvLiGmcfuUfSDHQ4L9QvjBsWe1PgYMr/6CY/lPYmR+xW5mJUE9eIdN4MYcXgicLrmMpdF5pToNccNCMtfa6CDvEasPRqe2bDzL/Q9dQbdOVE/boaYBlgmYLL+/u+dpqip9KkyGgbSo9uJzst1mLTCzJmr5bw+surul28i9HM+4+Lewg4UUdHLz46no1lfTlB5o5EAhiOZBTEVdoBaKfewVpDa/aBRvtWX7UMVRG5qrtA0sXwydN00Jaqkr9m20W0jWjtc1ZC72QCrynVHOyfIb2rN98rnuy2QN4bTvjNpNjHOhhhPTOoVo0YYPdiUupm46vymUTQCmWsglU4Rlaa3vXneP7JenL5TV8WLPs9J28lF0IkOnyBXY7OFcpvYO1euu7iR1VdjfrQukMyaX18usymiA=
 2d8cd3d0e83c7336c0cb45a9f88638363f993848 0 iQIVAwUAU7OLTCBXgaxoKi1yAQJ+pw/+M3yOesgf55eo3PUTZw02QZxDyEg9ElrRc6664/QFXaJuYdz8H3LGG/NYs8uEdYihiGpS1Qc70jwd1IoUlrCELsaSSZpzWQ+VpQFX29aooBoetfL+8WgqV8zJHCtY0E1EBg/Z3ZL3n2OS++fVeWlKtp5mwEq8uLTUmhIS7GseP3bIG/CwF2Zz4bzhmPGK8V2s74aUvELZLCfkBE1ULNs7Nou1iPDGnhYOD53eq1KGIPlIg1rnLbyYw5bhS20wy5IxkWf2eCaXfmQBTG61kO5m3nkzfVgtxmZHLqYggISTJXUovfGsWZcp5a71clCSMVal+Mfviw8L/UPHG0Ie1c36djJiFLxM0f2HlwVMjegQOZSAeMGg1YL1xnIys2zMMsKgEeR+JISTal1pJyLcT9x5mr1HCnUczSGXE5zsixN+PORRnZOqcEZTa2mHJ1h5jJeEm36B/eR57BMJG+i0QgZqTpLzYTFrp2eWokGMjFB1MvgAkL2YoRsw9h6TeIwqzK8mFwLi28bf1c90gX9uMbwY/NOqGzfQKBR9bvCjs2k/gmJ+qd5AbC3DvOxHnN6hRZUqNq76Bo4F+CUVcjQ/NXnfnOIVNbILpl5Un5kl+8wLFM+mNxDxduajaUwLhSHZofKmmCSLbuuaGmQTC7a/4wzhQM9e5dX0X/8sOo8CptW7uw4=
+6c36dc6cd61a0e1b563f1d51e55bdf4dacf12162 0 iQIVAwUAU8n97yBXgaxoKi1yAQKqcA/+MT0VFoP6N8fHnlxj85maoM2HfZbAzX7oEW1B8F1WH6rHESHDexDWIYWJ2XnEeTD4GCXN0/1p+O/I0IMPNzqoSz8BU0SR4+ejhRkGrKG7mcFiF5G8enxaiISn9nmax6DyRfqtOQBzuXYGObXg9PGvMS6zbR0SorJK61xX7fSsUNN6BAvHJfpwcVkOrrFAIpEhs/Gh9wg0oUKCffO/Abs6oS+P6nGLylpIyXqC7rKZ4uPVc6Ljh9DOcpV4NCU6kQbNE7Ty79E0/JWWLsHOEY4F4WBzI7rVh7dOkRMmfNGaqvKkuNkJOEqTR1o1o73Hhbxn4NU7IPbVP/zFKC+/4QVtcPk2IPlpK1MqA1H2hBNYZhJlNhvAa7LwkIxM0916/zQ8dbFAzp6Ay/t/L0tSEcIrudTz2KTrY0WKw+pkzB/nTwaS3XZre6H2B+gszskmf1Y41clkIy/nH9K7zBuzANWyK3+bm40vmMoBbbnsweUAKkyCwqm4KTyQoYQWzu/ZiZcI+Uuk/ajJ9s7EhJbIlSnYG9ttWL/IZ1h+qPU9mqVO9fcaqkeL/NIRh+IsnzaWo0zmHU1bK+/E29PPGGf3v6+IEJmXg7lvNl5pHiMd2tb7RNO/UaNSv1Y2E9naD4FQwSWo38GRBcnRGuKCLdZNHGUR+6dYo6BJCGG8wtZvNXb3TOo=
+3178e49892020336491cdc6945885c4de26ffa8b 0 iQIVAwUAU9whUCBXgaxoKi1yAQJDKxAAoGzdHXV/BvZ598VExEQ8IqkmBVIP1QZDVBr/orMc1eFM4tbGKxumMGbqgJsg+NetI0irkh/YWeJQ13lT4Og72iJ+4UC9eF9pcpUKr/0eBYdU2N/p2MIbVNWh3aF5QkbuQpSri0VbHOWkxqwoqrrwXEjgHaKYP4PKh+Dzukax4yzBUIyzAG38pt4a8hbjnozCl2uAikxk4Ojg+ZufhPoZWgFEuYzSfK5SrwVKOwuxKYFGbbVGTQMIXLvBhOipAmHp4JMEYHfG85kwuyx/DCDbGmXKPQYQfClwjJ4ob/IwG8asyMsPWs+09vrvpVO08HBuph3GjuiWJ1fhEef/ImWmZdQySI9Y4SjwP4dMVfzLCnY+PYPDM9Sq/5Iee13gI2lVM2NtAfQZPXh9l8u6SbCir1UhMNMx0qVMkqMAATmiZ+ETHCO75q4Wdcmnv5fk2PbvaGBVtrHGeiyuz5mK/j4cMbd0R9R0hR1PyC4dOhNqOnbqELNIe0rKNByG1RkpiQYsqZTU6insmnZrv4fVsxfA4JOObPfKNT4oa24MHS73ldLFCfQAuIxVE7RDJJ3bHeh/yO6Smo28FuVRldBl5e+wj2MykS8iVcuSa1smw6gJ14iLBH369nlR3fAAQxI0omVYPDHLr7SsH3vJasTaCD7V3SL4lW6vo/yaAh4ImlTAE+Y=
--- a/.hgtags	Fri Jul 18 19:46:56 2014 -0400
+++ b/.hgtags	Fri Aug 01 18:32:52 2014 -0500
@@ -103,3 +103,5 @@
 2195ac506c6ababe86985b932f4948837c0891b5 3.0
 269c80ee5b3cb3684fa8edc61501b3506d02eb10 3.0.1
 2d8cd3d0e83c7336c0cb45a9f88638363f993848 3.0.2
+6c36dc6cd61a0e1b563f1d51e55bdf4dacf12162 3.1-rc
+3178e49892020336491cdc6945885c4de26ffa8b 3.1
--- a/contrib/check-code.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/contrib/check-code.py	Fri Aug 01 18:32:52 2014 -0500
@@ -168,6 +168,8 @@
     (r'^  .*: largefile \S+ not available from file:.*/.*[^)]$', winglobmsg),
     (r'^  .*file://\$TESTTMP',
      'write "file:/*/$TESTTMP" + (glob) to match on windows too'),
+    (r'^  (cat|find): .*: No such file or directory',
+     'use test -f to test for file existence'),
   ],
   # warnings
   [
--- a/contrib/revsetbenchmarks.txt	Fri Jul 18 19:46:56 2014 -0400
+++ b/contrib/revsetbenchmarks.txt	Fri Aug 01 18:32:52 2014 -0500
@@ -21,3 +21,4 @@
 draft()
 :10000 and draft()
 max(::(tip~20) - obsolete())
+roots((0:tip)::)
--- a/hgext/convert/git.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/convert/git.py	Fri Aug 01 18:32:52 2014 -0500
@@ -127,7 +127,8 @@
         size = int(info[2])
         data = self.catfilepipe[1].read(size)
         if len(data) < size:
-            raise util.Abort(_('cannot read %r object at %s: %s') % (type, rev))
+            raise util.Abort(_('cannot read %r object at %s: unexpected size')
+                             % (type, rev))
         # read the trailing newline
         self.catfilepipe[1].read(1)
         return data
--- a/hgext/fetch.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/fetch.py	Fri Aug 01 18:32:52 2014 -0500
@@ -19,7 +19,7 @@
 @command('fetch',
     [('r', 'rev', [],
      _('a specific revision you would like to pull'), _('REV')),
-    ('e', 'edit', None, _('edit commit message')),
+    ('e', 'edit', None, _('invoke editor on commit messages')),
     ('', 'force-editor', None, _('edit commit message (DEPRECATED)')),
     ('', 'switch-parent', None, _('switch parents when merging')),
     ] + commands.commitopts + commands.commitopts2 + commands.remoteopts,
--- a/hgext/gpg.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/gpg.py	Fri Aug 01 18:32:52 2014 -0500
@@ -203,7 +203,7 @@
           ('k', 'key', '',
            _('the key id to sign with'), _('ID')),
           ('m', 'message', '',
-           _('commit message'), _('TEXT')),
+           _('use text as commit message'), _('TEXT')),
           ('e', 'edit', False, _('invoke editor on commit messages')),
          ] + commands.commitopts2,
          _('hg sign [OPTION]... [REV]...'))
--- a/hgext/histedit.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/histedit.py	Fri Aug 01 18:32:52 2014 -0500
@@ -158,6 +158,7 @@
 from mercurial import hg
 from mercurial import node
 from mercurial import repair
+from mercurial import scmutil
 from mercurial import util
 from mercurial import obsolete
 from mercurial import merge as mergemod
@@ -567,11 +568,11 @@
                 remote = None
             root = findoutgoing(ui, repo, remote, force, opts)
         else:
-            rootrevs = list(repo.set('roots(%lr)', revs))
-            if len(rootrevs) != 1:
+            rr = list(repo.set('roots(%ld)', scmutil.revrange(repo, revs)))
+            if len(rr) != 1:
                 raise util.Abort(_('The specified revisions must have '
                     'exactly one common root'))
-            root = rootrevs[0].node()
+            root = rr[0].node()
 
         keep = opts.get('keep', False)
         revs = between(repo, root, topmost, keep)
--- a/hgext/largefiles/lfcommands.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/largefiles/lfcommands.py	Fri Aug 01 18:32:52 2014 -0500
@@ -435,7 +435,8 @@
         ui.status(_("%d largefiles failed to download\n") % totalmissing)
     return totalsuccess, totalmissing
 
-def updatelfiles(ui, repo, filelist=None, printmessage=True):
+def updatelfiles(ui, repo, filelist=None, printmessage=True,
+                 normallookup=False):
     wlock = repo.wlock()
     try:
         lfdirstate = lfutil.openlfdirstate(ui, repo)
@@ -509,15 +510,20 @@
 
             updated += update1
 
-            state = repo.dirstate[lfutil.standin(lfile)]
+            standin = lfutil.standin(lfile)
+            if standin in repo.dirstate:
+                stat = repo.dirstate._map[standin]
+                state, mtime = stat[0], stat[3]
+            else:
+                state, mtime = '?', -1
             if state == 'n':
-                # When rebasing, we need to synchronize the standin and the
-                # largefile, because otherwise the largefile will get reverted.
-                # But for commit's sake, we have to mark the file as unclean.
-                if getattr(repo, "_isrebasing", False):
+                if normallookup or mtime < 0:
+                    # state 'n' doesn't ensure 'clean' in this case
                     lfdirstate.normallookup(lfile)
                 else:
                     lfdirstate.normal(lfile)
+            elif state == 'm':
+                lfdirstate.normallookup(lfile)
             elif state == 'r':
                 lfdirstate.remove(lfile)
             elif state == 'a':
--- a/hgext/largefiles/overrides.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/largefiles/overrides.py	Fri Aug 01 18:32:52 2014 -0500
@@ -667,7 +667,13 @@
 
         newstandins = lfutil.getstandinsstate(repo)
         filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
-        lfcommands.updatelfiles(ui, repo, filelist, printmessage=False)
+        # lfdirstate should be 'normallookup'-ed for updated files,
+        # because reverting doesn't touch dirstate for 'normal' files
+        # when target revision is explicitly specified: in such case,
+        # 'n' and valid timestamp in dirstate doesn't ensure 'clean'
+        # of target (standin) file.
+        lfcommands.updatelfiles(ui, repo, filelist, printmessage=False,
+                                normallookup=True)
 
     finally:
         wlock.release()
--- a/hgext/mq.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/hgext/mq.py	Fri Aug 01 18:32:52 2014 -0500
@@ -1995,12 +1995,12 @@
                 self.added.append(patchname)
                 imported.append(patchname)
                 patchname = None
-            if rev and repo.ui.configbool('mq', 'secret', False):
-                # if we added anything with --rev, we must move the secret root
-                phases.retractboundary(repo, phases.secret, [n])
-            self.parseseries()
-            self.applieddirty = True
-            self.seriesdirty = True
+                if rev and repo.ui.configbool('mq', 'secret', False):
+                    # if we added anything with --rev, move the secret root
+                    phases.retractboundary(repo, phases.secret, [n])
+                self.parseseries()
+                self.applieddirty = True
+                self.seriesdirty = True
 
         for i, filename in enumerate(files):
             if existing:
@@ -2407,7 +2407,7 @@
         opts['date'] = "%d %d" % util.makedate()
 
 @command("^qnew",
-         [('e', 'edit', None, _('edit commit message')),
+         [('e', 'edit', None, _('invoke editor on commit messages')),
           ('f', 'force', None, _('import uncommitted changes (DEPRECATED)')),
           ('g', 'git', None, _('use git extended diff format')),
           ('U', 'currentuser', None, _('add "From: <current user>" to patch')),
@@ -2453,7 +2453,7 @@
     return 0
 
 @command("^qrefresh",
-         [('e', 'edit', None, _('edit commit message')),
+         [('e', 'edit', None, _('invoke editor on commit messages')),
           ('g', 'git', None, _('use git extended diff format')),
           ('s', 'short', None,
            _('refresh only files already in the patch and specified files')),
@@ -2523,7 +2523,7 @@
     return 0
 
 @command('qfold',
-         [('e', 'edit', None, _('edit patch header')),
+         [('e', 'edit', None, _('invoke editor on commit messages')),
           ('k', 'keep', None, _('keep folded patch files')),
          ] + commands.commitopts,
          _('hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH...'))
--- a/i18n/ja.po	Fri Jul 18 19:46:56 2014 -0400
+++ b/i18n/ja.po	Fri Aug 01 18:32:52 2014 -0500
@@ -149,8 +149,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2014-06-30 18:45+0900\n"
-"PO-Revision-Date: 2014-06-30 19:03+0900\n"
+"POT-Creation-Date: 2014-08-01 17:00+0900\n"
+"PO-Revision-Date: 2014-08-01 17:24+0900\n"
 "Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n"
 "Language-Team: Japanese\n"
 "Language: ja\n"
@@ -1173,7 +1173,7 @@
 "    bzurl=http://my-project.org/bugzilla\n"
 "    user=bugmail@my-project.org\n"
 "    password=plugh\n"
-"    version=xmlrpc\n"
+"    version=xmlrpc+email\n"
 "    bzemail=bugzilla@my-project.org\n"
 "    template=Changeset {node|short} in {root|basename}.\n"
 "             {hgweb}/{webroot}/rev/{node|short}\\n\n"
@@ -1184,7 +1184,7 @@
 "    bzurl=http://my-project.org/bugzilla\n"
 "    user=bugmail@my-project.org\n"
 "    password=plugh\n"
-"    version=xmlrpc\n"
+"    version=xmlrpc+email\n"
 "    bzemail=bugzilla@my-project.org\n"
 "    template=Changeset {node|short} in {root|basename}.\n"
 "             {hgweb}/{webroot}/rev/{node|short}\\n\n"
@@ -1357,6 +1357,15 @@
 "本エクステンションは非推奨です。:hg:`log -r \"children(REV)\"`\n"
 "を使用してください。\n"
 
+msgid "REV"
+msgstr "リビジョン"
+
+msgid "show children of the specified revision"
+msgstr "指定リビジョンの子リビジョンの表示"
+
+msgid "hg children [-r REV] [FILE]"
+msgstr "hg children [-r REV] [FILE]"
+
 msgid "show the children of the given or working directory revision"
 msgstr "指定リビジョンの子リビジョンの表示"
 
@@ -1375,15 +1384,6 @@
 "    します。\n"
 "    "
 
-msgid "REV"
-msgstr "リビジョン"
-
-msgid "show children of the specified revision"
-msgstr "指定リビジョンの子リビジョンの表示"
-
-msgid "hg children [-r REV] [FILE]"
-msgstr "hg children [-r REV] [FILE]"
-
 msgid "command to display statistics about repository history"
 msgstr "変更履歴の統計情報表示のコマンド"
 
@@ -1394,6 +1394,45 @@
 msgid "analyzing"
 msgstr "解析中"
 
+msgid "count rate for the specified revision or range"
+msgstr "処理対象とする特定リビジョン/範囲の指定"
+
+msgid "DATE"
+msgstr "日時"
+
+msgid "count rate for revisions matching date spec"
+msgstr "指定日時と一致したリビジョンを処理対象とする"
+
+msgid "TEMPLATE"
+msgstr "テンプレート"
+
+msgid "template to group changesets"
+msgstr "リビジョン表示をグループ化するためのテンプレート"
+
+msgid "FORMAT"
+msgstr "書式"
+
+msgid "strftime-compatible format for grouping by date"
+msgstr "日時グループ化のための strftime 互換形式フォーマット"
+
+msgid "count rate by number of changesets"
+msgstr "リビジョン数で統計"
+
+msgid "sort by key (default: sort by count)"
+msgstr "キーによる整列(無指定時: 統計量で整列)"
+
+msgid "display added/removed lines separately"
+msgstr "追加/削除行表示の分離"
+
+msgid "FILE"
+msgstr "ファイル"
+
+msgid "file with email aliases"
+msgstr "ユーザ名変換用ファイル"
+
+msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
+msgstr "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
+
 msgid "histogram of changes to the repository"
 msgstr "リポジトリにおける変更の統計分布表示"
 
@@ -1475,45 +1514,6 @@
 msgid "skipping malformed alias: %s\n"
 msgstr "不正な形式の別名を無視: %s\n"
 
-msgid "count rate for the specified revision or range"
-msgstr "処理対象とする特定リビジョン/範囲の指定"
-
-msgid "DATE"
-msgstr "日時"
-
-msgid "count rate for revisions matching date spec"
-msgstr "指定日時と一致したリビジョンを処理対象とする"
-
-msgid "TEMPLATE"
-msgstr "テンプレート"
-
-msgid "template to group changesets"
-msgstr "リビジョン表示をグループ化するためのテンプレート"
-
-msgid "FORMAT"
-msgstr "書式"
-
-msgid "strftime-compatible format for grouping by date"
-msgstr "日時グループ化のための strftime 互換形式フォーマット"
-
-msgid "count rate by number of changesets"
-msgstr "リビジョン数で統計"
-
-msgid "sort by key (default: sort by count)"
-msgstr "キーによる整列(無指定時: 統計量で整列)"
-
-msgid "display added/removed lines separately"
-msgstr "追加/削除行表示の分離"
-
-msgid "FILE"
-msgstr "ファイル"
-
-msgid "file with email aliases"
-msgstr "ユーザ名変換用ファイル"
-
-msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
-msgstr "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
-
 msgid "colorize output from some commands"
 msgstr "コマンド出力のカラー化"
 
@@ -1766,6 +1766,45 @@
 msgid "import revisions from foreign VCS repositories into Mercurial"
 msgstr "他の構成管理ツールから Mercurial への履歴取り込み"
 
+msgid "username mapping filename (DEPRECATED, use --authormap instead)"
+msgstr "ユーザ名変換ファイルの指定 (非推奨: --authormap を使用してください)"
+
+msgid "source repository type"
+msgstr "変換元リポジトリ種別"
+
+msgid "destination repository type"
+msgstr "変換先のリポジトリ種別"
+
+msgid "import up to source revision REV"
+msgstr "変換元の指定リビジョンまでの取り込み"
+
+msgid "remap usernames using this file"
+msgstr "変換時のユーザ名変換用ファイル"
+
+msgid "remap file names using contents of file"
+msgstr "変換時のファイル名変換用ファイル"
+
+msgid "splice synthesized history into place"
+msgstr "継ぎ合わせによる履歴の合成"
+
+msgid "change branch names while converting"
+msgstr "変換時のブランチ名変換用ファイル"
+
+msgid "try to sort changesets by branches"
+msgstr "ブランチによるリビジョンの並び替え"
+
+msgid "try to sort changesets by date"
+msgstr "日付によるリビジョンの並び替え"
+
+msgid "preserve source changesets order"
+msgstr "元リポジトリでのリビジョン順を尊重"
+
+msgid "try to reorder closed revisions"
+msgstr "閉鎖実施リビジョン群の並び替え"
+
+msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
+msgstr "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
+
 msgid "convert a foreign SCM repository to a Mercurial one."
 msgstr "別 SCM のリポジトリから Mercurial リポジトリへの変換"
 
@@ -2307,65 +2346,6 @@
 "        デフォルト値は True。\n"
 "    "
 
-msgid "create changeset information from CVS"
-msgstr "CVS からのリビジョン情報の作成"
-
-msgid ""
-"    This command is intended as a debugging tool for the CVS to\n"
-"    Mercurial converter, and can be used as a direct replacement for\n"
-"    cvsps."
-msgstr ""
-"    本コマンドの位置付けは、 CVS から Mercurial への変換におけるデバッグ\n"
-"    ツールであり、 cvsps の代替ツールとして使用可能です。"
-
-msgid ""
-"    Hg debugcvsps reads the CVS rlog for current directory (or any\n"
-"    named directory) in the CVS repository, and converts the log to a\n"
-"    series of changesets based on matching commit log entries and\n"
-"    dates."
-msgstr ""
-"    本コマンドは、 現ディレクトリ (または指定ディレクトリ) 中の CVS rlog\n"
-"    を読み込み、 コミットログの内容と日付を元にリビジョンを推測します。"
-
-msgid "username mapping filename (DEPRECATED, use --authormap instead)"
-msgstr "ユーザ名変換ファイルの指定 (非推奨: --authormap を使用してください)"
-
-msgid "source repository type"
-msgstr "変換元リポジトリ種別"
-
-msgid "destination repository type"
-msgstr "変換先のリポジトリ種別"
-
-msgid "import up to source revision REV"
-msgstr "変換元の指定リビジョンまでの取り込み"
-
-msgid "remap usernames using this file"
-msgstr "変換時のユーザ名変換用ファイル"
-
-msgid "remap file names using contents of file"
-msgstr "変換時のファイル名変換用ファイル"
-
-msgid "splice synthesized history into place"
-msgstr "継ぎ合わせによる履歴の合成"
-
-msgid "change branch names while converting"
-msgstr "変換時のブランチ名変換用ファイル"
-
-msgid "try to sort changesets by branches"
-msgstr "ブランチによるリビジョンの並び替え"
-
-msgid "try to sort changesets by date"
-msgstr "日付によるリビジョンの並び替え"
-
-msgid "preserve source changesets order"
-msgstr "元リポジトリでのリビジョン順を尊重"
-
-msgid "try to reorder closed revisions"
-msgstr "閉鎖実施リビジョン群の並び替え"
-
-msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
-msgstr "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
-
 msgid "only return changes on specified branches"
 msgstr "指定ブランチのみの変換"
 
@@ -2399,6 +2379,26 @@
 msgid "hg debugcvsps [OPTION]... [PATH]..."
 msgstr "hg debugcvsps [OPTION]... [PATH]..."
 
+msgid "create changeset information from CVS"
+msgstr "CVS からのリビジョン情報の作成"
+
+msgid ""
+"    This command is intended as a debugging tool for the CVS to\n"
+"    Mercurial converter, and can be used as a direct replacement for\n"
+"    cvsps."
+msgstr ""
+"    本コマンドの位置付けは、 CVS から Mercurial への変換におけるデバッグ\n"
+"    ツールであり、 cvsps の代替ツールとして使用可能です。"
+
+msgid ""
+"    Hg debugcvsps reads the CVS rlog for current directory (or any\n"
+"    named directory) in the CVS repository, and converts the log to a\n"
+"    series of changesets based on matching commit log entries and\n"
+"    dates."
+msgstr ""
+"    本コマンドは、 現ディレクトリ (または指定ディレクトリ) 中の CVS rlog\n"
+"    を読み込み、 コミットログの内容と日付を元にリビジョンを推測します。"
+
 msgid ":svnrev: String. Converted subversion revision number."
 msgstr ":svnrev: 文字列。 変換元の subversion リビジョン番号。"
 
@@ -2726,6 +2726,10 @@
 msgstr "%r オブジェクトが %s から読み込めません"
 
 #, python-format
+msgid "cannot read %r object at %s: unexpected size"
+msgstr "%r オブジェクトが %s から読み込めません: 想定外のサイズ"
+
+#, python-format
 msgid "cannot read submodules config file in %s"
 msgstr "%s におけるサブモジュールの設定ファイルが読み込めません"
 
@@ -3313,6 +3317,27 @@
 msgid "cleaning up temp directory\n"
 msgstr "一時ディレクトリの破棄中\n"
 
+msgid "CMD"
+msgstr "コマンド"
+
+msgid "comparison program to run"
+msgstr "差分表示プログラム"
+
+msgid "OPT"
+msgstr "オプション"
+
+msgid "pass option to comparison program"
+msgstr "差分表示プログラムへのオプション指定"
+
+msgid "revision"
+msgstr "リビジョン"
+
+msgid "change made by revision"
+msgstr "当該リビジョンにおける変更内容の表示"
+
+msgid "hg extdiff [OPT]... [FILE]..."
+msgstr "hg extdiff [OPT]... [FILE]..."
+
 msgid "use external program to diff repository (or selected files)"
 msgstr "外部コマンドを使用したリポジトリ(または指定ファイル)の差分表示"
 
@@ -3348,27 +3373,6 @@
 "    リビジョンが1つ指定された場合、 作業領域との間の差分が表示されます。\n"
 "    リビジョンが指定されない場合、 作業領域と親との差分が表示されます。"
 
-msgid "CMD"
-msgstr "コマンド"
-
-msgid "comparison program to run"
-msgstr "差分表示プログラム"
-
-msgid "OPT"
-msgstr "オプション"
-
-msgid "pass option to comparison program"
-msgstr "差分表示プログラムへのオプション指定"
-
-msgid "revision"
-msgstr "リビジョン"
-
-msgid "change made by revision"
-msgstr "当該リビジョンにおける変更内容の表示"
-
-msgid "hg extdiff [OPT]... [FILE]..."
-msgstr "hg extdiff [OPT]... [FILE]..."
-
 #, python-format
 msgid "use %(path)s to diff repository (or selected files)"
 msgstr "%(path)s によるリポジトリ(または指定ファイル)の差分表示"
@@ -3454,6 +3458,21 @@
 msgid "pull, update and merge in one command (DEPRECATED)"
 msgstr "pull, update, merge の一括実行 (非推奨)"
 
+msgid "a specific revision you would like to pull"
+msgstr "取り込み対象リビジョンの指定"
+
+msgid "invoke editor on commit messages"
+msgstr "コミットログ入力にエディタを起動"
+
+msgid "edit commit message (DEPRECATED)"
+msgstr "コミットログの編集(非推奨)"
+
+msgid "switch parents when merging"
+msgstr "マージの際の第1親リビジョンを切り替え"
+
+msgid "hg fetch [SOURCE]"
+msgstr "hg fetch [SOURCE]"
+
 msgid "pull changes from a remote repository, merge new changes if needed."
 msgstr "連携先リポジトリからの取り込みと、 必要に応じたマージ実施"
 
@@ -3541,21 +3560,6 @@
 msgid "new changeset %d:%s merges remote changes with local\n"
 msgstr "新規リビジョン %d:%s により、連携先とローカルのリビジョンをマージ\n"
 
-msgid "a specific revision you would like to pull"
-msgstr "取り込み対象リビジョンの指定"
-
-msgid "edit commit message"
-msgstr "コミットログの編集"
-
-msgid "edit commit message (DEPRECATED)"
-msgstr "コミットログの編集(非推奨)"
-
-msgid "switch parents when merging"
-msgstr "マージの際の第1親リビジョンを切り替え"
-
-msgid "hg fetch [SOURCE]"
-msgstr "hg fetch [SOURCE]"
-
 msgid "commands to sign and verify changesets"
 msgstr "リビジョンへの署名および検証コマンド"
 
@@ -3613,8 +3617,8 @@
 msgid "TEXT"
 msgstr "テキスト"
 
-msgid "commit message"
-msgstr "コミットログ"
+msgid "use text as commit message"
+msgstr "指定テキストをコミットログとして使用"
 
 msgid "hg sign [OPTION]... [REV]..."
 msgstr "hg sign [OPTION]... [REV]..."
@@ -3885,42 +3889,6 @@
 "上記設定により、 リビジョンのコンテキストメニューには、 対象リビジョンと、\n"
 "指定したリビジョンに対して、 vdiff を起動する項目が追加されます。\n"
 
-msgid "diff trees from two commits"
-msgstr "2リビジョン間の差分ツリー表示"
-
-msgid "output common ancestor information"
-msgstr "共通の祖先リビジョンの情報表示"
-
-msgid "cat a specific revision"
-msgstr "指定リビジョン時点の内容表示"
-
-msgid "cat-file: type or revision not supplied\n"
-msgstr "cat-file: 種別もリビジョンも指定されていません\n"
-
-msgid "aborting hg cat-file only understands commits\n"
-msgstr "中止: catfile は commit 種別でのみ実行可能です\n"
-
-msgid "parse given revisions"
-msgstr "指定リビジョンの解析"
-
-msgid "print revisions"
-msgstr "リビジョンの表示"
-
-msgid "print extension options"
-msgstr "エクステンション設定の表示"
-
-msgid "start interactive history viewer"
-msgstr "対話的な履歴参照の開始"
-
-msgid "NUM"
-msgstr "数値"
-
-msgid "limit number of changes displayed"
-msgstr "最大表示リビジョン数"
-
-msgid "hg view [-l LIMIT] [REVRANGE]"
-msgstr "hg view [-l LIMIT] [REVRANGE]"
-
 msgid "generate patch"
 msgstr "パッチの生成"
 
@@ -3939,17 +3907,26 @@
 msgid "search"
 msgstr "検索"
 
-msgid "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..."
-msgstr "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..."
+msgid "diff trees from two commits"
+msgstr "2リビジョン間の差分ツリー表示"
+
+msgid "hg debug-merge-base REV REV"
+msgstr "hg debug-merge-base REV REV"
+
+msgid "output common ancestor information"
+msgstr "共通の祖先リビジョンの情報表示"
 
 msgid "hg debug-cat-file [OPTION]... TYPE FILE"
 msgstr "hg debug-cat-file [OPTION]... TYPE FILE"
 
-msgid "hg debug-config"
-msgstr "hg debug-config"
-
-msgid "hg debug-merge-base REV REV"
-msgstr "hg debug-merge-base REV REV"
+msgid "cat a specific revision"
+msgstr "指定リビジョン時点の内容表示"
+
+msgid "cat-file: type or revision not supplied\n"
+msgstr "cat-file: 種別もリビジョンも指定されていません\n"
+
+msgid "aborting hg cat-file only understands commits\n"
+msgstr "中止: catfile は commit 種別でのみ実行可能です\n"
 
 #. i18n: bisect changeset status
 msgid "ignored"
@@ -3958,6 +3935,9 @@
 msgid "hg debug-rev-parse REV"
 msgstr "hg debug-rev-parse REV"
 
+msgid "parse given revisions"
+msgstr "指定リビジョンの解析"
+
 msgid "header"
 msgstr "ヘッダ"
 
@@ -3970,8 +3950,26 @@
 msgid "max-count"
 msgstr "最大数"
 
-msgid "hg debug-rev-list [OPTION]... REV..."
-msgstr "hg debug-rev-list [OPTION]... REV..."
+msgid "print revisions"
+msgstr "リビジョンの表示"
+
+msgid "hg debug-config"
+msgstr "hg debug-config"
+
+msgid "print extension options"
+msgstr "エクステンション設定の表示"
+
+msgid "NUM"
+msgstr "数値"
+
+msgid "limit number of changes displayed"
+msgstr "最大表示リビジョン数"
+
+msgid "hg view [-l LIMIT] [REVRANGE]"
+msgstr "hg view [-l LIMIT] [REVRANGE]"
+
+msgid "start interactive history viewer"
+msgstr "対話的な履歴参照の開始"
 
 msgid "syntax highlighting for hgweb (requires Pygments)"
 msgstr "hgweb におけるシンタックスハイライト (要 Pygments)"
@@ -5138,6 +5136,15 @@
 msgid "%s does not appear to be a largefile store"
 msgstr "%s は largefiles 対応とは思われません"
 
+msgid "minimum size (MB) for files to be converted as largefiles"
+msgstr "大容量ファイル化するファイルの最小サイズ (MB)"
+
+msgid "convert from a largefiles repo to a normal repo"
+msgstr "大容量ファイル使用リポジトリから通常リポジトリへの変換"
+
+msgid "hg lfconvert SOURCE DEST [FILE ...]"
+msgstr "hg lfconvert SOURCE DEST [FILE ...]"
+
 #, python-format
 msgid "%s is not a local Mercurial repo"
 msgstr "%s はローカルの Mercurial リポジトリではありません"
@@ -5195,6 +5202,12 @@
 msgid "%d largefiles updated, %d removed\n"
 msgstr "大容量ファイルの更新数 %d、 削除数 %d\n"
 
+msgid "pull largefiles for these revisions"
+msgstr "指定リビジョンに関連する大容量ファイルを入手"
+
+msgid "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
+msgstr "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
+
 msgid "no revisions specified"
 msgstr "リビジョン指定がありません"
 
@@ -5206,21 +5219,6 @@
 msgid "%d largefiles cached\n"
 msgstr "大容量ファイル %d 個をキャッシュ\n"
 
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr "大容量ファイル化するファイルの最小サイズ (MB)"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "大容量ファイル使用リポジトリから通常リポジトリへの変換"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert SOURCE DEST [FILE ...]"
-
-msgid "pull largefiles for these revisions"
-msgstr "指定リビジョンに関連する大容量ファイルを入手"
-
-msgid "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
-msgstr "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
-
 #, python-format
 msgid "largefiles: size must be number (not %s)\n"
 msgstr "largefiles: サイズは数値で指定してください (%s は不正です)\n"
@@ -5347,8 +5345,9 @@
 msgid "largefiles: no files to upload\n"
 msgstr "largefiles: 転送予定ファイルはありません\n"
 
-msgid "largefiles to upload:\n"
-msgstr "転送予定大容量ファイル:\n"
+#, python-format
+msgid "largefiles to upload (%d entities):\n"
+msgstr "転送予定大容量ファイル (実体数 %d):\n"
 
 #. i18n: column positioning for "hg summary"
 msgid "largefiles: (no remote repo)\n"
@@ -5360,8 +5359,8 @@
 
 #. i18n: column positioning for "hg summary"
 #, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles:   %d 個の転送予定ファイル\n"
+msgid "largefiles: %d entities for %d files to upload\n"
+msgstr "largefiles: %d 個のファイルに対して %d 個の実体を転送予定\n"
 
 #, python-format
 msgid "largefile %s is not in cache and could not be downloaded"
@@ -5774,6 +5773,10 @@
 msgid "cannot write patch \"%s\": %s"
 msgstr "パッチ \"%s\" の書き出しに失敗: %s"
 
+#. i18n: this message is shown in editor with "HG: " prefix
+msgid "Leave message empty to use default message."
+msgstr "メッセージが空のままならコミットを中止します。"
+
 #, python-format
 msgid "error unlinking %s\n"
 msgstr "%s の unlink に失敗\n"
@@ -6413,9 +6416,6 @@
 "    通常と変わりなく機能します。 git 差分形式の詳細に関しては、\n"
 "    'help diffs' を参照してください。"
 
-msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
-msgstr "\"-e\" と、 \"-m\" または \"-l\" は併用できません"
-
 msgid "hg qdiff [OPTION]... [FILE]..."
 msgstr "hg qdiff [OPTION]... [FILE]..."
 
@@ -6442,9 +6442,6 @@
 "    場合は :hg:`diff` を、 作業領域の変更内容を含まない現行パッチの内容\n"
 "    のみを見たい場合は :hg:`export qtip` を使用してください。"
 
-msgid "edit patch header"
-msgstr "パッチヘッダ内容の編集"
-
 msgid "keep folded patch files"
 msgstr "併合対象パッチのパッチファイル削除を抑止"
 
@@ -7391,6 +7388,22 @@
 msgstr "pager.attend 設定時は pager.ignore 設定は無視されます。"
 
 msgid ""
+"Lastly, you can enable and disable paging for individual commands with\n"
+"the attend-<command> option. This setting takes precedence over\n"
+"existing attend and ignore options and defaults::"
+msgstr ""
+"``attend-<command>`` 設定により、 ページングの有無を、 個別のコマンド毎に、\n"
+"設定可能です。 既存の ``attend`` や ``ignore`` 設定やデフォルト挙動よりも、\n"
+"この設定が優先されます::"
+
+msgid ""
+"  [pager]\n"
+"  attend-cat = false"
+msgstr ""
+"  [pager]\n"
+"  attend-cat = false"
+
+msgid ""
 "To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
 "to specify them in your user configuration file."
 msgstr ""
@@ -7401,11 +7414,11 @@
 msgid ""
 "The --pager=... option can also be used to control when the pager is\n"
 "used. Use a boolean value like yes, no, on, off, or use auto for\n"
-"normal behavior.\n"
+"normal behavior."
 msgstr ""
 "ページャーの使用は、 --pager=... でも制御できます。\n"
 "真偽値の yes no on off 以外に、 無指定時挙動に相当する auto\n"
-"を指定できます。\n"
+"を指定できます。"
 
 msgid "when to paginate (boolean, always, auto, or never)"
 msgstr "ページャーの要否 (真偽値、 always auto または never)"
@@ -7900,6 +7913,12 @@
 msgid "purge ignored files too"
 msgstr "無視対象ファイルも削除"
 
+msgid "purge empty directories"
+msgstr "空ディレクトリを削除"
+
+msgid "purge files"
+msgstr "ファイルを削除"
+
 msgid "print filenames instead of deleting them"
 msgstr "ファイル削除の変わりにファイル名表示を実施"
 
@@ -7920,8 +7939,8 @@
 "    記録済みのリビジョンや、 未コミット変更をテストする場合など、\n"
 "    作業領域を綺麗にしたい場合に有用です。"
 
-msgid "    This means that purge will delete:"
-msgstr "    本コマンドは、 以下のファイルを削除します:"
+msgid "    This means that purge will delete the following by default:"
+msgstr "    本コマンドのデフォルト挙動では、 以下のファイルが削除されます:"
 
 msgid ""
 "    - Unknown files: files marked with \"?\" by :hg:`status`\n"
@@ -7945,6 +7964,15 @@
 "    - 新規登録されたファイル (:hg:`add` 実施対象)"
 
 msgid ""
+"    The --files and --dirs options can be used to direct purge to delete\n"
+"    only files, only directories, or both. If neither option is given,\n"
+"    both will be deleted."
+msgstr ""
+"    ``--files``/``--dirs`` により、 ファイルのみ、 ディレクトリのみ、\n"
+"    あるいは両方を、 削除対象に指定できます。 オプション無指定の場合は、\n"
+"    ファイル・ディレクトリの両方が削除されます。"
+
+msgid ""
 "    If directories are given on the command line, only files in these\n"
 "    directories are considered."
 msgstr ""
@@ -8017,9 +8045,6 @@
 msgid "use text as collapse commit message"
 msgstr "指定テキストを要約コミットログとして使用"
 
-msgid "invoke editor on commit messages"
-msgstr "コミットログ入力にエディタを起動"
-
 msgid "read collapse commit message from file"
 msgstr "要約コミットログをファイルから読み込み"
 
@@ -8481,6 +8506,9 @@
 msgid "    This command is not available when committing a merge."
 msgstr "    本コマンドをマージのコミットに使用することはできません。"
 
+msgid "hg qrecord [OPTION]... PATCH [FILE]..."
+msgstr "hg qrecord [OPTION]... PATCH [FILE]..."
+
 msgid "interactively record a new patch"
 msgstr "新規パッチのコミット内容を対話的に選択"
 
@@ -8509,15 +8537,15 @@
 msgid "no changes to record\n"
 msgstr "記録可能な変更がありません\n"
 
-msgid "hg qrecord [OPTION]... PATCH [FILE]..."
-msgstr "hg qrecord [OPTION]... PATCH [FILE]..."
-
 msgid "interactively select changes to refresh"
 msgstr "パッチ更新内容を対話的に選択"
 
 msgid "recreates hardlinks between repository clones"
 msgstr "複製リポジトリ間でのハードリンクの再生成"
 
+msgid "[ORIGIN]"
+msgstr "[ORIGIN]"
+
 msgid "recreate hardlinks between two repositories"
 msgstr "2つのリポジトリ間でのハードリンクの再生成"
 
@@ -8614,9 +8642,6 @@
 msgid "relinked %d files (%s reclaimed)\n"
 msgstr "%d ファイルを再リンク (%s バイトの節約)\n"
 
-msgid "[ORIGIN]"
-msgstr "[ORIGIN]"
-
 msgid "extend schemes with shortcuts to repository swarms"
 msgstr "連携先リポジトリ群に対する略記指定の拡張"
 
@@ -8701,6 +8726,12 @@
 msgid "share a common history between several working directories"
 msgstr "複数作業領域による履歴情報領域の共有"
 
+msgid "do not create a working copy"
+msgstr "作業領域の更新を抑止します"
+
+msgid "[-U] SOURCE [DEST]"
+msgstr "[-U] SOURCE [DEST]"
+
 msgid "create a new shared repository"
 msgstr "共有リポジトリの新規作成"
 
@@ -8746,12 +8777,6 @@
 msgid "this is not a shared repo"
 msgstr "共有状態のリポジトリではありません"
 
-msgid "do not create a working copy"
-msgstr "作業領域の更新を抑止します"
-
-msgid "[-U] SOURCE [DEST]"
-msgstr "[-U] SOURCE [DEST]"
-
 msgid "save and restore changes to the working directory"
 msgstr "作業領域中の変更内容の退避および復旧"
 
@@ -9045,6 +9070,10 @@
 msgid "local changed subrepos found"
 msgstr "サブリポジトリに変更があります"
 
+#, python-format
+msgid "bookmark '%s' deleted\n"
+msgstr "ブックマーク '%s' が破棄されました\n"
+
 msgid ""
 "strip specified revision (optional, can specify revisions without this "
 "option)"
@@ -9053,12 +9082,6 @@
 msgid "force removal of changesets, discard uncommitted changes (no backup)"
 msgstr "リビジョンを強制的に削除し、 未コミット変更内容を破棄(保存無し)"
 
-msgid ""
-"bundle only changesets with local revision number greater than REV which are "
-"not descendants of REV (DEPRECATED)"
-msgstr ""
-"指定リビジョンよりリビジョン番号が大きく子孫以外のものを bundle 化(非推奨)"
-
 msgid "no backups"
 msgstr "バックアップ作成の抑止"
 
@@ -9137,10 +9160,6 @@
 msgid "bookmark '%s' not found"
 msgstr "ブックマーク '%s' がありません"
 
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "ブックマーク '%s' が破棄されました\n"
-
 msgid "empty revision set"
 msgstr "指定に該当するリビジョンはありません"
 
@@ -9997,6 +10016,13 @@
 msgstr "%s: '%s' というキーはありません"
 
 #, python-format
+msgid "available styles: %s\n"
+msgstr "利用可能なスタイル: %s\n"
+
+msgid "specify a template"
+msgstr "テンプレートを指定してください"
+
+#, python-format
 msgid "found revision %s from %s\n"
 msgstr "リビジョン %s (%s) が指定日時に合致します\n"
 
@@ -10042,12 +10068,15 @@
 msgid "stripping amended changeset %s\n"
 msgstr "改変対象リビジョン %s を除外中\n"
 
+msgid "Leave message empty to abort commit."
+msgstr "メッセージが空のままならコミットを中止します。"
+
+msgid "empty commit message"
+msgstr "コミットログがありません"
+
 msgid "HG: Enter commit message.  Lines beginning with 'HG:' are removed."
 msgstr "HG: コミットログを入力してください。'HG:' で始まる行は無視されます。"
 
-msgid "HG: Leave message empty to abort commit."
-msgstr "HG: メッセージが空のままならコミットを中止します。"
-
 #, python-format
 msgid "HG: user: %s"
 msgstr "HG: ユーザ: %s"
@@ -10082,9 +10111,6 @@
 msgid "HG: no files changed"
 msgstr "HG: ファイル変更なし"
 
-msgid "empty commit message"
-msgstr "コミットログがありません"
-
 msgid "created new head\n"
 msgstr "新規ヘッドが増えました\n"
 
@@ -10209,9 +10235,6 @@
 msgid "exclude names matching the given patterns"
 msgstr "パターンに合致したファイルを処理対象から除外"
 
-msgid "use text as commit message"
-msgstr "指定テキストをコミットログとして使用"
-
 msgid "read commit message from file"
 msgstr "コミットログをファイルから読み込み"
 
@@ -10886,69 +10909,77 @@
 msgid "hg bookmarks [OPTIONS]... [NAME]..."
 msgstr "hg bookmarks [OPTIONS]... [NAME]..."
 
-msgid "track a line of development with movable markers"
-msgstr "移動可能なマーキングによる履歴進展の追跡"
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when committing.\n"
-"    Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-"    possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-"    :hg:`update NAME` to update to a given bookmark."
-msgstr ""
-"    ブックマーク (bookmark) は、 コミット操作に追従して移動する、\n"
-"    リビジョン特定用の情報です。\n"
-"    ブックマークのリポジトリ間伝播は、 自動的には行われません。\n"
-"    ブックマークに対しては、 改名/複製/削除が可能です。\n"
-"    :hg:`merge` や :hg:`update` へのリビジョン指定において、\n"
-"    ブックマークを使用することが可能です。"
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-"    :hg:`bookmark NAME` を実行することで、 作業領域の親リビジョンに、\n"
-"    指定された名前で、 ブックマークが設定されます。\n"
-"    -r を使用して、 対象リビジョンを指定した場合\n"
-"    (対象指定自体にも、 ブックマークを使用可能)\n"
-"    そのリビジョンにブックマークが設定されます。"
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires both the local and remote\n"
-"    repositories to support bookmarks. For versions prior to 1.8, this "
-"means\n"
-"    the bookmarks extension must be enabled."
+msgid "create a new bookmark or list existing bookmarks"
+msgstr "ブックマークの、新規作成、又は既存の一覧表示"
+
+msgid ""
+"    Bookmarks are labels on changesets to help track lines of development.\n"
+"    Bookmarks are unversioned and can be moved, renamed and deleted.\n"
+"    Deleting or moving a bookmark has no effect on the associated changesets."
+msgstr ""
+"    リビジョンへのラベルであるブックマークは、 作業履歴の追跡を助けます。\n"
+"    ブックマークへの操作は履歴記録されず、 移動・削除・改名も可能です。\n"
+"    ブックマークの削除・移動による、 対象リビジョンへの影響はありません。"
+
+msgid ""
+"    Creating or updating to a bookmark causes it to be marked as 'active'.\n"
+"    Active bookmarks are indicated with a '*'.\n"
+"    When a commit is made, an active bookmark will advance to the new "
+"commit.\n"
+"    A plain :hg:`update` will also advance an active bookmark, if possible.\n"
+"    Updating away from a bookmark will cause it to be deactivated."
+msgstr ""
+"    ブックマークの作成や更新は、 ブックマークを 'アクティブ' 化します。\n"
+"    アクティブなブックマークは '*' 付きで表示されます。 コミットの際に、\n"
+"    アクティブなブックマークの参照先は、 新規リビジョンへと移動します。\n"
+"    アクティブブックマークは、 リビジョン指定無し :hg:`update` で移動が、\n"
+"    リビジョン指定付き :hg:`update` で非アクティブ化が発生します。"
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see\n"
+"    :hg:`help push` and :hg:`help pull`). If a shared bookmark has\n"
+"    diverged, a new 'divergent bookmark' of the form 'name@path' will\n"
+"    be created. Using :hg:'merge' will resolve the divergence."
 msgstr ""
 "    ブックマークは、 リポジトリ間での取り込みや反映が可能です\n"
-"    (:hg:`help push` および :hg:`help pull` 参照)。\n"
-"    但し、 連携するリポジトリの両方が、\n"
-"    ブックマーク機能に対応している必要があります\n"
-"    1.8 版より前の Mercurial の場合、 \n"
-"    bookmarks エクステンションを有効にしてください。"
-
-msgid ""
-"    If you set a bookmark called '@', new clones of the repository will\n"
-"    have that revision checked out (and the bookmark made active) by\n"
-"    default."
-msgstr ""
-"    ブックマーク '@' が設定されている場合、 特に指定がなければ、\n"
-"    複製先の作業領域は、 そのリビジョンで更新されます (ブックマーク '@'\n"
-"    はアクティブになります)"
-
-msgid ""
-"    With -i/--inactive, the new bookmark will not be made the active\n"
-"    bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-"    active even if -i/--inactive is not given. If no NAME is given, the\n"
-"    current active bookmark will be marked inactive.\n"
-"    "
-msgstr ""
-"    -i/--inactive 指定のある場合、 作成された新規ブックマークは、\n"
-"    アクティブにはなりません。 -r/--rev 指定のある場合、 -i/--inactive\n"
-"    指定が無くても、 新規ブックマークはアクティブになりません。\n"
-"    -i/--inactive 指定時に、 ブックマーク名指定が無い場合は、\n"
-"    現在アクティブなブックマークが、 非アクティブ化されます。\n"
+"    (:hg:`help push` および :hg:`help pull` 参照)。 連携先リポジトリで、\n"
+"    同名ブックマークの参照先が分岐 (divergent) する場合、\n"
+"    'ブックマーク名@連携先' 形式の '分岐ブックマーク' が新規作成されます。\n"
+"    :hg:'merge' により分岐が解消されます。"
+
+msgid ""
+"    A bookmark named '@' has the special property that :hg:`clone` will\n"
+"    check it out by default if it exists."
+msgstr ""
+"    ブックマーク '@' が存在する場合、 :hg:`clone` での作業領域更新の、\n"
+"    デフォルト対象リビジョンとして使用されます。"
+
+msgid "      - create an active bookmark for a new line of development::"
+msgstr "      - 新規開発ライン向けに、アクティブブックマークを作成::"
+
+msgid "          hg book new-feature"
+msgstr "          hg book new-feature"
+
+msgid "      - create an inactive bookmark as a place marker::"
+msgstr "      - 非アクティブブックマークをマーキング代わりに作成::"
+
+msgid "          hg book -i reviewed"
+msgstr "          hg book -i reviewed"
+
+msgid "      - create an inactive bookmark on another changeset::"
+msgstr "      - 作業領域親リビジョン以外を指す非アクティブブックマークを作成::"
+
+msgid "          hg book -r .^ tested"
+msgstr "          hg book -r .^ tested"
+
+msgid "      - move the '@' bookmark from another branch::"
+msgstr "      - ブックマーク '@' を作業領域親リビジョンに強制的に移動::"
+
+msgid ""
+"          hg book -f @\n"
+"    "
+msgstr ""
+"          hg book -f @\n"
 "    "
 
 msgid "bookmark names cannot consist entirely of whitespace"
@@ -11453,9 +11484,6 @@
 msgid "use the secret phase for committing"
 msgstr "secret フェーズでコミット中"
 
-msgid "further edit commit message already specified"
-msgstr "指定されたコミットログをエディタで更に編集"
-
 msgid "commit the specified files or all outstanding changes"
 msgstr "指定ファイルまたは全ての変更内容のリポジトリへの記録"
 
@@ -12620,6 +12648,13 @@
 msgstr "          hg log --debug -r ."
 
 msgid ""
+"    See :hg:`help revisions` and :hg:`help revsets` for more about\n"
+"    specifying revisions."
+msgstr ""
+"    リビジョン指定の詳細は :hg:`help revisions` および :hg:`help revsets`\n"
+"    を参照してください。"
+
+msgid ""
 "    Returns 0 on successful completion.\n"
 "    "
 msgstr ""
@@ -12931,6 +12966,9 @@
 msgid "apply patch without touching the working directory"
 msgstr "作業領域の内容を変更せずにパッチを適用"
 
+msgid "commit even if some hunks fail"
+msgstr "適用失敗があってもコミットを実施"
+
 msgid "apply patch to the nodes from which it was generated"
 msgstr "パッチ作成時と同じ親リビジョンに対して適用"
 
@@ -13012,6 +13050,26 @@
 "    パッチによる変更結果から、 改名や複製を検出します。"
 
 msgid ""
+"    Use --partial to ensure a changeset will be created from the patch\n"
+"    even if some hunks fail to apply. Hunks that fail to apply will be\n"
+"    written to a <target-file>.rej file. Conflicts can then be resolved\n"
+"    by hand before :hg:`commit --amend` is run to update the created\n"
+"    changeset. This flag exists to let people import patches that\n"
+"    partially apply without losing the associated metadata (author,\n"
+"    date, description, ...). Note that when none of the hunk applies\n"
+"    cleanly, :hg:`import --partial` will create an empty changeset,\n"
+"    importing only the patch metadata."
+msgstr ""
+"    --partial 指定により、 パッチが部分的にしか適用されない場合でも、\n"
+"    新規リビジョンの生成が保証されます。 適用失敗したパッチ部位は、\n"
+"    ``対象ファイル.rej`` ファイルに保存されます。 適用失敗部位の問題を、\n"
+"    手動で解消した上で、 :hg:`commit --amend` で取り込むことも可能です。\n"
+"    --partial には、 パッチに含まれるメタデータ情報 (コミットユーザ名、\n"
+"    日付、 コミットログなど) を失うことを回避する目的があります。\n"
+"    パッチ適用が完全に失敗した場合でも、 :hg:`import --partial` は、\n"
+"    メタデータのみが記録された、 新規リビジョンを作成します。"
+
+msgid ""
 "    To read a patch from standard input, use \"-\" as the patch name. If\n"
 "    a URL is specified, the patch will be downloaded from it.\n"
 "    See :hg:`help dates` for a list of formats valid for -d/--date."
@@ -13047,6 +13105,13 @@
 msgid "          hg import --exact proposed-fix.patch"
 msgstr "          hg import --exact proposed-fix.patch"
 
+msgid ""
+"    Returns 0 on success, 1 on partial success (see --partial).\n"
+"    "
+msgstr ""
+"    成功時のコマンド終了値は 0、部分成功時は 1 です (--partial 参照).\n"
+"    "
+
 msgid "need at least one patch to import"
 msgstr "取り込みには最低1つのパッチ名指定が必要です"
 
@@ -13059,6 +13124,12 @@
 msgid "applying patch from stdin\n"
 msgstr "標準入力からのパッチを適用中\n"
 
+msgid "patch applied partially\n"
+msgstr "パッチの一部のみが適用されました\n"
+
+msgid "(fix the .rej files and run `hg commit --amend`)\n"
+msgstr "(.rej ファイル中の却下差分への対処後に hg commit --amend を推奨)\n"
+
 #, python-format
 msgid "%s: no diffs found"
 msgstr "%s: 差分がありません"
@@ -13330,6 +13401,12 @@
 msgid "          hg log -k bug --template \"{rev}\\n\""
 msgstr "          hg log -k bug --template \"{rev}\\n\""
 
+msgid "      - list available log templates::"
+msgstr "      - 利用可能なテンプレートスタイル一覧の表示::"
+
+msgid "          hg log -T list"
+msgstr "          hg log -T list"
+
 msgid "      - check if a given changeset is included is a tagged release::"
 msgstr "      - 指定リビジョンが指定タグ時点において含まれているかを確認::"
 
@@ -13351,13 +13428,6 @@
 "          hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
 
 msgid ""
-"    See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-"    specifying revisions."
-msgstr ""
-"    リビジョン指定の詳細は :hg:`help revisions` および :hg:`help revsets`\n"
-"    を参照してください。"
-
-msgid ""
 "    See :hg:`help templates` for more about pre-packaged styles and\n"
 "    specifying custom templates."
 msgstr ""
@@ -14106,8 +14176,17 @@
 msgid "can't specify --all and patterns"
 msgstr "--all とパターンは同時に指定できません"
 
-msgid "no files or directories specified; use --all to remerge all files"
-msgstr "再マージには、 ファイル/ディレクトリか、 --all を指定してください"
+msgid "no files or directories specified"
+msgstr "ファイル/ディレクトリ指定がありません"
+
+msgid "resolve command not applicable when not merging"
+msgstr "マージが実施されていない場合は resolve コマンドを使用できません"
+
+msgid "arguments do not match paths that need resolving\n"
+msgstr "指定パターンは衝突解消対象ファイルに合致しません\n"
+
+msgid "(no more unresolved files)\n"
+msgstr "(衝突未解消ファイルはありません)\n"
 
 msgid "revert all changes when no arguments given"
 msgstr "引数指定が無い場合に、 全ファイルの内容を復旧"
@@ -14178,9 +14257,6 @@
 msgid "use \"hg update\" or see \"hg help revert\""
 msgstr "\"hg update\" 実施を検討するか、\"hg help revert\" を参照"
 
-msgid "no files or directories specified"
-msgstr "ファイル/ディレクトリ指定がありません"
-
 msgid ""
 "uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
 "abort the merge"
@@ -14674,9 +14750,6 @@
 msgid "remove a tag"
 msgstr "タグの削除"
 
-msgid "use <text> as commit message"
-msgstr "指定文字列をコミットログとして使用"
-
 msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
 msgstr "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
 
@@ -14937,6 +15010,14 @@
 msgid "cannot specify both -c/--check and -C/--clean"
 msgstr "-c/--check と -C/--clean は併用できません"
 
+#, python-format
+msgid "(activating bookmark %s)\n"
+msgstr "(ブックマーク %s をアクティブ化中)\n"
+
+#, python-format
+msgid "(leaving bookmark %s)\n"
+msgstr "(ブックマーク %s を非アクティブ化中)\n"
+
 msgid "verify the integrity of the repository"
 msgstr "リポジトリの整合性検証"
 
@@ -14982,6 +15063,13 @@
 "頒布条件に関しては同梱されるライセンス条項をお読みください。\n"
 "市場適合性や特定用途への可否を含め、 本製品は無保証です。\n"
 
+msgid ""
+"\n"
+"Enabled extensions:"
+msgstr ""
+"\n"
+"有効化されているエクステンション:"
+
 #, python-format
 msgid "unknown mode %s"
 msgstr "未知のモード %s"
@@ -15139,6 +15227,10 @@
 msgstr "新しいヘッド %s が連携先のブランチ '%s' に作成されます!"
 
 #, python-format
+msgid "push creates new remote head %s with bookmark '%s'!"
+msgstr "新しいヘッド %s がブックマーク '%s' 付きで連携先に作成されます!"
+
+#, python-format
 msgid "push creates new remote head %s!"
 msgstr "新しいヘッド %s が連携先に作成されます!"
 
@@ -15404,6 +15496,10 @@
 msgstr "履歴反映対象に分岐 (divergent) した後継リビジョンが含まれます!: %s"
 
 #, python-format
+msgid "server ignored update of %s to public!\n"
+msgstr "連携先で、%s の public 化が無視されました!\n"
+
+#, python-format
 msgid "updating %s to public failed!\n"
 msgstr "%s のフェーズの public 化に失敗!\n"
 
@@ -15423,6 +15519,10 @@
 msgstr "連携先の changegroupsubset 機能未対応により、 部分取り込みできません。"
 
 #, python-format
+msgid "unsupported getbundle arguments: %s"
+msgstr "getbundle プロトコルに未知の引数が指定されました: %s"
+
+#, python-format
 msgid "*** failed to import extension %s from %s: %s\n"
 msgstr "*** %s のインポートに失敗 (%s): %s\n"
 
@@ -15524,6 +15624,21 @@
 msgstr "警告: internal:merge はシンボリックリンク %s をマージできません\n"
 
 msgid ""
+"``internal:tagmerge``\n"
+"Uses the internal tag merge algorithm (experimental)."
+msgstr ""
+"``internal:tagmerge``\n"
+"タグファイル専用のマージ処理を行います (実験的実装)"
+
+#, python-format
+msgid ""
+"automatic tag merging of %s failed! (use 'hg resolve --tool internal:merge' "
+"or another merge tool of your choice)\n"
+msgstr ""
+"タグファイル %s の自動マージに失敗しました ('hg resolve --tool internal:"
+"merge'あるいは別のツールを使ってマージしてください)\n"
+
+msgid ""
 "``internal:dump``\n"
 "Creates three versions of the files to merge, containing the\n"
 "    contents of local, other and base. These files can then be used to\n"
@@ -16045,6 +16160,20 @@
 msgid "Extension Commands"
 msgstr "エクステンション由来のコマンド"
 
+msgid "no matches"
+msgstr "該当するヘルプトピックはありません"
+
+msgid "try \"hg help\" for a list of topics"
+msgstr "ヘルプトピックの一覧は \"hg help\" で表示されます"
+
+#, python-format
+msgid "no such help topic: %s"
+msgstr "該当するヘルプトピックはありません: %s"
+
+#, python-format
+msgid "try \"hg help --keyword %s\""
+msgstr "\"hg help --keyword %s\" を使用してみてください"
+
 msgid "Mercurial Distributed SCM\n"
 msgstr "Mercurial - 分散構成管理ツール\n"
 
@@ -16776,10 +16905,132 @@
 
 msgid ""
 "\n"
+"``committemplate``\n"
+"------------------"
+msgstr ""
+"\n"
+"``committemplate``\n"
+"------------------"
+
+msgid ""
+"``changeset`` configuration in this section is used as the template to\n"
+"customize the text shown in the editor when committing."
+msgstr ""
+"本セクションでの ``changeset`` 設定は、 コミット時のエディタ起動の際に、\n"
+"表示されるテキストのカスタマイズに使用されます。"
+
+msgid ""
+"In addition to pre-defined template keywords, commit log specific one\n"
+"below can be used for customization:"
+msgstr ""
+"既存のテンプレートキーワードの他に、 本セクションでの定義でのみ有効な、\n"
+"以下のテンプレートキーワードが使用できます:"
+
+msgid ""
+"``extramsg``\n"
+"    String: Extra message (typically 'Leave message empty to abort\n"
+"    commit.'). This may be changed by some commands or extensions."
+msgstr ""
+"``extramsg``\n"
+"    文字列。 追加メッセージ (通常は 'メッセージが空のままならコミットを\n"
+"    中止します。') 実行されるコマンドによって、指定される内容が、\n"
+"    異なる場合があります。 (※ 訳注: MQ 系コマンドで異なる内容になります)"
+
+msgid ""
+"For example, the template configuration below shows as same text as\n"
+"one shown by default::"
+msgstr ""
+"例えば、 以下のような設定記述により、 カスタマイズ未実施の際の表示と、\n"
+"全く同じ内容の情報が表示されます::"
+
+msgid ""
+"    [committemplate]\n"
+"    changeset = {desc}\\n\\n\n"
+"        HG: Enter commit message.  Lines beginning with 'HG:' are removed.\n"
+"        HG: {extramsg}\n"
+"        HG: --\n"
+"        HG: user: {author}\\n{ifeq(p2rev, \"-1\", \"\",\n"
+"       \"HG: branch merge\\n\")\n"
+"       }HG: branch '{branch}'\\n{if(currentbookmark,\n"
+"       \"HG: bookmark '{currentbookmark}'\\n\")  }{subrepos %\n"
+"       \"HG: subrepo {subrepo}\\n\"              }{file_adds %\n"
+"       \"HG: added {file}\\n\"                   }{file_mods %\n"
+"       \"HG: changed {file}\\n\"                 }{file_dels %\n"
+"       \"HG: removed {file}\\n\"                 }{if(files, \"\",\n"
+"       \"HG: no files changed\\n\")}"
+msgstr ""
+"    [committemplate]\n"
+"    changeset = {desc}\\n\\n\n"
+"       HG: コミットログを入力してください。'HG:' で始まる行は無視されます。\n"
+"       HG: {extramsg}\n"
+"       HG: --\n"
+"       HG: ユーザ: {author}\\n{ifeq(p2rev, \"-1\", \"\",\n"
+"      \"HG: ブランチのマージ\\n\")\n"
+"      }HG: ブランチ '{branch}'\\n{if(currentbookmark,\n"
+"      \"HG: ブックマーク '{currentbookmark}'\\n\")  }{subrepos %\n"
+"      \"HG: サブリポジトリ {subrepo}\\n\"           }{file_adds %\n"
+"      \"HG: {file} を追加\\n\"                      }{file_mods %\n"
+"      \"HG: {file} を変更\\n\"                      }{file_dels %\n"
+"      \"HG: {file} を削除\\n\"                      }{if(files, \"\",\n"
+"      \"HG: ファイル変更なし\\n\")}"
+
+msgid ""
+"   For some problematic encodings (see :hg:`help win32mbcs` for\n"
+"   detail), this customization should be configured carefully, to\n"
+"   avoid showing broken characters."
+msgstr ""
+"   問題のある文字コード (詳細は :hg:`help win32mbcs` 参照) を使う場合、\n"
+"   本機能によるカスタマイズは、 表示内容が崩れないように注意が必要です。"
+
+msgid ""
+"   For example, if multibyte character ending with backslash (0x5c) is\n"
+"   followed by ASCII character 'n' in the customized template,\n"
+"   sequence of backslash and 'n' is treated as line-feed unexpectedly\n"
+"   (and multibyte character is broken, too)."
+msgstr ""
+"   例えば、 バックスラッシュ (0x5c) で終了する複数バイト文字が、 ASCII\n"
+"   文字の ``n`` を後ろに伴うようなテンプレート定義では、 この2バイトが、\n"
+"   改行文字扱いされてしまいます (先行する複数バイト文字も崩れます)。\n"
+"   (※ 訳注: cp932/Shift-JIS では「ソ」や「能」などが該当します)"
+
+msgid ""
+"Customized template is used for commands below (``--edit`` may be\n"
+"required):"
+msgstr ""
+"カスタマイズ用テンプレートは、 以下のコマンドで利用されます\n"
+"(エディタ起動のために ``--edit`` オプションが必要な場合もあります):"
+
+msgid ""
+"- :hg:`backout`\n"
+"- :hg:`commit`\n"
+"- :hg:`fetch` (for merge commit only)\n"
+"- :hg:`graft`\n"
+"- :hg:`histedit`\n"
+"- :hg:`import`\n"
+"- :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`\n"
+"- :hg:`rebase`\n"
+"- :hg:`shelve`\n"
+"- :hg:`sign`\n"
+"- :hg:`tag`\n"
+"- :hg:`transplant`"
+msgstr ""
+"- :hg:`backout`\n"
+"- :hg:`commit`\n"
+"- :hg:`fetch` (マージコミット時限定)\n"
+"- :hg:`graft`\n"
+"- :hg:`histedit`\n"
+"- :hg:`import`\n"
+"- :hg:`qfold`, :hg:`qnew` および :hg:`qrefresh`\n"
+"- :hg:`rebase`\n"
+"- :hg:`shelve`\n"
+"- :hg:`sign`\n"
+"- :hg:`tag`\n"
+"- :hg:`transplant`"
+
+msgid ""
 "``decode/encode``\n"
 "-----------------"
 msgstr ""
-"\n"
 "``decode/encode``\n"
 "-----------------"
 
@@ -17799,8 +18050,14 @@
 
 msgid ""
 "This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr "ファイル単位のマージを行う外部マージツールの設定。"
+"merges. This section has likely been preconfigured at install time.\n"
+"Use :hg:`config merge-tools` to check the existing configuration.\n"
+"Also see :hg:`help merge-tools` for more details."
+msgstr ""
+"本セクションは、 ファイル毎のマージ処理のための、 外部ツールを設定します。\n"
+"インストール時に事前設定されている可能性もあります。 既存の設定内容は、\n"
+":hg:`config merge-tools` で確認できます。 設定の詳細は\n"
+":hg:`help merge-tools` も参照してください。"
 
 msgid "Example ``~/.hgrc``::"
 msgstr "``~/.hgrc`` での設定例を以下に示します::"
@@ -17823,6 +18080,13 @@
 "  kdiff3.priority = 1"
 
 msgid ""
+"  # Changing the priority of preconfigured tool\n"
+"  vimdiff.priority = 0"
+msgstr ""
+"  # 設定済みツール間での優先度の変更\n"
+"  vimdiff.priority = 0"
+
+msgid ""
 "  # Define new tool\n"
 "  myHtmlTool.args = -m $local $other $base $output\n"
 "  myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
@@ -17856,13 +18120,26 @@
 "``args``\n"
 "  The arguments to pass to the tool executable. You can refer to the\n"
 "  files being merged as well as the output file through these\n"
-"  variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+"  variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning\n"
+"  of ``$local`` and ``$other`` can vary depending on which action is being\n"
+"  performed. During and update or merge, ``$local`` represents the original\n"
+"  state of the file, while ``$other`` represents the commit you are "
+"updating\n"
+"  to or the commit you are merging with. During a rebase ``$local``\n"
+"  represents the destination of the rebase, and ``$other`` represents the\n"
+"  commit being rebased.\n"
 "  Default: ``$local $base $other``"
 msgstr ""
 "``args``\n"
-"  実行可能ファイルに渡される引数。 ``$base``、 ``$local``、 ``$other``\n"
-"  および ``$output`` という記述で、 マージ対象ファイル群や、\n"
-"  結果ファイルを指定可能です。 デフォルト値: ``$local $base $other``"
+"  実行時にツールに指定される引数。 ``$base``, ``$local``, ``$other``, \n"
+"  ``$output`` といった表記により、マージ対象や、 結果格納先ファイルも、\n"
+"  指定可能です。 ``$local`` や ``$other`` は、 実施する処理に応じて、\n"
+"  意味合いが変化します。 update や merge コマンドの場合、 ``$local``\n"
+"  はコマンド実施前時点の作業領域の、 ``$other`` は対象リビジョン時点の、\n"
+"  それぞれの内容を保持するファイルを指します。 一方で rebase の場合は、\n"
+"  ``$local`` が rebase 先、 ``$other`` が rebase 元リビジョン時点の、\n"
+"  それぞれの内容を保持するファイルを指します。デフォルト値:\n"
+"  ``$local $base $other``"
 
 msgid ""
 "``premerge``\n"
@@ -18669,6 +18946,50 @@
 "    セクションの説明を参照してください。"
 
 msgid ""
+"``mergemarkers``\n"
+"    Sets the merge conflict marker label styling. The ``detailed``\n"
+"    style uses the ``mergemarkertemplate`` setting to style the labels.\n"
+"    The ``basic`` style just uses 'local' and 'other' as the marker label.\n"
+"    One of ``basic`` or ``detailed``.\n"
+"    Default is ``basic``."
+msgstr ""
+"``mergemarkers``\n"
+"    マージで衝突が検出された際に、 ファイルに挿入される衝突マークの、\n"
+"    情報ラベル部分の形式。 ``detailed`` 形式では ``mergemarkertemplate``\n"
+"    によるテンプレート定義が使用されます。 ``basic`` 形式では ``local``\n"
+"    および ``other`` だけの単純なラベルになります。上記のいずれかのみ、\n"
+"    指定可能です。デフォルト値: ``basic``"
+
+msgid ""
+"``mergemarkertemplate``\n"
+"    The template used to print the commit description next to each conflict\n"
+"    marker during merge conflicts. See :hg:`help templates` for the "
+"template\n"
+"    format.\n"
+"    Defaults to showing the hash, tags, branches, bookmarks, author, and\n"
+"    the first line of the commit description.\n"
+"    You have to pay attention to encodings of managed files, if you\n"
+"    use non-ASCII characters in tags, branches, bookmarks, author\n"
+"    and/or commit descriptions. At template expansion, non-ASCII\n"
+"    characters use the encoding specified by ``--encoding`` global\n"
+"    option, ``HGENCODING`` or other locale setting environment\n"
+"    variables. The difference of encoding between merged file and\n"
+"    conflict markers causes serious problem."
+msgstr ""
+"``mergemarkertemplate``\n"
+"    マージで衝突が検出された際に、 ファイルに挿入される衝突マークの、\n"
+"    テンプレート機能による定義。 テンプレート機能そのものに関する詳細は\n"
+"    :hg:`help templates` を参照してください。 デフォルト設定では、\n"
+"    ハッシュ値、タグ名、ブランチ名、ブックマーク、ユーザ名および、\n"
+"    コミットログの一行目を表示します。 タグ名、ブランチ名、ブックマーク、\n"
+"    ユーザ名、 コミットログのいずれかで非 ASCII 文字を使用している場合は、\n"
+"    マージ対象ファイルの文字コードに、 注意を払う必要があります。\n"
+"    テンプレート展開の際に、 非 ASCII 文字は ``--encoding`` オプション、\n"
+"    ``HGENCODING`` あるいは各種ロケール環境変数で指定された文字コードで、\n"
+"    符号化されます。 マージ対象ファイルの文字コードと異なる場合、\n"
+"    文字コード混在による深刻な問題を生じます。"
+
+msgid ""
 "``portablefilenames``\n"
 "    Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.\n"
 "    Default is ``warn``.\n"
@@ -22750,33 +23071,29 @@
 
 msgid ""
 "Mercurial allows you to customize output of commands through\n"
-"templates. You can either pass in a template from the command\n"
-"line, via the --template option, or select an existing\n"
-"template-style (--style)."
-msgstr ""
-"Mercurial では、 テンプレート機能によってコマンドの出力をカスタマイズ\n"
-"することができます。 コマンドラインからの指定では、 --template による\n"
-"テンプレート指定と、 --style によるスタイル指定の両方が使用できます。"
+"templates. You can either pass in a template or select an existing\n"
+"template-style from the command line, via the --template option."
+msgstr ""
+"Mercurial は、 コマンド出力をテンプレート機能でカスタマイズ可能です。\n"
+"コマンドラインの --template オプション経由で、 テンプレート指定や、\n"
+"スタイル定義 (※ 訳注: 同梱のもの以外に独自定義可能) を指定できます。"
 
 msgid ""
 "You can customize output for any \"log-like\" command: log,\n"
-"outgoing, incoming, tip, parents, heads and glog."
+"outgoing, incoming, tip, parents, and heads."
 msgstr ""
 "「log 的」な出力を行う一連のコマンド出力をカスタマイズ可能です:\n"
-"log, outgoing, incoming, tip, parents, heads, glog"
-
-msgid ""
-"Five styles are packaged with Mercurial: default (the style used\n"
-"when no explicit preference is passed), compact, changelog, phases\n"
-"and xml.\n"
-"Usage::"
-msgstr ""
-"Mercurial には、 default(明示的な指定が無い場合のスタイル)、 compact、\n"
-"changelog、 phases、 および xml の5つのスタイル設定が同梱されています。\n"
-"スタイルの指定方法は以下の通り::"
-
-msgid "    $ hg log -r1 --style changelog"
-msgstr "    $ hg log -r1 --style changelog"
+"log, outgoing, incoming, tip, parents, heads"
+
+msgid ""
+"Some built-in styles are packaged with Mercurial. These can be listed\n"
+"with :hg:`log --template list`. Example usage::"
+msgstr ""
+"いくつかのスタイル定義が Mercurial に同梱されています。 スタイルの一覧は\n"
+":hg:`log --template list` で表示されます。 スタイル定義の利用例::"
+
+msgid "    $ hg log -r1.0::1.1 --template changelog"
+msgstr "    $ hg log -r1.0::1.1 --template changelog"
 
 msgid ""
 "A template is a piece of text, with markup to invoke variable\n"
@@ -22873,12 +23190,18 @@
 msgid "- shortest(node)"
 msgstr "- shortest(node)"
 
+msgid "- startswith(string, text)"
+msgstr "- startswith(string, text)"
+
 msgid "- strip(text[, chars])"
 msgstr "- strip(text[, chars])"
 
 msgid "- sub(pat, repl, expr)"
 msgstr "- sub(pat, repl, expr)"
 
+msgid "- word(number, text[, separator])"
+msgstr "- word(number, text[, separator])"
+
 msgid "Also, for any expression that returns a list, there is a list operator:"
 msgstr "また、 列挙形式を返す expr に対しては、 以下の様な記述が可能です:"
 
@@ -22900,6 +23223,12 @@
 msgid "   $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\""
 msgstr "   $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\""
 
+msgid "- Modify each line of a commit description::"
+msgstr "- コミットログの各行の行頭に文字を追加::"
+
+msgid "   $ hg log --template \"{splitlines(desc) % '**** {line}\\n'}\""
+msgstr "   $ hg log --template \"{splitlines(desc) % '**** {line}\\n'}\""
+
 msgid "- Format date::"
 msgstr "- 日時情報の整形::"
 
@@ -22963,8 +23292,22 @@
 msgid "- Mark the working copy parent with '@'::"
 msgstr "- 作業領域の親リビジョンに '@' を表示::"
 
-msgid "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\"\n"
-msgstr "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\"\n"
+msgid "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\""
+msgstr "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\""
+
+msgid "- Show only commit descriptions that start with \"template\"::"
+msgstr "- \"template\" で始まるコミットログのみを表示::"
+
+msgid ""
+"   $ hg log --template \"{startswith(\\\"template\\\", firstline(desc))}\\n\""
+msgstr ""
+"   $ hg log --template \"{startswith(\\\"template\\\", firstline(desc))}\\n\""
+
+msgid "- Print the first word of each line of a commit message::"
+msgstr "- コミットログの最初の語のみを表示::"
+
+msgid "   $ hg log --template \"{word(\\\"0\\\", desc)}\\n\"\n"
+msgstr "   $ hg log --template \"{word(\\\"0\\\", desc)}\\n\"\n"
 
 msgid "Valid URLs are of the form::"
 msgstr "有効な URL 指定は以下の形式です::"
@@ -23367,8 +23710,11 @@
 msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
 msgstr "作業領域の .hgtags が変更されています (手動でコミットしてください)"
 
-msgid "abandoned transaction found - run hg recover"
-msgstr "中断トランザクションを検出 - 'hg recover' を実施してください"
+msgid "abandoned transaction found"
+msgstr "中断トランザクションを検出しました"
+
+msgid "run 'hg recover' to clean up transaction"
+msgstr "情報を破棄する場合は 'hg recover' を実施してください"
 
 msgid "rolling back interrupted transaction\n"
 msgstr "中断されたトランザクションをロールバック中\n"
@@ -24549,9 +24895,6 @@
 "``min(set)``\n"
 "    指定リビジョン群中で、 リビジョン番号が最小のもの。"
 
-msgid "_missingancestors requires two arguments"
-msgstr "_missingancestors の引数は2つです"
-
 msgid ""
 "``modifies(pattern)``\n"
 "    Changesets modifying files matched by pattern."
@@ -25324,6 +25667,17 @@
 "リビジョン %s を反映できません。\n"
 
 #, python-format
+msgid ""
+"automatic .hgtags merge failed\n"
+"the following %d tags are in conflict: %s\n"
+msgstr ""
+"タグファイルの自動マージに失敗しました。\n"
+"%d 個のタグ定義が衝突しています: %s\n"
+
+msgid ".hgtags merged successfully\n"
+msgstr "タグファイルのマージに成功しました\n"
+
+#, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s %s行目: %s\n"
 
@@ -25512,6 +25866,9 @@
 msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
 msgstr ":shortdate: 日時情報。 \"2006-09-18\" 形式で可読化します。"
 
+msgid ":splitlines: Any text. Split text into a list of lines."
+msgstr ":splitlines: 文字列。 文字列を行のリストに分割します。"
+
 msgid ""
 ":stringify: Any type. Turns the value into text by converting values into\n"
 "    text and concatenating them."
@@ -25570,6 +25927,13 @@
 msgid ":children: List of strings. The children of the changeset."
 msgstr ":children: 文字列列挙。 リビジョンの子供。"
 
+msgid ""
+":currentbookmark: String. The active bookmark, if it is\n"
+"    associated with the changeset"
+msgstr ""
+":currentbookmark: 文字列. アクティブブックマーク (対象リビジョンに対して、\n"
+"    関連付けられている場合のみ)"
+
 msgid ":date: Date information. The date when the changeset was committed."
 msgstr ":date: 日時情報。 リビジョンが記録された日時。"
 
@@ -25672,6 +26036,9 @@
 msgid ":rev: Integer. The repository-local changeset revision number."
 msgstr ":rev: 整数。 各リポジトリ固有のリビジョン番号。"
 
+msgid ":subrepos: List of strings. Updated subrepositories in the changeset."
+msgstr ":subrepos: 文字列挙。 当該リビジョンで更新されたサブリポジトリ名。"
+
 msgid ":tags: List of strings. Any tags associated with the changeset."
 msgstr ":tags: 文字列列挙。 当該リビジョンに付与されたタグの一覧。"
 
@@ -25688,8 +26055,9 @@
 msgid "unknown method '%s'"
 msgstr "未知の処理 '%s' が指定されました"
 
-msgid "expected a symbol"
-msgstr "シンボル指定が必要です"
+#, python-format
+msgid "expected a symbol, got '%s'"
+msgstr "シンボル (symbol) 指定が必要です (実際の指定は '%s')"
 
 #, python-format
 msgid "unknown function '%s'"
@@ -25760,6 +26128,15 @@
 msgid "sub expects three arguments"
 msgstr "sub は引数が3つ必要です"
 
+#. i18n: "startswith" is a keyword
+msgid "startswith expects two arguments"
+msgstr "startswith の引数は2つです"
+
+#. i18n: "word" is a keyword
+#, python-format
+msgid "word expects two or three arguments, got %d"
+msgstr "word は2または3の引数が必要です (実際の引数は %d 個)"
+
 msgid "unmatched quotes"
 msgstr "引用符の対応関係が不正です"
 
--- a/i18n/pt_BR.po	Fri Jul 18 19:46:56 2014 -0400
+++ b/i18n/pt_BR.po	Fri Aug 01 18:32:52 2014 -0500
@@ -31,7 +31,7 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2014-04-30 10:50-0300\n"
+"POT-Creation-Date: 2014-07-20 13:25-0300\n"
 "PO-Revision-Date: 2014-01-25 23:15-0200\n"
 "Last-Translator: Leonardo Bueno Postacchini <notivago@gmail.com>\n"
 "Language-Team: Brazilian Portuguese\n"
@@ -1067,7 +1067,7 @@
 "    bzurl=http://my-project.org/bugzilla\n"
 "    user=bugmail@my-project.org\n"
 "    password=plugh\n"
-"    version=xmlrpc\n"
+"    version=xmlrpc+email\n"
 "    bzemail=bugzilla@my-project.org\n"
 "    template=Changeset {node|short} in {root|basename}.\n"
 "             {hgweb}/{webroot}/rev/{node|short}\\n\n"
@@ -1078,7 +1078,7 @@
 "    bzurl=http://my-project.org/bugzilla\n"
 "    user=bugmail@my-project.org\n"
 "    password=plugh\n"
-"    version=xmlrpc\n"
+"    version=xmlrpc+email\n"
 "    bzemail=bugzilla@my-project.org\n"
 "    template=Changeset {node|short} in {root|basename}.\n"
 "             {hgweb}/{webroot}/rev/{node|short}\\n\n"
@@ -1252,6 +1252,15 @@
 "Esta extensão é obsoleta. Você deve usar :hg:`log -r\n"
 "\"children(REV)\"` em seu lugar.\n"
 
+msgid "REV"
+msgstr "REV"
+
+msgid "show children of the specified revision"
+msgstr "exibe o filho de uma revisão especifica"
+
+msgid "hg children [-r REV] [FILE]"
+msgstr "hg children [-r REV] [ARQUIVO]"
+
 msgid "show the children of the given or working directory revision"
 msgstr "exibe os filhos da revisão pedida ou do diretório de trabalho"
 
@@ -1270,15 +1279,6 @@
 "    de trabalho ou da passada em --rev) será impressa.\n"
 "    "
 
-msgid "REV"
-msgstr "REV"
-
-msgid "show children of the specified revision"
-msgstr "exibe o filho de uma revisão especifica"
-
-msgid "hg children [-r REV] [FILE]"
-msgstr "hg children [-r REV] [ARQUIVO]"
-
 msgid "command to display statistics about repository history"
 msgstr "comando para mostrar estatísticas do histórico do repositório"
 
@@ -1289,6 +1289,45 @@
 msgid "analyzing"
 msgstr "analisando"
 
+msgid "count rate for the specified revision or range"
+msgstr "conta a frequência para uma revisão ou faixa especificada"
+
+msgid "DATE"
+msgstr "DATA"
+
+msgid "count rate for revisions matching date spec"
+msgstr "conta a frequência das revisões que casem com a data especificada"
+
+msgid "TEMPLATE"
+msgstr "MODELO"
+
+msgid "template to group changesets"
+msgstr "modelo para agrupar as revisões"
+
+msgid "FORMAT"
+msgstr "FORMATO"
+
+msgid "strftime-compatible format for grouping by date"
+msgstr "formato compatível com o strftime para agrupar por data"
+
+msgid "count rate by number of changesets"
+msgstr "conta a frequência pelo numero de revisões"
+
+msgid "sort by key (default: sort by count)"
+msgstr "ordenar pela chave (padrão: ordenar pela contagem)"
+
+msgid "display added/removed lines separately"
+msgstr "mostra separadamente linhas adicionadas/removidas"
+
+msgid "FILE"
+msgstr "ARQUIVO"
+
+msgid "file with email aliases"
+msgstr "arquivo com apelidos de email"
+
+msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
+msgstr "hg churn [-d DATA] [-r REV] [--aliases ARQUIVO] [ARQUIVO]"
+
 msgid "histogram of changes to the repository"
 msgstr "histograma de mudanças do repositório"
 
@@ -1372,45 +1411,6 @@
 msgid "skipping malformed alias: %s\n"
 msgstr "omitindo apelido mal formado: %s\n"
 
-msgid "count rate for the specified revision or range"
-msgstr "conta a frequência para uma revisão ou faixa especificada"
-
-msgid "DATE"
-msgstr "DATA"
-
-msgid "count rate for revisions matching date spec"
-msgstr "conta a frequência das revisões que casem com a data especificada"
-
-msgid "TEMPLATE"
-msgstr "MODELO"
-
-msgid "template to group changesets"
-msgstr "modelo para agrupar as revisões"
-
-msgid "FORMAT"
-msgstr "FORMATO"
-
-msgid "strftime-compatible format for grouping by date"
-msgstr "formato compatível com o strftime para agrupar por data"
-
-msgid "count rate by number of changesets"
-msgstr "conta a frequência pelo numero de revisões"
-
-msgid "sort by key (default: sort by count)"
-msgstr "ordenar pela chave (padrão: ordenar pela contagem)"
-
-msgid "display added/removed lines separately"
-msgstr "mostra separadamente linhas adicionadas/removidas"
-
-msgid "FILE"
-msgstr "ARQUIVO"
-
-msgid "file with email aliases"
-msgstr "arquivo com apelidos de email"
-
-msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]"
-msgstr "hg churn [-d DATA] [-r REV] [--aliases ARQUIVO] [ARQUIVO]"
-
 msgid "colorize output from some commands"
 msgstr "colore a saída de alguns comandos"
 
@@ -1670,6 +1670,45 @@
 msgid "import revisions from foreign VCS repositories into Mercurial"
 msgstr "importa revisões de repositórios de outros sistemas para o Mercurial"
 
+msgid "username mapping filename (DEPRECATED, use --authormap instead)"
+msgstr "arquivo de mapeamento de nomes de usuário (OBSOLETO, use --authormap)"
+
+msgid "source repository type"
+msgstr "tipo de repositório de origem"
+
+msgid "destination repository type"
+msgstr "tipo de repositório de destino"
+
+msgid "import up to source revision REV"
+msgstr "importa até a revisão REV da origem"
+
+msgid "remap usernames using this file"
+msgstr "arquivo de mapeamento de nomes de usuário"
+
+msgid "remap file names using contents of file"
+msgstr "arquivo de mapeamento de nomes de arquivo"
+
+msgid "splice synthesized history into place"
+msgstr "junta o histórico sintetizado no lugar"
+
+msgid "change branch names while converting"
+msgstr "muda nomes de ramos durante a conversão"
+
+msgid "try to sort changesets by branches"
+msgstr "tenta ordenar as revisões por ramos"
+
+msgid "try to sort changesets by date"
+msgstr "tenta ordenar as revisões por data"
+
+msgid "preserve source changesets order"
+msgstr "preserva a ordem de revisões da origem"
+
+msgid "try to reorder closed revisions"
+msgstr "tenta reordenar revisões fechadas"
+
+msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
+msgstr "hg convert [OPÇÃO]... ORIGEM [DESTINO [REVMAP]]"
+
 msgid "convert a foreign SCM repository to a Mercurial one."
 msgstr "converte um repositório de um outro sistema em um do Mercurial."
 
@@ -2233,68 +2272,6 @@
 "        padrão é True.\n"
 "    "
 
-msgid "create changeset information from CVS"
-msgstr "cria uma informação de revisão do CVS"
-
-msgid ""
-"    This command is intended as a debugging tool for the CVS to\n"
-"    Mercurial converter, and can be used as a direct replacement for\n"
-"    cvsps."
-msgstr ""
-"    Esse comando serve como ferramenta de depuração para o conversor\n"
-"    do CVS para o Mercurial e pode ser usado como um substituto\n"
-"    direto do cvsps."
-
-msgid ""
-"    Hg debugcvsps reads the CVS rlog for current directory (or any\n"
-"    named directory) in the CVS repository, and converts the log to a\n"
-"    series of changesets based on matching commit log entries and\n"
-"    dates."
-msgstr ""
-"    Hg debugcvsps lê o rlog do CVS para o diretório atual (ou\n"
-"    qualquer diretório nomeado) no repositório do CVS e converte o\n"
-"    log em uma série de revisões baseadas na correspondência das\n"
-"    entradas no log de commit e datas."
-
-msgid "username mapping filename (DEPRECATED, use --authormap instead)"
-msgstr "arquivo de mapeamento de nomes de usuário (OBSOLETO, use --authormap)"
-
-msgid "source repository type"
-msgstr "tipo de repositório de origem"
-
-msgid "destination repository type"
-msgstr "tipo de repositório de destino"
-
-msgid "import up to source revision REV"
-msgstr "importa até a revisão REV da origem"
-
-msgid "remap usernames using this file"
-msgstr "arquivo de mapeamento de nomes de usuário"
-
-msgid "remap file names using contents of file"
-msgstr "arquivo de mapeamento de nomes de arquivo"
-
-msgid "splice synthesized history into place"
-msgstr "junta o histórico sintetizado no lugar"
-
-msgid "change branch names while converting"
-msgstr "muda nomes de ramos durante a conversão"
-
-msgid "try to sort changesets by branches"
-msgstr "tenta ordenar as revisões por ramos"
-
-msgid "try to sort changesets by date"
-msgstr "tenta ordenar as revisões por data"
-
-msgid "preserve source changesets order"
-msgstr "preserva a ordem de revisões da origem"
-
-msgid "try to reorder closed revisions"
-msgstr "tenta reordenar revisões fechadas"
-
-msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]"
-msgstr "hg convert [OPÇÃO]... ORIGEM [DESTINO [REVMAP]]"
-
 msgid "only return changes on specified branches"
 msgstr "só retorna revisões no ramo especificado"
 
@@ -2328,6 +2305,29 @@
 msgid "hg debugcvsps [OPTION]... [PATH]..."
 msgstr "hg debugcvsps [OPÇÃO]... [CAMINHO]..."
 
+msgid "create changeset information from CVS"
+msgstr "cria uma informação de revisão do CVS"
+
+msgid ""
+"    This command is intended as a debugging tool for the CVS to\n"
+"    Mercurial converter, and can be used as a direct replacement for\n"
+"    cvsps."
+msgstr ""
+"    Esse comando serve como ferramenta de depuração para o conversor\n"
+"    do CVS para o Mercurial e pode ser usado como um substituto\n"
+"    direto do cvsps."
+
+msgid ""
+"    Hg debugcvsps reads the CVS rlog for current directory (or any\n"
+"    named directory) in the CVS repository, and converts the log to a\n"
+"    series of changesets based on matching commit log entries and\n"
+"    dates."
+msgstr ""
+"    Hg debugcvsps lê o rlog do CVS para o diretório atual (ou\n"
+"    qualquer diretório nomeado) no repositório do CVS e converte o\n"
+"    log em uma série de revisões baseadas na correspondência das\n"
+"    entradas no log de commit e datas."
+
 msgid ":svnrev: String. Converted subversion revision number."
 msgstr ":svnrev: String. Número da revisão do Subversion convertida."
 
@@ -2662,6 +2662,10 @@
 msgstr "não é possível ler objeto %r em %s"
 
 #, python-format
+msgid "cannot read %r object at %s: unexpected size"
+msgstr "não é possível ler objeto %r em %s: tamanho inesperado"
+
+#, python-format
 msgid "cannot read submodules config file in %s"
 msgstr "não é possível ler arquivo de configuração de submódulos em %s"
 
@@ -3274,6 +3278,27 @@
 msgid "cleaning up temp directory\n"
 msgstr "limpando o diretório temporário\n"
 
+msgid "CMD"
+msgstr "COMANDO"
+
+msgid "comparison program to run"
+msgstr "programa de comparação a executar"
+
+msgid "OPT"
+msgstr "OPÇÃO"
+
+msgid "pass option to comparison program"
+msgstr "passa opções para o programa de comparação"
+
+msgid "revision"
+msgstr "revisão"
+
+msgid "change made by revision"
+msgstr "mudança feita pela revisão"
+
+msgid "hg extdiff [OPT]... [FILE]..."
+msgstr "hg extdiff [OPÇÃO]... [ARQUIVO]..."
+
 msgid "use external program to diff repository (or selected files)"
 msgstr "usa um programa externo para exibir diffs do repositório ou arquivos"
 
@@ -3311,27 +3336,6 @@
 "    trabalho, e se nenhuma revisão for especificada, os arquivos do\n"
 "    diretório de trabalho serão comparados com seu pai."
 
-msgid "CMD"
-msgstr "COMANDO"
-
-msgid "comparison program to run"
-msgstr "programa de comparação a executar"
-
-msgid "OPT"
-msgstr "OPÇÃO"
-
-msgid "pass option to comparison program"
-msgstr "passa opções para o programa de comparação"
-
-msgid "revision"
-msgstr "revisão"
-
-msgid "change made by revision"
-msgstr "mudança feita pela revisão"
-
-msgid "hg extdiff [OPT]... [FILE]..."
-msgstr "hg extdiff [OPÇÃO]... [ARQUIVO]..."
-
 #, python-format
 msgid "use %(path)s to diff repository (or selected files)"
 msgstr "usa %(path)s para exibir diffs do repositório ou arquivos"
@@ -3417,6 +3421,21 @@
 msgid "pull, update and merge in one command (DEPRECATED)"
 msgstr "pull, update e merge em um comando (OBSOLETA)"
 
+msgid "a specific revision you would like to pull"
+msgstr "uma revisão específica que você gostaria de trazer"
+
+msgid "invoke editor on commit messages"
+msgstr "chama um editor para mensagens de consolidação"
+
+msgid "edit commit message (DEPRECATED)"
+msgstr "editar mensagem de consolidação (OBSOLETO)"
+
+msgid "switch parents when merging"
+msgstr "troca de pais ao mesclar"
+
+msgid "hg fetch [SOURCE]"
+msgstr "hg fetch [ORIGEM]"
+
 msgid "pull changes from a remote repository, merge new changes if needed."
 msgstr "traz mudanças de um repositório remoto, mesclando se necessário"
 
@@ -3508,21 +3527,6 @@
 msgid "new changeset %d:%s merges remote changes with local\n"
 msgstr "nova revisão %d:%s mescla alterações remotas com local\n"
 
-msgid "a specific revision you would like to pull"
-msgstr "uma revisão específica que você gostaria de trazer"
-
-msgid "edit commit message"
-msgstr "editar mensagem de consolidação"
-
-msgid "edit commit message (DEPRECATED)"
-msgstr "editar mensagem de consolidação (OBSOLETO)"
-
-msgid "switch parents when merging"
-msgstr "troca de pais quando mesclando"
-
-msgid "hg fetch [SOURCE]"
-msgstr "hg fetch [ORIGEM]"
-
 msgid "commands to sign and verify changesets"
 msgstr "comando para assinar e verificar revisões"
 
@@ -3582,8 +3586,8 @@
 msgid "TEXT"
 msgstr "TEXTO"
 
-msgid "commit message"
-msgstr "mensagem de consolidação"
+msgid "use text as commit message"
+msgstr "usa o texto como mensagem de consolidação"
 
 msgid "hg sign [OPTION]... [REV]..."
 msgstr "hg sign [OPÇÃO]... [REV]..."
@@ -3865,42 +3869,6 @@
 "Os menus de contexto das revisões vão agora mostrar entradas\n"
 "adicionais para disparar o vdiff em revisões selecionadas.\n"
 
-msgid "diff trees from two commits"
-msgstr "calcula a diferença entre duas revisões"
-
-msgid "output common ancestor information"
-msgstr "exibe informação de ancestral comum"
-
-msgid "cat a specific revision"
-msgstr "copia para a saída uma revisão específica"
-
-msgid "cat-file: type or revision not supplied\n"
-msgstr "cat-file: tipo ou revisão não fornecido\n"
-
-msgid "aborting hg cat-file only understands commits\n"
-msgstr "abortando; hg cat-file entende apenas commits\n"
-
-msgid "parse given revisions"
-msgstr "decodifica as revisões dadas"
-
-msgid "print revisions"
-msgstr "imprime as revisões"
-
-msgid "print extension options"
-msgstr "imprime opções da extensão"
-
-msgid "start interactive history viewer"
-msgstr "inicia um visualizador de histórico interativo"
-
-msgid "NUM"
-msgstr "NÚMERO"
-
-msgid "limit number of changes displayed"
-msgstr "número limite de mudanças exibidas"
-
-msgid "hg view [-l LIMIT] [REVRANGE]"
-msgstr "hg view [-l LIMITE] [SEQUÊNCIADEREVISÕES]"
-
 msgid "generate patch"
 msgstr "gera patch"
 
@@ -3919,17 +3887,26 @@
 msgid "search"
 msgstr "procura"
 
-msgid "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..."
-msgstr "hg git-diff-tree [OPÇÃO]... NÓ1 NÓ2 [ARQUIVO]..."
+msgid "diff trees from two commits"
+msgstr "calcula a diferença entre duas revisões"
+
+msgid "hg debug-merge-base REV REV"
+msgstr "hg debug-merge-base REV REV"
+
+msgid "output common ancestor information"
+msgstr "exibe informação de ancestral comum"
 
 msgid "hg debug-cat-file [OPTION]... TYPE FILE"
 msgstr "hg debug-cat-file [OPÇÃO]... TIPO ARQUIVO"
 
-msgid "hg debug-config"
-msgstr "hg debug-config"
-
-msgid "hg debug-merge-base REV REV"
-msgstr "hg debug-merge-base REV REV"
+msgid "cat a specific revision"
+msgstr "copia para a saída uma revisão específica"
+
+msgid "cat-file: type or revision not supplied\n"
+msgstr "cat-file: tipo ou revisão não fornecido\n"
+
+msgid "aborting hg cat-file only understands commits\n"
+msgstr "abortando; hg cat-file entende apenas commits\n"
 
 #. i18n: bisect changeset status
 msgid "ignored"
@@ -3938,6 +3915,9 @@
 msgid "hg debug-rev-parse REV"
 msgstr "hg debug-rev-parse REV"
 
+msgid "parse given revisions"
+msgstr "decodifica as revisões dadas"
+
 msgid "header"
 msgstr "cabeçalho"
 
@@ -3950,8 +3930,26 @@
 msgid "max-count"
 msgstr "número máximo"
 
-msgid "hg debug-rev-list [OPTION]... REV..."
-msgstr "hg debug-rev-list [OPÇÃO]... REV..."
+msgid "print revisions"
+msgstr "imprime as revisões"
+
+msgid "hg debug-config"
+msgstr "hg debug-config"
+
+msgid "print extension options"
+msgstr "imprime opções da extensão"
+
+msgid "NUM"
+msgstr "NÚMERO"
+
+msgid "limit number of changes displayed"
+msgstr "número limite de mudanças exibidas"
+
+msgid "hg view [-l LIMIT] [REVRANGE]"
+msgstr "hg view [-l LIMITE] [SEQUÊNCIADEREVISÕES]"
+
+msgid "start interactive history viewer"
+msgstr "inicia um visualizador de histórico interativo"
 
 msgid "syntax highlighting for hgweb (requires Pygments)"
 msgstr "realce de sintaxe para o hgweb (requer Pygments)"
@@ -5137,6 +5135,15 @@
 msgid "%s does not appear to be a largefile store"
 msgstr "'%s' não parece ser um repositório de largefiles"
 
+msgid "minimum size (MB) for files to be converted as largefiles"
+msgstr "tamanho mínimo (MB) para arquivos serem convertidos em largefiles"
+
+msgid "convert from a largefiles repo to a normal repo"
+msgstr "converte um repositório largefiles em um repositório normal"
+
+msgid "hg lfconvert SOURCE DEST [FILE ...]"
+msgstr "hg lfconvert ORIGEM DEST [ARQUIVO ...]"
+
 #, python-format
 msgid "%s is not a local Mercurial repo"
 msgstr "%s não é um repositório local do Mercurial"
@@ -5194,6 +5201,12 @@
 msgid "%d largefiles updated, %d removed\n"
 msgstr "%d largefiles atualizados, %d removidos\n"
 
+msgid "pull largefiles for these revisions"
+msgstr "traz largefiles para estas revisões"
+
+msgid "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
+msgstr "-r REV... [-e CMD] [--remotecmd CMD] [ORIGEM]"
+
 msgid "no revisions specified"
 msgstr "nenhuma revisão especificada"
 
@@ -5205,21 +5218,6 @@
 msgid "%d largefiles cached\n"
 msgstr "%d largefiles adicionados ao cache\n"
 
-msgid "minimum size (MB) for files to be converted as largefiles"
-msgstr "tamanho mínimo (MB) para arquivos serem convertidos em largefiles"
-
-msgid "convert from a largefiles repo to a normal repo"
-msgstr "converte um repositório largefiles em um repositório normal"
-
-msgid "hg lfconvert SOURCE DEST [FILE ...]"
-msgstr "hg lfconvert ORIGEM DEST [ARQUIVO ...]"
-
-msgid "pull largefiles for these revisions"
-msgstr "traz largefiles para estas revisões"
-
-msgid "-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]"
-msgstr "-r REV... [-e CMD] [--remotecmd CMD] [ORIGEM]"
-
 #, python-format
 msgid "largefiles: size must be number (not %s)\n"
 msgstr "largefiles: o tamanho deve ser um número (e não %s)\n"
@@ -5347,8 +5345,9 @@
 msgid "largefiles: no files to upload\n"
 msgstr "largefiles: nenhum arquivo a ser enviado\n"
 
-msgid "largefiles to upload:\n"
-msgstr "largefiles a serem enviados:\n"
+#, python-format
+msgid "largefiles to upload (%d entities):\n"
+msgstr "largefiles a serem enviados (%d entidades):\n"
 
 #. i18n: column positioning for "hg summary"
 msgid "largefiles: (no remote repo)\n"
@@ -5360,8 +5359,8 @@
 
 #. i18n: column positioning for "hg summary"
 #, python-format
-msgid "largefiles: %d to upload\n"
-msgstr "largefiles:   %d a serem enviados\n"
+msgid "largefiles: %d entities for %d files to upload\n"
+msgstr "largefiles: %d entidades para %d arquivos a serem enviados\n"
 
 #, python-format
 msgid "largefile %s is not in cache and could not be downloaded"
@@ -5781,6 +5780,10 @@
 msgid "cannot write patch \"%s\": %s"
 msgstr "não é possível escrever o patch \"%s\": %s"
 
+#. i18n: this message is shown in editor with "HG: " prefix
+msgid "Leave message empty to use default message."
+msgstr "Deixe a mensagem vazia para usar a mensagem padrão."
+
 #, python-format
 msgid "error unlinking %s\n"
 msgstr "erro removendo %s\n"
@@ -6433,9 +6436,6 @@
 "    rastrear cópias e renomeações. Veja o tópico de ajuda diffs para\n"
 "    mais informações sobre o formato git diff."
 
-msgid "option \"-e\" incompatible with \"-m\" or \"-l\""
-msgstr "opção \"-e\" incompatível com \"-m\" ou \"-l\""
-
 msgid "hg qdiff [OPTION]... [FILE]..."
 msgstr "hg qdiff [OPÇÃO]... [ARQUIVO]..."
 
@@ -6464,9 +6464,6 @@
 "    mudanças feitas pelo patch atual sem incluir as mudanças feitas\n"
 "    desde o último qrefresh."
 
-msgid "edit patch header"
-msgstr "edita o cabeçalho do patch"
-
 msgid "keep folded patch files"
 msgstr "mantém os arquivos dos patches incorporados"
 
@@ -7420,6 +7417,22 @@
 msgstr "Se pager.attend estiver presente, pager.ignore será ignorado."
 
 msgid ""
+"Lastly, you can enable and disable paging for individual commands with\n"
+"the attend-<command> option. This setting takes precedence over\n"
+"existing attend and ignore options and defaults::"
+msgstr ""
+"Finalmente, você pode habilitar ou desabilitar a paginação para\n"
+"comandos individuais com a opção attend-<comando>. Esta configuração\n"
+"tem precedência sobre opções attend e ignore existentes::"
+
+msgid ""
+"  [pager]\n"
+"  attend-cat = false"
+msgstr ""
+"  [pager]\n"
+"  attend-cat = false"
+
+msgid ""
 "To ignore global commands like :hg:`version` or :hg:`help`, you have\n"
 "to specify them in your user configuration file."
 msgstr ""
@@ -7430,11 +7443,11 @@
 msgid ""
 "The --pager=... option can also be used to control when the pager is\n"
 "used. Use a boolean value like yes, no, on, off, or use auto for\n"
-"normal behavior.\n"
+"normal behavior."
 msgstr ""
 "A opção --pager=... pode também ser usada para controlar em que momentos\n"
 "o pager será usado. Use um valor booleano como yes, no, on, off, ou use\n"
-"auto para comportamento normal.\n"
+"auto para comportamento normal."
 
 msgid "when to paginate (boolean, always, auto, or never)"
 msgstr ""
@@ -7951,6 +7964,12 @@
 msgid "purge ignored files too"
 msgstr "remove também arquivos ignorados"
 
+msgid "purge empty directories"
+msgstr "remove diretórios vazios"
+
+msgid "purge files"
+msgstr "remove arquivos"
+
 msgid "print filenames instead of deleting them"
 msgstr "imprime os nomes de arquivo ao invés de removê-los"
 
@@ -7972,8 +7991,8 @@
 "    testar mudanças locais e não gravadas em uma árvore que contenha\n"
 "    apenas essas mudanças."
 
-msgid "    This means that purge will delete:"
-msgstr "    Isto quer dizer que purge irá apagar:"
+msgid "    This means that purge will delete the following by default:"
+msgstr "    Isto quer dizer que purge irá por padrão apagar:"
 
 msgid ""
 "    - Unknown files: files marked with \"?\" by :hg:`status`\n"
@@ -7998,6 +8017,16 @@
 "    - Novos arquivos adicionados ao repositório (com :hg:`add`)"
 
 msgid ""
+"    The --files and --dirs options can be used to direct purge to delete\n"
+"    only files, only directories, or both. If neither option is given,\n"
+"    both will be deleted."
+msgstr ""
+"    As opções --files e --dirs podem ser usadas para apagar apenas\n"
+"    arquivos ou apenas diretórios, ou ambos. Se essas opções não\n"
+"    forem especificadas, tanto arquivos como diretórios serão\n"
+"    apagados."
+
+msgid ""
 "    If directories are given on the command line, only files in these\n"
 "    directories are considered."
 msgstr ""
@@ -8072,9 +8101,6 @@
 msgid "use text as collapse commit message"
 msgstr "usa o texto como mensagem de consolidação da revisão colapsada"
 
-msgid "invoke editor on commit messages"
-msgstr "chama um editor para mensagens de consolidação"
-
 msgid "read collapse commit message from file"
 msgstr "lê de um arquivo a mensagem de consolidação da revisão colapsada"
 
@@ -8557,6 +8583,9 @@
 msgstr ""
 "    Este comando não está disponível para a consolidação de uma mesclagem."
 
+msgid "hg qrecord [OPTION]... PATCH [FILE]..."
+msgstr "hg qrecord [OPÇÃO]... PATCH [ARQUIVO]..."
+
 msgid "interactively record a new patch"
 msgstr "grava um novo patch interativamente"
 
@@ -8586,15 +8615,15 @@
 msgid "no changes to record\n"
 msgstr "nenhuma mudança a ser gravada\n"
 
-msgid "hg qrecord [OPTION]... PATCH [FILE]..."
-msgstr "hg qrecord [OPÇÃO]... PATCH [ARQUIVO]..."
-
 msgid "interactively select changes to refresh"
 msgstr "seleciona interativamente alterações para atualização do patch"
 
 msgid "recreates hardlinks between repository clones"
 msgstr "recria hardlinks entre clones de repositórios"
 
+msgid "[ORIGIN]"
+msgstr "[ORIGEM]"
+
 msgid "recreate hardlinks between two repositories"
 msgstr "restaura hardlinks entre dois repositórios"
 
@@ -8692,9 +8721,6 @@
 msgid "relinked %d files (%s reclaimed)\n"
 msgstr "restaurados hardlinks de %d arquivos (%s recuperados)\n"
 
-msgid "[ORIGIN]"
-msgstr "[ORIGEM]"
-
 msgid "extend schemes with shortcuts to repository swarms"
 msgstr "amplia protocolos com atalhos para conjuntos de repositórios"
 
@@ -8781,6 +8807,12 @@
 msgid "share a common history between several working directories"
 msgstr "compartilha histórico comum entre vários diretórios de trabalho"
 
+msgid "do not create a working copy"
+msgstr "não cria uma cópia de trabalho"
+
+msgid "[-U] SOURCE [DEST]"
+msgstr "[-U] ORIGEM [DEST]"
+
 msgid "create a new shared repository"
 msgstr "cria um novo repositório compartilhado"
 
@@ -8828,12 +8860,6 @@
 msgid "this is not a shared repo"
 msgstr "este não é um repositório compartilhado"
 
-msgid "do not create a working copy"
-msgstr "não cria uma cópia de trabalho"
-
-msgid "[-U] SOURCE [DEST]"
-msgstr "[-U] ORIGEM [DEST]"
-
 msgid "save and restore changes to the working directory"
 msgstr "salva e restaura mudanças do diretório de trabalho"
 
@@ -9148,6 +9174,10 @@
 msgid "local changed subrepos found"
 msgstr "encontrados sub-repositórios locais modificados"
 
+#, python-format
+msgid "bookmark '%s' deleted\n"
+msgstr "marcador '%s' apagado\n"
+
 msgid ""
 "strip specified revision (optional, can specify revisions without this "
 "option)"
@@ -9159,13 +9189,6 @@
 msgstr ""
 "força a remoção de revisões, descarta mudanças não consolidadas (sem backup)"
 
-msgid ""
-"bundle only changesets with local revision number greater than REV which are"
-" not descendants of REV (DEPRECATED)"
-msgstr ""
-"adiciona ao bundle apenas revisões cujo número local de revisão for maior "
-"que REV e que não forem seus descendentes (OBSOLETA)"
-
 msgid "no backups"
 msgstr "nenhuma cópia de segurança"
 
@@ -9246,10 +9269,6 @@
 msgid "bookmark '%s' not found"
 msgstr "marcador '%s' não encontrado"
 
-#, python-format
-msgid "bookmark '%s' deleted\n"
-msgstr "marcador '%s' apagado\n"
-
 msgid "empty revision set"
 msgstr "conjunto vazio de revisões"
 
@@ -10126,6 +10145,13 @@
 msgstr "%s: nenhuma chave nomeada '%s'"
 
 #, python-format
+msgid "available styles: %s\n"
+msgstr "estilos disponíveis: %s\n"
+
+msgid "specify a template"
+msgstr "especifique um modelo"
+
+#, python-format
 msgid "found revision %s from %s\n"
 msgstr "encontrada revisão %s de %s\n"
 
@@ -10173,14 +10199,17 @@
 msgid "stripping amended changeset %s\n"
 msgstr "removendo revisão emendada %s\n"
 
+msgid "Leave message empty to abort commit."
+msgstr "Deixe a mensagem vazia para abortar a consolidação."
+
+msgid "empty commit message"
+msgstr "mensagem de consolidação vazia"
+
 msgid "HG: Enter commit message.  Lines beginning with 'HG:' are removed."
 msgstr ""
 "HG: Edite a mensagem de consolidação.\n"
 "HG: Linhas começadas por 'HG:' serão removidas."
 
-msgid "HG: Leave message empty to abort commit."
-msgstr "HG: Deixe a mensagem vazia para abortar a consolidação."
-
 #, python-format
 msgid "HG: user: %s"
 msgstr "HG: usuário: %s"
@@ -10215,9 +10244,6 @@
 msgid "HG: no files changed"
 msgstr "HG: nenhum arquivo mudou"
 
-msgid "empty commit message"
-msgstr "mensagem de consolidação vazia"
-
 msgid "created new head\n"
 msgstr "nova cabeça criada\n"
 
@@ -10347,9 +10373,6 @@
 msgid "exclude names matching the given patterns"
 msgstr "exclui nomes que casem com os padrões fornecidos"
 
-msgid "use text as commit message"
-msgstr "usa o texto como mensagem de consolidação"
-
 msgid "read commit message from file"
 msgstr "lê de um arquivo a mensagem de consolidação"
 
@@ -11050,65 +11073,82 @@
 msgid "hg bookmarks [OPTIONS]... [NAME]..."
 msgstr "hg bookmarks [OPÇÕES]... [NOME]..."
 
-msgid "track a line of development with movable markers"
-msgstr "rastreia uma linha de desenvolvimento com marcadores móveis"
-
-msgid ""
-"    Bookmarks are pointers to certain commits that move when committing.\n"
-"    Bookmarks are local. They can be renamed, copied and deleted. It is\n"
-"    possible to use :hg:`merge NAME` to merge from a given bookmark, and\n"
-"    :hg:`update NAME` to update to a given bookmark."
-msgstr ""
-"    Marcadores são ponteiros para certas consolidações que se movem\n"
-"    quando novas consolidações forem feitas. Marcadores são locais.\n"
-"    Eles podem ser renomeados, copiados e removidos. É possível usar\n"
-"    :hg:`merge NOME` para mesclar com um marcador específico, e\n"
-"    :hg:`update NOME` para atualizar para um marcador específico."
-
-msgid ""
-"    You can use :hg:`bookmark NAME` to set a bookmark on the working\n"
-"    directory's parent revision with the given name. If you specify\n"
-"    a revision using -r REV (where REV may be an existing bookmark),\n"
-"    the bookmark is assigned to that revision."
-msgstr ""
-"    Você pode usar :hg:`bookmark NOME` para definir um marcador na\n"
-"    revisão pai do diretório de trabalho com o nome informado. Se você\n"
-"    especificar a revisão usando -r REV (onde REV pode ser o nome de\n"
-"    um marcador existente), o marcador é apontado para tal revisão."
-
-msgid ""
-"    Bookmarks can be pushed and pulled between repositories (see :hg:`help\n"
-"    push` and :hg:`help pull`). This requires both the local and remote\n"
-"    repositories to support bookmarks. For versions prior to 1.8, this means\n"
-"    the bookmarks extension must be enabled."
+msgid "create a new bookmark or list existing bookmarks"
+msgstr "cria um novo marcador ou lista marcadores existentes"
+
+msgid ""
+"    Bookmarks are labels on changesets to help track lines of development.\n"
+"    Bookmarks are unversioned and can be moved, renamed and deleted.\n"
+"    Deleting or moving a bookmark has no effect on the associated changesets."
+msgstr ""
+"    Marcadores (bookmarks) são rótulos de revisões que auxiliam o\n"
+"    rastreamento de linhas de desenvolvimento.\n"
+"    Marcadores não são versionados, e podem ser movidos, renomeados e\n"
+"    apagados.\n"
+"    Apagar ou mover um marcador não tem efeito sobre as revisões\n"
+"    associadas."
+
+msgid ""
+"    Creating or updating to a bookmark causes it to be marked as 'active'.\n"
+"    Active bookmarks are indicated with a '*'.\n"
+"    When a commit is made, an active bookmark will advance to the new commit.\n"
+"    A plain :hg:`update` will also advance an active bookmark, if possible.\n"
+"    Updating away from a bookmark will cause it to be deactivated."
+msgstr ""
+"    Criar ou atualizar para um marcador faz com que ele seja 'ativado'.\n"
+"    Marcadores ativos são indicados com um '*'.\n"
+"    Quando é feita uma consolidação, um marcador ativo avançará para\n"
+"    a nova revisão.\n"
+"    Um :hg:`update` sem opções também avançará um marcador ativo,\n"
+"    se possível.\n"
+"    Atualizar para outra revisão fará com que o marcador seja desativado."
+
+msgid ""
+"    Bookmarks can be pushed and pulled between repositories (see\n"
+"    :hg:`help push` and :hg:`help pull`). If a shared bookmark has\n"
+"    diverged, a new 'divergent bookmark' of the form 'name@path' will\n"
+"    be created. Using :hg:'merge' will resolve the divergence."
 msgstr ""
 "    Marcadores podem ser transferidos entre repositórios usando push\n"
-"    e pull (veja :hg:`help push` e :hg:`help pull`). Isto requer que\n"
-"    marcadores sejam suportados tanto no repositório local como no\n"
-"    remoto. Em versões anteriores à 1.8, a extensão bookmarks\n"
-"    precisa ser habilitada.\n"
-"    "
-
-msgid ""
-"    If you set a bookmark called '@', new clones of the repository will\n"
-"    have that revision checked out (and the bookmark made active) by\n"
-"    default."
-msgstr ""
-"    Se você definir um marcador chamado '@', novos clones do\n"
-"    repositório por padrão atualizarão para essa revisão e\n"
-"    tornarão esse marcador ativo."
-
-msgid ""
-"    With -i/--inactive, the new bookmark will not be made the active\n"
-"    bookmark. If -r/--rev is given, the new bookmark will not be made\n"
-"    active even if -i/--inactive is not given. If no NAME is given, the\n"
-"    current active bookmark will be marked inactive.\n"
-"    "
-msgstr ""
-"    Com -i/--inactive, o novo marcador não se tornará ativo. Se\n"
-"    -r/--rev for passada, o novo marcador não se tornará ativo mesmo\n"
-"    que -i/--inactive não seja passada. Se nenhum NOME for dado, o\n"
-"    marcador ativo atual se tornará inativo.\n"
+"    e pull (veja :hg:`help push` e :hg:`help pull`).\n"
+"    Se um marcador compartilhado tiver divergido, será criado um\n"
+"    novo 'marcador divergente' com a forma 'nome@caminho'.\n"
+"    A divergência pode ser resolvida usando 'hg merge'."
+
+msgid ""
+"    A bookmark named '@' has the special property that :hg:`clone` will\n"
+"    check it out by default if it exists."
+msgstr ""
+"    O comando :hg:`clone` irá por padrão atualizar para um marcador\n"
+"    de nome '@', se existir."
+
+msgid "      - create an active bookmark for a new line of development::"
+msgstr ""
+"      - cria um marcador ativo para uma nova linha de desenvolvimento::"
+
+msgid "          hg book new-feature"
+msgstr "          hg book new-feature"
+
+msgid "      - create an inactive bookmark as a place marker::"
+msgstr "      - cria um marcador inativo para indicar um lugar::"
+
+msgid "          hg book -i reviewed"
+msgstr "          hg book -i reviewed"
+
+msgid "      - create an inactive bookmark on another changeset::"
+msgstr "      - cria um marcador inativo em outra revisão::"
+
+msgid "          hg book -r .^ tested"
+msgstr "          hg book -r .^ tested"
+
+msgid "      - move the '@' bookmark from another branch::"
+msgstr "      - move o marcador '@' de outro ramo::"
+
+msgid ""
+"          hg book -f @\n"
+"    "
+msgstr ""
+"          hg book -f @\n"
 "    "
 
 msgid "bookmark names cannot consist entirely of whitespace"
@@ -11631,9 +11671,6 @@
 msgid "use the secret phase for committing"
 msgstr "consolida a revisão na fase \"secret\""
 
-msgid "further edit commit message already specified"
-msgstr "edita a mensagem de consolidação especificada"
-
 msgid "commit the specified files or all outstanding changes"
 msgstr "consolida os arquivos pedidos ou todas as mudanças por gravar"
 
@@ -12829,6 +12866,13 @@
 msgstr "          hg log --debug -r ."
 
 msgid ""
+"    See :hg:`help revisions` and :hg:`help revsets` for more about\n"
+"    specifying revisions."
+msgstr ""
+"    Veja :hg:`help revisions` e :hg:`help revsets` para mais\n"
+"    informações sobre a especificação de revisões."
+
+msgid ""
 "    Returns 0 on successful completion.\n"
 "    "
 msgstr ""
@@ -13149,6 +13193,9 @@
 msgid "apply patch without touching the working directory"
 msgstr "aplica o patch sem alterar o diretório de trabalho"
 
+msgid "commit even if some hunks fail"
+msgstr "consolida mesmo que alguns trechos falhem"
+
 msgid "apply patch to the nodes from which it was generated"
 msgstr "aplica o patch aos nós a partir dos quais ele foi gerado"
 
@@ -13234,6 +13281,28 @@
 "    cópias no patch do mesmo modo que :hg:`addremove`."
 
 msgid ""
+"    Use --partial to ensure a changeset will be created from the patch\n"
+"    even if some hunks fail to apply. Hunks that fail to apply will be\n"
+"    written to a <target-file>.rej file. Conflicts can then be resolved\n"
+"    by hand before :hg:`commit --amend` is run to update the created\n"
+"    changeset. This flag exists to let people import patches that\n"
+"    partially apply without losing the associated metadata (author,\n"
+"    date, description, ...). Note that when none of the hunk applies\n"
+"    cleanly, :hg:`import --partial` will create an empty changeset,\n"
+"    importing only the patch metadata."
+msgstr ""
+"    Use --partial para garantir que uma revisão seja criada a partir\n"
+"    do patch, mesmo que alguns trechos não possam ser aplicados. Trechos\n"
+"    não aplicados serão escritos em um arquivo <arquivo-de-destino>.rej.\n"
+"    Conflitos poderão então ser resolvidos manualmente, e a revisão\n"
+"    criada poderá em seguida ser ajustada usando :hg:`commit --amend`.\n"
+"    Esta flag permite que patches que só apliquem parcialmente sejam\n"
+"    importados preservando seus metadados associados (autor,\n"
+"    data, descrição, ...). Note que, se nenhum dos trechos puder ser\n"
+"    aplicado, :hg:`import --partial` criará uma revisão vazia,\n"
+"    importando apenas os metadados do patch."
+
+msgid ""
 "    To read a patch from standard input, use \"-\" as the patch name. If\n"
 "    a URL is specified, the patch will be downloaded from it.\n"
 "    See :hg:`help dates` for a list of formats valid for -d/--date."
@@ -13274,6 +13343,14 @@
 msgid "          hg import --exact proposed-fix.patch"
 msgstr "          hg import --exact proposed-fix.patch"
 
+msgid ""
+"    Returns 0 on success, 1 on partial success (see --partial).\n"
+"    "
+msgstr ""
+"    Devolve 0 para indicar sucesso, 1 para indicar sucesso parcial\n"
+"    (veja --partial).\n"
+"    "
+
 msgid "need at least one patch to import"
 msgstr "é necessário ao menos um nome de patch para importar"
 
@@ -13286,6 +13363,12 @@
 msgid "applying patch from stdin\n"
 msgstr "aplicando patch da entrada padrão\n"
 
+msgid "patch applied partially\n"
+msgstr "o patch foi aplicado parcialmente\n"
+
+msgid "(fix the .rej files and run `hg commit --amend`)\n"
+msgstr "(corrija os arquivos .rej e execute `hg commit --amend`)\n"
+
 #, python-format
 msgid "%s: no diffs found"
 msgstr "%s: nenhum diff encontrado"
@@ -13567,6 +13650,12 @@
 msgid "          hg log -k bug --template \"{rev}\\n\""
 msgstr "          hg log -k bug --template \"{rev}\\n\""
 
+msgid "      - list available log templates::"
+msgstr "      - lista os modelos de saída de log disponíveis::"
+
+msgid "          hg log -T list"
+msgstr "          hg log -T list"
+
 msgid "      - check if a given changeset is included is a tagged release::"
 msgstr ""
 "      - verifica se uma revisão dada foi incluída em um\n"
@@ -13590,13 +13679,6 @@
 msgstr "          hg log -r \"last(tagged())::\" --template \"{desc|firstline}\\n\""
 
 msgid ""
-"    See :hg:`help revisions` and :hg:`help revsets` for more about\n"
-"    specifying revisions."
-msgstr ""
-"    Veja :hg:`help revisions` e :hg:`help revsets` para mais\n"
-"    informações sobre a especificação de revisões."
-
-msgid ""
 "    See :hg:`help templates` for more about pre-packaged styles and\n"
 "    specifying custom templates."
 msgstr ""
@@ -14372,10 +14454,17 @@
 msgid "can't specify --all and patterns"
 msgstr "não é possível especificar --all e padrões"
 
-msgid "no files or directories specified; use --all to remerge all files"
-msgstr ""
-"nenhum arquivo ou diretório especificado; use --all para refazer a mesclagem"
-" de todos os arquivos"
+msgid "no files or directories specified"
+msgstr "nenhum arquivo ou diretório especificados"
+
+msgid "resolve command not applicable when not merging"
+msgstr "o comando resolve não pode ser usado fora de uma mesclagem"
+
+msgid "arguments do not match paths that need resolving\n"
+msgstr "os argumentos não correspondem a caminhos que necessitem de resolução\n"
+
+msgid "(no more unresolved files)\n"
+msgstr "(não há mais arquivos não resolvidos)\n"
 
 msgid "revert all changes when no arguments given"
 msgstr "se parâmetros não forem fornecidos, reverte todas as mudanças"
@@ -14448,9 +14537,6 @@
 msgid "use \"hg update\" or see \"hg help revert\""
 msgstr "use \"hg update\" ou veja \"hg help revert\""
 
-msgid "no files or directories specified"
-msgstr "nenhum arquivo ou diretório especificados"
-
 msgid ""
 "uncommitted merge, use --all to discard all changes, or 'hg update -C .' to "
 "abort the merge"
@@ -14958,9 +15044,6 @@
 msgid "remove a tag"
 msgstr "remove uma etiqueta"
 
-msgid "use <text> as commit message"
-msgstr "usa <texto> como mensagem de consolidação"
-
 msgid "[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..."
 msgstr "[-f] [-l] [-m TEXTO] [-d DATA] [-u USUÁRIO] [-r REV] NOME..."
 
@@ -15233,6 +15316,14 @@
 msgid "cannot specify both -c/--check and -C/--clean"
 msgstr "não se pode especificar ao mesmo tempo -c/--check e -C/--clean"
 
+#, python-format
+msgid "(activating bookmark %s)\n"
+msgstr "(ativando marcador %s)\n"
+
+#, python-format
+msgid "(leaving bookmark %s)\n"
+msgstr "(mantendo marcador %s)\n"
+
 msgid "verify the integrity of the repository"
 msgstr "verifica a integridade do repositório"
 
@@ -15278,6 +15369,13 @@
 "há garantias, nem mesmo de adequação para qualquer propósito em\n"
 "particular.\n"
 
+msgid ""
+"\n"
+"Enabled extensions:"
+msgstr ""
+"\n"
+"Extensões habilitadas:"
+
 #, python-format
 msgid "unknown mode %s"
 msgstr "modo %s desconhecido"
@@ -15442,6 +15540,10 @@
 msgstr "push cria uma nova cabeça remota %s no ramo '%s'!"
 
 #, python-format
+msgid "push creates new remote head %s with bookmark '%s'!"
+msgstr "push cria uma nova cabeça remota %s com o marcador '%s'!"
+
+#, python-format
 msgid "push creates new remote head %s!"
 msgstr "push cria uma nova cabeça remota %s!"
 
@@ -15713,6 +15815,10 @@
 msgstr "push inclui uma revisão divergente: %s!"
 
 #, python-format
+msgid "server ignored update of %s to public!\n"
+msgstr "o servidor ignorou a atualização de %s para a fase 'public'!\n"
+
+#, python-format
 msgid "updating %s to public failed!\n"
 msgstr "a atualização da fase de %s para pública falhou!\n"
 
@@ -15736,6 +15842,10 @@
 "'changegroupsubset'."
 
 #, python-format
+msgid "unsupported getbundle arguments: %s"
+msgstr "argumentos de getbundle não suportados: %s"
+
+#, python-format
 msgid "*** failed to import extension %s from %s: %s\n"
 msgstr "*** falha ao importar a extensão %s de %s: %s\n"
 
@@ -15838,6 +15948,21 @@
 msgstr "aviso: internal:merge não é capaz de mesclar links simbólicos para %s\n"
 
 msgid ""
+"``internal:tagmerge``\n"
+"Uses the internal tag merge algorithm (experimental)."
+msgstr ""
+"``internal:tagmerge``\n"
+"Usa o algoritmo interno de mesclagem de etiquetas (experimental)."
+
+#, python-format
+msgid ""
+"automatic tag merging of %s failed! (use 'hg resolve --tool internal:merge' "
+"or another merge tool of your choice)\n"
+msgstr ""
+"a mesclagem automática de etiquetas de %s falhou! (use 'hg resolve --tool "
+"internal:merge' ou outra ferramenta de mesclagem à sua escolha)\n"
+
+msgid ""
 "``internal:dump``\n"
 "Creates three versions of the files to merge, containing the\n"
 "    contents of local, other and base. These files can then be used to\n"
@@ -16363,6 +16488,20 @@
 msgid "Extension Commands"
 msgstr "Comandos de Extensões"
 
+msgid "no matches"
+msgstr "nenhuma correspondência encontrada"
+
+msgid "try \"hg help\" for a list of topics"
+msgstr "use \"hg help\" para uma lista de tópicos"
+
+#, python-format
+msgid "no such help topic: %s"
+msgstr "não há tal tópico de ajuda: %s"
+
+#, python-format
+msgid "try \"hg help --keyword %s\""
+msgstr "tente \"hg help --keyword %s\""
+
 msgid "Mercurial Distributed SCM\n"
 msgstr "Sistema de controle de versão distribuído Mercurial\n"
 
@@ -17102,10 +17241,134 @@
 
 msgid ""
 "\n"
+"``committemplate``\n"
+"------------------"
+msgstr ""
+"\n"
+"``committemplate``\n"
+"------------------"
+
+msgid ""
+"``changeset`` configuration in this section is used as the template to\n"
+"customize the text shown in the editor when committing."
+msgstr ""
+"A configuração ``changeset`` nesta seção é usada como modelo para\n"
+"customizar o texto exibido no editor em uma consolidação."
+
+msgid ""
+"In addition to pre-defined template keywords, commit log specific one\n"
+"below can be used for customization:"
+msgstr ""
+"Além das palavras chave pré-definidas de modelos, podem ser usadas\n"
+"para customização as seguintes palavras chave específicas da edição\n"
+"de consolidação:"
+
+msgid ""
+"``extramsg``\n"
+"    String: Extra message (typically 'Leave message empty to abort\n"
+"    commit.'). This may be changed by some commands or extensions."
+msgstr ""
+"``extramsg``\n"
+"    Texto: Mensagem extra (tipicamente 'Deixe a mensagem vazia para\n"
+"    abortar a consolidação.'). Isto pode ser modificado por alguns\n"
+"    comandos ou extensões."
+
+msgid ""
+"For example, the template configuration below shows as same text as\n"
+"one shown by default::"
+msgstr ""
+"Por exemplo, a configuração de modelo abaixo exibe o mesmo texto\n"
+"que o padrão em inglês::"
+
+msgid ""
+"    [committemplate]\n"
+"    changeset = {desc}\\n\\n\n"
+"        HG: Enter commit message.  Lines beginning with 'HG:' are removed.\n"
+"        HG: {extramsg}\n"
+"        HG: --\n"
+"        HG: user: {author}\\n{ifeq(p2rev, \"-1\", \"\",\n"
+"       \"HG: branch merge\\n\")\n"
+"       }HG: branch '{branch}'\\n{if(currentbookmark,\n"
+"       \"HG: bookmark '{currentbookmark}'\\n\")  }{subrepos %\n"
+"       \"HG: subrepo {subrepo}\\n\"              }{file_adds %\n"
+"       \"HG: added {file}\\n\"                   }{file_mods %\n"
+"       \"HG: changed {file}\\n\"                 }{file_dels %\n"
+"       \"HG: removed {file}\\n\"                 }{if(files, \"\",\n"
+"       \"HG: no files changed\\n\")}"
+msgstr ""
+"    [committemplate]\n"
+"    changeset = {desc}\\n\\n\n"
+"        HG: Enter commit message.  Lines beginning with 'HG:' are removed.\n"
+"        HG: {extramsg}\n"
+"        HG: --\n"
+"        HG: user: {author}\\n{ifeq(p2rev, \"-1\", \"\",\n"
+"       \"HG: branch merge\\n\")\n"
+"       }HG: branch '{branch}'\\n{if(currentbookmark,\n"
+"       \"HG: bookmark '{currentbookmark}'\\n\")  }{subrepos %\n"
+"       \"HG: subrepo {subrepo}\\n\"              }{file_adds %\n"
+"       \"HG: added {file}\\n\"                   }{file_mods %\n"
+"       \"HG: changed {file}\\n\"                 }{file_dels %\n"
+"       \"HG: removed {file}\\n\"                 }{if(files, \"\",\n"
+"       \"HG: no files changed\\n\")}"
+
+msgid ""
+"   For some problematic encodings (see :hg:`help win32mbcs` for\n"
+"   detail), this customization should be configured carefully, to\n"
+"   avoid showing broken characters."
+msgstr ""
+"   Para algumas codificações problemáticas (veja :hg:`help win32mbcs`\n"
+"   para detalhes), esta customização deve ser configurada cuidadosamente,\n"
+"   para evitar a exibição de caracteres inválidos."
+
+msgid ""
+"   For example, if multibyte character ending with backslash (0x5c) is\n"
+"   followed by ASCII character 'n' in the customized template,\n"
+"   sequence of backslash and 'n' is treated as line-feed unexpectedly\n"
+"   (and multibyte character is broken, too)."
+msgstr ""
+"   Por exemplo, se um caractere multibyte terminado por uma barra\n"
+"   invertida (0x5c) for seguido de um caractere ASCII 'n' mo modelo\n"
+"   customizado, a sequência será tratada inesperadamente como uma\n"
+"   quebra de linhas (afetando também o próprio caractere multibyte)."
+
+msgid ""
+"Customized template is used for commands below (``--edit`` may be\n"
+"required):"
+msgstr ""
+"O modelo customizado é usado para os comandos abaixo\n"
+"(a opção ``--edit`` pode ser exigida):"
+
+msgid ""
+"- :hg:`backout`\n"
+"- :hg:`commit`\n"
+"- :hg:`fetch` (for merge commit only)\n"
+"- :hg:`graft`\n"
+"- :hg:`histedit`\n"
+"- :hg:`import`\n"
+"- :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`\n"
+"- :hg:`rebase`\n"
+"- :hg:`shelve`\n"
+"- :hg:`sign`\n"
+"- :hg:`tag`\n"
+"- :hg:`transplant`"
+msgstr ""
+"- :hg:`backout`\n"
+"- :hg:`commit`\n"
+"- :hg:`fetch` (apenas para mesclagem)\n"
+"- :hg:`graft`\n"
+"- :hg:`histedit`\n"
+"- :hg:`import`\n"
+"- :hg:`qfold`, :hg:`qnew` e :hg:`qrefresh`\n"
+"- :hg:`rebase`\n"
+"- :hg:`shelve`\n"
+"- :hg:`sign`\n"
+"- :hg:`tag`\n"
+"- :hg:`transplant`"
+
+msgid ""
 "``decode/encode``\n"
 "-----------------"
 msgstr ""
-"\n"
 "``decode/encode``\n"
 "-----------------"
 
@@ -18137,10 +18400,15 @@
 
 msgid ""
 "This section configures external merge tools to use for file-level\n"
-"merges."
-msgstr ""
-"Esta seção configura ferramentas de mesclagem externas a serem\n"
-"usadas em mesclagens de arquivo."
+"merges. This section has likely been preconfigured at install time.\n"
+"Use :hg:`config merge-tools` to check the existing configuration.\n"
+"Also see :hg:`help merge-tools` for more details."
+msgstr ""
+"Esta seção configura utilitários externos a serem usados para\n"
+"mesclagem a nível de arquivo.\n"
+"Esta seção é tipicamente pré-configurada no momento da instalação.\n"
+"Use :hg:`config merge-tools` para exibir a configuração existente.\n"
+"Veja também :hg:`help merge-tools` para detalhes adicionais."
 
 msgid "Example ``~/.hgrc``::"
 msgstr "Um exemplo de ``~/.hgrc``::"
@@ -18163,6 +18431,13 @@
 "  kdiff3.priority = 1"
 
 msgid ""
+"  # Changing the priority of preconfigured tool\n"
+"  vimdiff.priority = 0"
+msgstr ""
+"  # Modificando a prioridade da ferramenta pré-configurada\n"
+"  vimdiff.priority = 0"
+
+msgid ""
 "  # Define new tool\n"
 "  myHtmlTool.args = -m $local $other $base $output\n"
 "  myHtmlTool.regkey = Software\\FooSoftware\\HtmlMerge\n"
@@ -18198,15 +18473,28 @@
 "``args``\n"
 "  The arguments to pass to the tool executable. You can refer to the\n"
 "  files being merged as well as the output file through these\n"
-"  variables: ``$base``, ``$local``, ``$other``, ``$output``.\n"
+"  variables: ``$base``, ``$local``, ``$other``, ``$output``. The meaning\n"
+"  of ``$local`` and ``$other`` can vary depending on which action is being\n"
+"  performed. During and update or merge, ``$local`` represents the original\n"
+"  state of the file, while ``$other`` represents the commit you are updating\n"
+"  to or the commit you are merging with. During a rebase ``$local``\n"
+"  represents the destination of the rebase, and ``$other`` represents the\n"
+"  commit being rebased.\n"
 "  Default: ``$local $base $other``"
 msgstr ""
 "``args``\n"
 "  Os parâmetros passados para o executável da ferramenta. Você pode se\n"
-"  referir aos arquivos a serem mesclados bem como ao arquivo de saída\n"
+"  referir aos arquivos a serem mesclados, bem como ao arquivo de saída,\n"
 "  usando as seguintes variáveis: ``$base`` (versão base), ``$local``\n"
 "  (versão local), ``$other`` (a outra versão), ``$output`` (o arquivo\n"
 "  de saída).\n"
+"  O significado de ``$local`` e ``$other`` pode variar dependendo da\n"
+"  ação realizada.\n"
+"  Durante um update ou merge, ``$local`` representa o estado original\n"
+"  do arquivo, enquanto ``$other`` representa a revisão de destino ou\n"
+"  a revisão com a qual a mesclagem é realizada.\n"
+"  Durante um rebase, ``$local`` representa o destino do rebaseamento,\n"
+"  e ``$other`` representa a revisão sendo rebaseada.\n"
 "  Padrão: ``$local $base $other``"
 
 msgid ""
@@ -19024,6 +19312,51 @@
 "    ``[merge-tools]``."
 
 msgid ""
+"``mergemarkers``\n"
+"    Sets the merge conflict marker label styling. The ``detailed``\n"
+"    style uses the ``mergemarkertemplate`` setting to style the labels.\n"
+"    The ``basic`` style just uses 'local' and 'other' as the marker label.\n"
+"    One of ``basic`` or ``detailed``.\n"
+"    Default is ``basic``."
+msgstr ""
+"``mergemarkers``\n"
+"    Define o estilo dos rótulos de marcação de conflitos de mesclagem.\n"
+"    O estilo ``detailed`` usa a configuração ``mergemarkertemplate``.\n"
+"    O estilo ``basic`` usa simplesmente 'local' e 'other' como rótulos\n"
+"    dos marcadores.\n"
+"    O padrão é ``basic``."
+
+msgid ""
+"``mergemarkertemplate``\n"
+"    The template used to print the commit description next to each conflict\n"
+"    marker during merge conflicts. See :hg:`help templates` for the template\n"
+"    format.\n"
+"    Defaults to showing the hash, tags, branches, bookmarks, author, and\n"
+"    the first line of the commit description.\n"
+"    You have to pay attention to encodings of managed files, if you\n"
+"    use non-ASCII characters in tags, branches, bookmarks, author\n"
+"    and/or commit descriptions. At template expansion, non-ASCII\n"
+"    characters use the encoding specified by ``--encoding`` global\n"
+"    option, ``HGENCODING`` or other locale setting environment\n"
+"    variables. The difference of encoding between merged file and\n"
+"    conflict markers causes serious problem."
+msgstr ""
+"``mergemarkertemplate``\n"
+"    O modelo usado para imprimir a descrição da consolidação próxima\n"
+"    a cada marcador de conflitos durante conflitos de mesclagem.\n"
+"    Veja :hg:`help templates` para o formato do modelo.\n"
+"    O padrão exibe o hash, etiquetas, ramos, marcadores, autor e\n"
+"    a primeira linha da mensagem de consolidação.\n"
+"    Você deve prestar atenção na codificação dos arquivos gerenciados\n"
+"    se forem utilizados caracteres não-ASCII em etiquetas, ramos,\n"
+"    marcadores, autores ou mensagens de consolidação.\n"
+"    Na expansão do modelo, caracteres não-ASCII usam a codificação\n"
+"    especificada pela opção global ``--encoding``, ``HGENCODING`` ou\n"
+"    outras variáveis de ambiente de configuração de localização.\n"
+"    Diferenças de codificação entre arquivos mesclados e marcadores\n"
+"    de conflitos podem causar problemas sérios."
+
+msgid ""
 "``portablefilenames``\n"
 "    Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.\n"
 "    Default is ``warn``.\n"
@@ -23244,35 +23577,30 @@
 
 msgid ""
 "Mercurial allows you to customize output of commands through\n"
-"templates. You can either pass in a template from the command\n"
-"line, via the --template option, or select an existing\n"
-"template-style (--style)."
+"templates. You can either pass in a template or select an existing\n"
+"template-style from the command line, via the --template option."
 msgstr ""
 "O Mercurial permite que você personalize a saída de comandos\n"
-"usando modelos. Você pode tanto passar um modelo pela linha de\n"
-"comando, usando a opção --template, como selecionar um\n"
-"estilo de modelo existente (--style)."
+"usando modelos. Você pode tanto passar um modelo como selecionar\n"
+"um modelo existente pela linha de comando, usando a opção\n"
+"--template."
 
 msgid ""
 "You can customize output for any \"log-like\" command: log,\n"
-"outgoing, incoming, tip, parents, heads and glog."
+"outgoing, incoming, tip, parents, and heads."
 msgstr ""
 "Você pode personalizar a saída de qualquer comando semelhante\n"
-"ao log: log, outgoing, incoming, tip, parents, heads e glog."
-
-msgid ""
-"Five styles are packaged with Mercurial: default (the style used\n"
-"when no explicit preference is passed), compact, changelog, phases\n"
-"and xml.\n"
-"Usage::"
-msgstr ""
-"Cinco estilos são incluídos na distribuição do Mercurial: default\n"
-"(o estilo usado quando nenhuma preferência for passada), compact,\n"
-"changelog, phases e xml.\n"
-"Uso::"
-
-msgid "    $ hg log -r1 --style changelog"
-msgstr "    $ hg log -r1 --style changelog"
+"ao log: log, outgoing, incoming, tip, parents e heads."
+
+msgid ""
+"Some built-in styles are packaged with Mercurial. These can be listed\n"
+"with :hg:`log --template list`. Example usage::"
+msgstr ""
+"Alguns estilos são distribuídos com o Mercurial. Eles podem ser\n"
+"listados com :hg:`log --template list`. Exemplo de uso::"
+
+msgid "    $ hg log -r1.0::1.1 --template changelog"
+msgstr "    $ hg log -r1.0::1.1 --template changelog"
 
 msgid ""
 "A template is a piece of text, with markup to invoke variable\n"
@@ -23374,12 +23702,18 @@
 msgid "- shortest(node)"
 msgstr "- shortest(nó)"
 
+msgid "- startswith(string, text)"
+msgstr "- startswith(string, texto)"
+
 msgid "- strip(text[, chars])"
 msgstr "- strip(texto[, caracteres])"
 
 msgid "- sub(pat, repl, expr)"
 msgstr "- sub(padrão, substituição, expressão)"
 
+msgid "- word(number, text[, separator])"
+msgstr "- word(número, texto[, separador])"
+
 msgid ""
 "Also, for any expression that returns a list, there is a list operator:"
 msgstr ""
@@ -23404,6 +23738,12 @@
 msgid "   $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\""
 msgstr "   $ hg log -r 0 --template \"files: {join(files, ', ')}\\n\""
 
+msgid "- Modify each line of a commit description::"
+msgstr "- Modifica cada linha de uma descrição de revisão::"
+
+msgid "   $ hg log --template \"{splitlines(desc) % '**** {line}\\n'}\""
+msgstr "   $ hg log --template \"{splitlines(desc) % '**** {line}\\n'}\""
+
 msgid "- Format date::"
 msgstr "- Formatação de datas::"
 
@@ -23463,8 +23803,21 @@
 msgid "- Mark the working copy parent with '@'::"
 msgstr "- Indica o pai do diretório de trabalho com '@'::"
 
-msgid "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\"\n"
-msgstr "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\"\n"
+msgid "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\""
+msgstr "   $ hg log --template \"{ifcontains(rev, revset('.'), '@')}\\n\""
+
+msgid "- Show only commit descriptions that start with \"template\"::"
+msgstr "- Mostra apenas descrições de revisão que comecem com \"template\"::"
+
+msgid "   $ hg log --template \"{startswith(\\\"template\\\", firstline(desc))}\\n\""
+msgstr "   $ hg log --template \"{startswith(\\\"template\\\", firstline(desc))}\\n\""
+
+msgid "- Print the first word of each line of a commit message::"
+msgstr ""
+"- Imprime a primeira palavra de cada linha de uma mensagem de consolidação::"
+
+msgid "   $ hg log --template \"{word(\\\"0\\\", desc)}\\n\"\n"
+msgstr "   $ hg log --template \"{word(\\\"0\\\", desc)}\\n\"\n"
 
 msgid "Valid URLs are of the form::"
 msgstr "URLs válidas são da forma::"
@@ -23874,8 +24227,11 @@
 "a cópia de trabalho de .hgtags foi modificada (por favor consolide .hgtags "
 "manualmente)"
 
-msgid "abandoned transaction found - run hg recover"
-msgstr "transação abandonada encontrada - execute hg recover"
+msgid "abandoned transaction found"
+msgstr "transação abandonada encontrada"
+
+msgid "run 'hg recover' to clean up transaction"
+msgstr "execute 'hg recover' para limpar a transação"
 
 msgid "rolling back interrupted transaction\n"
 msgstr "desfazendo transação interrompida\n"
@@ -25073,9 +25429,6 @@
 "``min(conjunto)``\n"
 "    Revisão com menor número de revisão no conjunto."
 
-msgid "_missingancestors requires two arguments"
-msgstr "_missingancestors exige dois argumentos"
-
 msgid ""
 "``modifies(pattern)``\n"
 "    Changesets modifying files matched by pattern."
@@ -25863,6 +26216,17 @@
 "não é possível fazer push da revisão %s\n"
 
 #, python-format
+msgid ""
+"automatic .hgtags merge failed\n"
+"the following %d tags are in conflict: %s\n"
+msgstr ""
+"a mesclagem automática de .hgtags falhou\n"
+"as seguintes %d etiquetas estão em conflito: %s\n"
+
+msgid ".hgtags merged successfully\n"
+msgstr ".hgtags mesclado com successo\n"
+
+#, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s, linha %s: %s\n"
 
@@ -26069,6 +26433,9 @@
 msgid ":shortdate: Date. Returns a date like \"2006-09-18\"."
 msgstr ":shortdate: Data. Devolve uma data como \"2006-09-18\"."
 
+msgid ":splitlines: Any text. Split text into a list of lines."
+msgstr ":splitlines: Qualquer texto. Quebra o texto em uma lista de linhas."
+
 msgid ""
 ":stringify: Any type. Turns the value into text by converting values into\n"
 "    text and concatenating them."
@@ -26136,6 +26503,13 @@
 msgid ":children: List of strings. The children of the changeset."
 msgstr ":children: Lista de strings. As revisões filhas da revisão."
 
+msgid ""
+":currentbookmark: String. The active bookmark, if it is\n"
+"    associated with the changeset"
+msgstr ""
+":currentbookmark: String. O marcador ativo, se estiver\n"
+"    associado à revisão"
+
 msgid ":date: Date information. The date when the changeset was committed."
 msgstr ":date: Informação de data. A data de consolidação da revisão."
 
@@ -26244,6 +26618,9 @@
 msgid ":rev: Integer. The repository-local changeset revision number."
 msgstr ":rev: Inteiro. O número de ordem da revisão no repositório local."
 
+msgid ":subrepos: List of strings. Updated subrepositories in the changeset."
+msgstr ":subrepos: Lista de strings. Sub-repositórios atualizados na revisão."
+
 msgid ":tags: List of strings. Any tags associated with the changeset."
 msgstr ":tags: Lista de strings. Quaisquer etiquetas associadas à revisão."
 
@@ -26260,8 +26637,9 @@
 msgid "unknown method '%s'"
 msgstr "método desconhecido '%s'"
 
-msgid "expected a symbol"
-msgstr "esperado um símbolo"
+#, python-format
+msgid "expected a symbol, got '%s'"
+msgstr "esperado um símbolo, recebido '%s'"
 
 #, python-format
 msgid "unknown function '%s'"
@@ -26332,6 +26710,15 @@
 msgid "sub expects three arguments"
 msgstr "sub espera três argumentos"
 
+#. i18n: "startswith" is a keyword
+msgid "startswith expects two arguments"
+msgstr "startswith espera dois argumentos"
+
+#. i18n: "word" is a keyword
+#, python-format
+msgid "word expects two or three arguments, got %d"
+msgstr "word espera dois ou três argumentos, %d recebidos"
+
 msgid "unmatched quotes"
 msgstr "aspas não combinam"
 
--- a/mercurial/cmdutil.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/cmdutil.py	Fri Aug 01 18:32:52 2014 -0500
@@ -1126,6 +1126,10 @@
             tmpl = templater.parsestring(t, quoted=False)
         return tmpl, None
 
+    if tmpl == 'list':
+        ui.write(_("available styles: %s\n") % templater.stylelist())
+        raise util.Abort(_("specify a template"))
+
     # perhaps it's a path to a map or a template
     if ('/' in tmpl or '\\' in tmpl) and os.path.isfile(tmpl):
         # is it a mapfile for a style?
@@ -1625,7 +1629,7 @@
 
     filematcher = None
     if opts.get('patch') or opts.get('stat'):
-        if follow:
+        if follow and not match.always():
             # _makelogfilematcher expects its files argument to be relative to
             # the repo root, so use match.files(), not pats.
             filematcher = _makelogfilematcher(repo, match.files(), followfirst)
--- a/mercurial/commands.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/commands.py	Fri Aug 01 18:32:52 2014 -0500
@@ -8,7 +8,7 @@
 from node import hex, bin, nullid, nullrev, short
 from lock import release
 from i18n import _
-import os, re, difflib, time, tempfile, errno
+import os, re, difflib, time, tempfile, errno, shlex
 import sys
 import hg, scmutil, util, revlog, copies, error, bookmarks
 import patch, help, encoding, templatekw, discovery
@@ -1339,8 +1339,7 @@
      _('mark a branch as closed, hiding it from the branch list')),
     ('', 'amend', None, _('amend the parent of the working dir')),
     ('s', 'secret', None, _('use the secret phase for committing')),
-    ('e', 'edit', None,
-     _('further edit commit message already specified')),
+    ('e', 'edit', None, _('invoke editor on commit messages')),
     ] + walkopts + commitopts + commitopts2 + subrepoopts,
     _('[OPTION]... [FILE]...'),
     inferrepo=True)
@@ -2248,7 +2247,7 @@
     # editor
     ui.status(_("checking commit editor...\n"))
     editor = ui.geteditor()
-    cmdpath = util.findexe(editor) or util.findexe(editor.split()[0])
+    cmdpath = util.findexe(shlex.split(editor)[0])
     if not cmdpath:
         if editor == 'vi':
             ui.write(_(" No commit editor set and can't find vi in PATH\n"))
@@ -3108,6 +3107,9 @@
 
           hg log --debug -r .
 
+    See :hg:`help revisions` and :hg:`help revsets` for more about
+    specifying revisions.
+
     Returns 0 on successful completion.
     '''
 
@@ -3785,7 +3787,7 @@
     by hand before :hg:`commit --amend` is run to update the created
     changeset. This flag exists to let people import patches that
     partially apply without losing the associated metadata (author,
-    date, description, ...), Note that when none of the hunk applies
+    date, description, ...). Note that when none of the hunk applies
     cleanly, :hg:`import --partial` will create an empty changeset,
     importing only the patch metadata.
 
@@ -3880,8 +3882,8 @@
                         parents = [repo[node]]
                     if rej:
                         ui.write_err(_("patch applied partially\n"))
-                        ui.write_err(("(fix the .rej files and run "
-                                      "`hg commit --amend`)\n"))
+                        ui.write_err(_("(fix the .rej files and run "
+                                       "`hg commit --amend`)\n"))
                         ret = 1
                         break
 
@@ -4129,6 +4131,10 @@
 
           hg log -k bug --template "{rev}\\n"
 
+      - list available log templates::
+
+          hg log -T list
+
       - check if a given changeset is included is a tagged release::
 
           hg log -r "a21ccf and ancestor(1.9)"
@@ -4994,8 +5000,8 @@
     if pats and all:
         raise util.Abort(_("can't specify --all and patterns"))
     if not (all or pats or show or mark or unmark):
-        raise util.Abort(_('no files or directories specified; '
-                           'use --all to remerge all files'))
+        raise util.Abort(_('no files or directories specified'),
+                         hint=('use --all to remerge all files'))
 
     wlock = repo.wlock()
     try:
@@ -5058,7 +5064,7 @@
     # this with the list/show operation because we want list/show to remain
     # machine readable.
     if not list(ms.unresolved()) and not show:
-        ui.status(_('no more unresolved files\n'))
+        ui.status(_('(no more unresolved files)\n'))
 
     return ret
 
@@ -5688,8 +5694,8 @@
     ('r', 'rev', '', _('revision to tag'), _('REV')),
     ('', 'remove', None, _('remove a tag')),
     # -l/--local is already there, commitopts cannot be used
-    ('e', 'edit', None, _('edit commit message')),
-    ('m', 'message', '', _('use <text> as commit message'), _('TEXT')),
+    ('e', 'edit', None, _('invoke editor on commit messages')),
+    ('m', 'message', '', _('use text as commit message'), _('TEXT')),
     ] + commitopts2,
     _('[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME...'))
 def tag(ui, repo, name1, *names, **opts):
@@ -6026,6 +6032,7 @@
         for name, module in extensions.extensions():
             names.append(name)
             vers.append(extensions.moduleversion(module))
-        maxnamelen = max(len(n) for n in names)
-        for i, name in enumerate(names):
-            ui.write("  %-*s  %s\n" % (maxnamelen, name, vers[i]))
+        if names:
+            maxnamelen = max(len(n) for n in names)
+            for i, name in enumerate(names):
+                ui.write("  %-*s  %s\n" % (maxnamelen, name, vers[i]))
--- a/mercurial/context.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/context.py	Fri Aug 01 18:32:52 2014 -0500
@@ -120,7 +120,7 @@
         mf2 = self._manifestmatches(match, s)
 
         modified, added, clean = [], [], []
-        deleted, unknown, ignored = s[3], [], []
+        deleted, unknown, ignored = s[3], s[4], s[5]
         withflags = mf1.withflags() | mf2.withflags()
         for fn, mf2node in mf2.iteritems():
             if fn in mf1:
@@ -135,6 +135,10 @@
             elif fn not in deleted:
                 added.append(fn)
         removed = mf1.keys()
+        if removed:
+            # need to filter files if they are already reported as removed
+            unknown = [fn for fn in unknown if fn not in mf1]
+            ignored = [fn for fn in ignored if fn not in mf1]
 
         return [modified, added, removed, deleted, unknown, ignored, clean]
 
@@ -316,7 +320,8 @@
                              listunknown)
 
         if reversed:
-            r[1], r[2], r[3], r[4] = r[2], r[1], r[4], r[3]
+            # reverse added and removed
+            r[1], r[2] = r[2], r[1]
 
         if listsubrepos:
             for subpath, sub in scmutil.itersubrepos(ctx1, ctx2):
@@ -1577,7 +1582,7 @@
         files = sorted(set(files))
         self._status = [files, [], [], [], []]
         self._filectxfn = filectxfn
-        self.substate = None
+        self.substate = {}
 
         self._extra = extra and extra.copy() or {}
         if self._extra.get('branch', '') == '':
--- a/mercurial/dirstate.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/dirstate.py	Fri Aug 01 18:32:52 2014 -0500
@@ -504,6 +504,14 @@
     def write(self):
         if not self._dirty:
             return
+
+        # enough 'delaywrite' prevents 'pack_dirstate' from dropping
+        # timestamp of each entries in dirstate, because of 'now > mtime'
+        delaywrite = self._ui.configint('debug', 'dirstate.delaywrite', 0)
+        if delaywrite:
+            import time # to avoid useless import
+            time.sleep(delaywrite)
+
         st = self._opener("dirstate", "w", atomictemp=True)
         # use the modification time of the newly created temporary file as the
         # filesystem's notion of 'now'
--- a/mercurial/dispatch.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/dispatch.py	Fri Aug 01 18:32:52 2014 -0500
@@ -766,7 +766,7 @@
     if options['version']:
         return commands.version_(ui)
     if options['help']:
-        return commands.help_(ui, cmd)
+        return commands.help_(ui, cmd, command=True)
     elif not cmd:
         return commands.help_(ui, 'shortlist')
 
--- a/mercurial/exchange.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/exchange.py	Fri Aug 01 18:32:52 2014 -0500
@@ -242,7 +242,8 @@
     replyhandlers = []
     for partgen in bundle2partsgenerators:
         ret = partgen(pushop, bundler)
-        replyhandlers.append(ret)
+        if callable(ret):
+            replyhandlers.append(ret)
     # do not push if nothing to push
     if bundler.nbparts <= 1:
         return
--- a/mercurial/help/templates.txt	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/help/templates.txt	Fri Aug 01 18:32:52 2014 -0500
@@ -1,17 +1,14 @@
 Mercurial allows you to customize output of commands through
-templates. You can either pass in a template from the command
-line, via the --template option, or select an existing
-template-style (--style).
+templates. You can either pass in a template or select an existing
+template-style from the command line, via the --template option.
 
 You can customize output for any "log-like" command: log,
-outgoing, incoming, tip, parents, heads and glog.
+outgoing, incoming, tip, parents, and heads.
 
-Five styles are packaged with Mercurial: default (the style used
-when no explicit preference is passed), compact, changelog, phases
-and xml.
-Usage::
+Some built-in styles are packaged with Mercurial. These can be listed
+with :hg:`log --template list`. Example usage::
 
-    $ hg log -r1 --style changelog
+    $ hg log -r1.0::1.1 --template changelog
 
 A template is a piece of text, with markup to invoke variable
 expansion::
--- a/mercurial/revset.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/revset.py	Fri Aug 01 18:32:52 2014 -0500
@@ -2232,6 +2232,13 @@
         """Returns a new object with the substraction of the two collections.
 
         This is part of the mandatory API for smartset."""
+        # If we are operating on 2 baseset, do the computation now since all
+        # data is available. The alternative is to involve a lazyset, which
+        # may be slow.
+        if isinstance(other, baseset):
+            other = other.set()
+            return baseset([x for x in self if x not in other])
+
         return self.filter(lambda x: x not in other)
 
     def __and__(self, other):
--- a/mercurial/templater.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/templater.py	Fri Aug 01 18:32:52 2014 -0500
@@ -468,6 +468,7 @@
 
 def startswith(context, mapping, args):
     if len(args) != 2:
+        # i18n: "startswith" is a keyword
         raise error.ParseError(_("startswith expects two arguments"))
 
     patn = stringify(args[0][0](context, mapping, args[0][1]))
@@ -480,6 +481,7 @@
 def word(context, mapping, args):
     """return nth word from a string"""
     if not (2 <= len(args) <= 3):
+        # i18n: "word" is a keyword
         raise error.ParseError(_("word expects two or three arguments, got %d")
                                % len(args))
 
--- a/mercurial/ui.py	Fri Jul 18 19:46:56 2014 -0400
+++ b/mercurial/ui.py	Fri Aug 01 18:32:52 2014 -0500
@@ -437,7 +437,7 @@
         """
         user = os.environ.get("HGUSER")
         if user is None:
-            user = self.config("ui", "username")
+            user = self.config("ui", ["username", "user"])
             if user is not None:
                 user = os.path.expandvars(user)
         if user is None:
--- a/tests/test-add.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-add.t	Fri Aug 01 18:32:52 2014 -0500
@@ -107,7 +107,7 @@
   M a
   ? a.orig
   $ hg resolve -m a
-  no more unresolved files
+  (no more unresolved files)
   $ hg ci -m merge
 
 Issue683: peculiarity with hg revert of an removed then added file
--- a/tests/test-backout.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-backout.t	Fri Aug 01 18:32:52 2014 -0500
@@ -517,7 +517,7 @@
   merging foo
   my foo@b71750c4b0fd+ other foo@a30dd8addae3 ancestor foo@913609522437
    premerge successful
-  no more unresolved files
+  (no more unresolved files)
   $ hg status
   M foo
   ? foo.orig
--- a/tests/test-bundle2.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-bundle2.t	Fri Aug 01 18:32:52 2014 -0500
@@ -8,6 +8,15 @@
   > code. We still need to be able to test it while it grow up.
   > """
   > 
+  > import sys, os
+  > from mercurial import cmdutil
+  > from mercurial import util
+  > from mercurial import bundle2
+  > from mercurial import scmutil
+  > from mercurial import discovery
+  > from mercurial import changegroup
+  > from mercurial import error
+  > 
   > try:
   >     import msvcrt
   >     msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
@@ -16,14 +25,6 @@
   > except ImportError:
   >     pass
   > 
-  > import sys
-  > from mercurial import cmdutil
-  > from mercurial import util
-  > from mercurial import bundle2
-  > from mercurial import scmutil
-  > from mercurial import discovery
-  > from mercurial import changegroup
-  > from mercurial import error
   > cmdtable = {}
   > command = cmdutil.command(cmdtable)
   > 
@@ -957,7 +958,6 @@
   >     if reason == 'race':
   >         # 20 Bytes of crap
   >         bundler.newpart('b2x:check:heads', data='01234567890123456789')
-  >     return lambda op: None
   > 
   > @bundle2.parthandler("test:abort")
   > def handleabort(op, part):
--- a/tests/test-command-template.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-command-template.t	Fri Aug 01 18:32:52 2014 -0500
@@ -485,6 +485,11 @@
   (available styles: bisect, changelog, compact, default, phases, xml)
   [255]
 
+  $ hg log -T list
+  available styles: bisect, changelog, compact, default, phases, xml
+  abort: specify a template
+  [255]
+
 Error if style missing key:
 
   $ echo 'q = q' > t
--- a/tests/test-commit-amend.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-commit-amend.t	Fri Aug 01 18:32:52 2014 -0500
@@ -586,7 +586,7 @@
   merging cc incomplete! (edit conflicts, then use 'hg resolve --mark')
   [1]
   $ hg resolve -m cc
-  no more unresolved files
+  (no more unresolved files)
   $ hg ci -m 'merge bar'
   $ hg log --config diff.git=1 -pr .
   changeset:   23:93cd4445f720
--- a/tests/test-commit-unresolved.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-commit-unresolved.t	Fri Aug 01 18:32:52 2014 -0500
@@ -41,7 +41,7 @@
 Mark the conflict as resolved and commit
 
   $ hg resolve -m A
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m "Merged"
 
   $ cd ..
--- a/tests/test-committer.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-committer.t	Fri Aug 01 18:32:52 2014 -0500
@@ -52,15 +52,34 @@
   abort: no username supplied
   (use "hg config --edit" to set your username)
   [255]
+
+# test alternate config var
+
+  $ echo 1234 > asdf
+  $ echo "[ui]" > .hg/hgrc
+  $ echo "user = Foo Bar II <foo2@bar.com>" >> .hg/hgrc
+  $ hg commit -m commit-1
+  $ hg tip
+  changeset:   4:6f24bfb4c617
+  tag:         tip
+  user:        Foo Bar II <foo2@bar.com>
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     commit-1
+  
+# test no .hg/hgrc (uses generated non-interactive username)
+
+  $ echo space > asdf
   $ rm .hg/hgrc
   $ hg commit -m commit-1 2>&1
   no username found, using '[^']*' instead (re)
 
-  $ echo space > asdf
+  $ echo space2 > asdf
   $ hg commit -u ' ' -m commit-1
   transaction abort!
   rollback completed
   abort: empty username!
   [255]
 
+# don't add tests here, previous test is unstable
+
   $ cd ..
--- a/tests/test-convert-svn-sink.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-convert-svn-sink.t	Fri Aug 01 18:32:52 2014 -0500
@@ -352,7 +352,7 @@
   [1]
   $ hg --cwd b revert -r 2 b
   $ hg --cwd b resolve -m b
-  no more unresolved files
+  (no more unresolved files)
   $ hg --cwd b ci -d '5 0' -m 'merge'
 
 Expect 4 changes
--- a/tests/test-extension.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-extension.t	Fri Aug 01 18:32:52 2014 -0500
@@ -748,6 +748,17 @@
 Test version number support in 'hg version':
   $ echo '__version__ = (1, 2, 3)' >> throw.py
   $ rm -f throw.pyc throw.pyo
+  $ hg version -v
+  Mercurial Distributed SCM (version *) (glob)
+  (see http://mercurial.selenic.com for more information)
+  
+  Copyright (C) 2005-* Matt Mackall and others (glob)
+  This is free software; see the source for copying conditions. There is NO
+  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  
+  Enabled extensions:
+  
+
   $ hg version -v --config extensions.throw=throw.py
   Mercurial Distributed SCM (version *) (glob)
   (see http://mercurial.selenic.com for more information)
--- a/tests/test-fileset.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-fileset.t	Fri Aug 01 18:32:52 2014 -0500
@@ -154,7 +154,7 @@
   b2
   $ echo e > b2
   $ hg resolve -m b2
-  no more unresolved files
+  (no more unresolved files)
   $ fileset 'resolved()'
   b2
   $ fileset 'unresolved()'
--- a/tests/test-graft.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-graft.t	Fri Aug 01 18:32:52 2014 -0500
@@ -235,7 +235,7 @@
 
   $ echo b > e
   $ hg resolve -m e
-  no more unresolved files
+  (no more unresolved files)
 
 Continue with a revision should fail:
 
@@ -370,7 +370,7 @@
   [255]
   $ hg resolve --all
   merging a
-  no more unresolved files
+  (no more unresolved files)
   $ hg graft -c
   grafting revision 1
   $ hg export tip --git
@@ -399,7 +399,7 @@
   [255]
   $ hg resolve --all
   merging a and b to b
-  no more unresolved files
+  (no more unresolved files)
   $ hg graft -c
   grafting revision 2
   $ hg export tip --git
--- a/tests/test-help.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-help.t	Fri Aug 01 18:32:52 2014 -0500
@@ -862,6 +862,17 @@
   *"hg -v help debugoptDEP"* (glob)
 #endif
 
+Test commands that collide with topics (issue4240)
+
+  $ hg config -hq
+  hg config [-u] [NAME]...
+  
+  show combined config settings from all hgrc files
+  $ hg showconfig -hq
+  hg config [-u] [NAME]...
+  
+  show combined config settings from all hgrc files
+
 Test a help topic
 
   $ hg help revs
--- a/tests/test-histedit-commute.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-histedit-commute.t	Fri Aug 01 18:32:52 2014 -0500
@@ -324,6 +324,30 @@
      date:        Thu Jan 01 00:00:00 1970 +0000
      summary:     a
   
+Verify that revsetalias entries work with histedit:
+  $ cat >> $HGRCPATH <<EOF
+  > [revsetalias]
+  > grandparent(ARG) = p1(p1(ARG))
+  > EOF
+  $ echo extra commit >> c
+  $ hg ci -m 'extra commit to c'
+  $ HGEDITOR=cat hg histedit 'grandparent(.)'
+  pick ece0b8d93dda 6 c
+  pick 803ef1c6fcfd 7 e
+  pick 9c863c565126 8 extra commit to c
+  
+  # Edit history between ece0b8d93dda and 9c863c565126
+  #
+  # Commits are listed from least to most recent
+  #
+  # Commands:
+  #  p, pick = use commit
+  #  e, edit = use commit, but stop for amending
+  #  f, fold = use commit, but combine it with the one above
+  #  d, drop = remove commit from history
+  #  m, mess = edit message without changing commit content
+  #
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 should also work if a commit message is missing
   $ BUNDLE="$TESTDIR/missing-comment.hg"
--- a/tests/test-histedit-edit.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-histedit-edit.t	Fri Aug 01 18:32:52 2014 -0500
@@ -233,8 +233,7 @@
   > EOF
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   abort: emulating unexpected abort
-  $ cat .hg/last-message.txt
-  cat: .hg/last-message.txt: No such file or directory
+  $ test -f .hg/last-message.txt
   [1]
 
   $ cat >> .hg/hgrc <<EOF
--- a/tests/test-histedit-fold-non-commute.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-histedit-fold-non-commute.t	Fri Aug 01 18:32:52 2014 -0500
@@ -95,7 +95,7 @@
 fix up
   $ echo 'I can haz no commute' > e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ cat > cat.py <<EOF
   > import sys
   > print open(sys.argv[1]).read()
@@ -130,7 +130,7 @@
 just continue this time
   $ hg revert -r 'p1()' e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue 2>&1 | fixbundle
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-histedit-fold.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-histedit-fold.t	Fri Aug 01 18:32:52 2014 -0500
@@ -217,7 +217,7 @@
   U file
   $ hg revert -r 'p1()' file
   $ hg resolve --mark file
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   saved backup bundle to $TESTTMP/*-backup.hg (glob)
@@ -277,7 +277,7 @@
   > 5
   > EOF
   $ hg resolve --mark file
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m '+5.2'
   created new head
   $ echo 6 >> file
--- a/tests/test-histedit-non-commute.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-histedit-non-commute.t	Fri Aug 01 18:32:52 2014 -0500
@@ -154,7 +154,7 @@
 fix up
   $ echo 'I can haz no commute' > e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue 2>&1 | fixbundle
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merging e
@@ -168,7 +168,7 @@
 just continue this time
   $ hg revert -r 'p1()' e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue 2>&1 | fixbundle
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -241,7 +241,7 @@
 
   $ echo 'I can haz no commute' > e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue 2>&1 | fixbundle
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merging e
@@ -251,7 +251,7 @@
 second edit also fails, but just continue
   $ hg revert -r 'p1()' e
   $ hg resolve --mark e
-  no more unresolved files
+  (no more unresolved files)
   $ hg histedit --continue 2>&1 | fixbundle
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-issue3084.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-issue3084.t	Fri Aug 01 18:32:52 2014 -0500
@@ -165,8 +165,7 @@
   $ chmod 755 .hg
 #endif
 
-  $ find .hg/largefiles
-  find: `.hg/largefiles': No such file or directory
+  $ test -f .hg/largefiles
   [1]
 
 ancestor is "normal":
--- a/tests/test-keyword.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-keyword.t	Fri Aug 01 18:32:52 2014 -0500
@@ -1057,7 +1057,7 @@
 resolve to local
 
   $ HGMERGE=internal:local hg resolve -a
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m localresolve
   $ cat m
   $Id: m 800511b3a22d Thu, 01 Jan 1970 00:00:00 +0000 test $
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-largefiles-update.t	Fri Aug 01 18:32:52 2014 -0500
@@ -0,0 +1,102 @@
+This file focuses mainly on updating largefiles in the working
+directory (and ".hg/largefiles/dirstate")
+
+  $ cat >> $HGRCPATH <<EOF
+  > [ui]
+  > merge = internal:fail
+  > [extensions]
+  > largefiles =
+  > EOF
+
+  $ hg init repo
+  $ cd repo
+
+  $ echo large1 > large1
+  $ echo large2 > large2
+  $ hg add --large large1 large2
+  $ echo normal1 > normal1
+  $ hg add normal1
+  $ hg commit -m '#0'
+  $ echo 'large1 in #1' > large1
+  $ echo 'normal1 in #1' > normal1
+  $ hg commit -m '#1'
+  $ hg update -q -C 0
+  $ echo 'large2 in #2' > large2
+  $ hg commit -m '#2'
+  created new head
+
+Test that "hg merge" updates largefiles from "other" correctly
+
+(getting largefiles from "other" normally)
+
+  $ hg status -A large1
+  C large1
+  $ cat large1
+  large1
+  $ cat .hglf/large1
+  4669e532d5b2c093a78eca010077e708a071bb64
+  $ hg merge --config debug.dirstate.delaywrite=2
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  getting changed largefiles
+  1 largefiles updated, 0 removed
+  $ hg status -A large1
+  M large1
+  $ cat large1
+  large1 in #1
+  $ cat .hglf/large1
+  58e24f733a964da346e2407a2bee99d9001184f5
+  $ hg diff -c 1 --nodates .hglf/large1 | grep '^[+-][0-9a-z]'
+  -4669e532d5b2c093a78eca010077e708a071bb64
+  +58e24f733a964da346e2407a2bee99d9001184f5
+
+(getting largefiles from "other" via conflict prompt)
+
+  $ hg update -q -C 2
+  $ echo 'large1 in #3' > large1
+  $ echo 'normal1 in #3' > normal1
+  $ hg commit -m '#3'
+  $ cat .hglf/large1
+  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  $ hg merge --config debug.dirstate.delaywrite=2 --config ui.interactive=True <<EOF
+  > o
+  > EOF
+  largefile large1 has a merge conflict
+  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
+  keep (l)ocal e5bb990443d6a92aaf7223813720f7566c9dd05b or
+  take (o)ther 58e24f733a964da346e2407a2bee99d9001184f5? merging normal1
+  warning: conflicts during merge.
+  merging normal1 incomplete! (edit conflicts, then use 'hg resolve --mark')
+  0 files updated, 1 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
+  getting changed largefiles
+  1 largefiles updated, 0 removed
+  [1]
+  $ hg status -A large1
+  M large1
+  $ cat large1
+  large1 in #1
+  $ cat .hglf/large1
+  58e24f733a964da346e2407a2bee99d9001184f5
+
+Test that "hg revert -r REV" updates largefiles from "REV" correctly
+
+  $ hg update -q -C 3
+  $ hg status -A large1
+  C large1
+  $ cat large1
+  large1 in #3
+  $ cat .hglf/large1
+  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  $ hg diff -c 1 --nodates .hglf/large1 | grep '^[+-][0-9a-z]'
+  -4669e532d5b2c093a78eca010077e708a071bb64
+  +58e24f733a964da346e2407a2bee99d9001184f5
+  $ hg revert --no-backup -r 1 --config debug.dirstate.delaywrite=2 large1
+  $ hg status -A large1
+  M large1
+  $ cat large1
+  large1 in #1
+  $ cat .hglf/large1
+  58e24f733a964da346e2407a2bee99d9001184f5
+
+  $ cd ..
--- a/tests/test-lfconvert.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-lfconvert.t	Fri Aug 01 18:32:52 2014 -0500
@@ -132,7 +132,7 @@
   [1]
   $ hg cat -r . sub/maybelarge.dat > stuff/maybelarge.dat
   $ hg resolve -m stuff/maybelarge.dat
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m"merge"
   $ hg log -G --template "{rev}:{node|short}  {desc|firstline}\n"
   @    5:4884f215abda  merge
--- a/tests/test-log.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-log.t	Fri Aug 01 18:32:52 2014 -0500
@@ -260,6 +260,98 @@
   +a
   
 
+log -pf, but no args
+
+  $ hg log -pf
+  changeset:   3:2ca5ba701980
+  user:        test
+  date:        Thu Jan 01 00:00:04 1970 +0000
+  summary:     d
+  
+  diff -r f8954cd4dc1f -r 2ca5ba701980 a
+  --- a/a	Thu Jan 01 00:00:03 1970 +0000
+  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +0,0 @@
+  -a
+  diff -r f8954cd4dc1f -r 2ca5ba701980 b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:04 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  diff -r f8954cd4dc1f -r 2ca5ba701980 d
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/d	Thu Jan 01 00:00:04 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  diff -r f8954cd4dc1f -r 2ca5ba701980 g
+  --- a/g	Thu Jan 01 00:00:03 1970 +0000
+  +++ b/g	Thu Jan 01 00:00:04 1970 +0000
+  @@ -1,2 +1,2 @@
+   f
+  -g
+  +f
+  
+  changeset:   2:f8954cd4dc1f
+  user:        test
+  date:        Thu Jan 01 00:00:03 1970 +0000
+  summary:     c
+  
+  diff -r d89b0a12d229 -r f8954cd4dc1f b
+  --- a/b	Thu Jan 01 00:00:02 1970 +0000
+  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +0,0 @@
+  -a
+  diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/dir/b	Thu Jan 01 00:00:03 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  diff -r d89b0a12d229 -r f8954cd4dc1f f
+  --- a/f	Thu Jan 01 00:00:02 1970 +0000
+  +++ b/f	Thu Jan 01 00:00:03 1970 +0000
+  @@ -1,1 +1,2 @@
+   f
+  +f
+  diff -r d89b0a12d229 -r f8954cd4dc1f g
+  --- a/g	Thu Jan 01 00:00:02 1970 +0000
+  +++ b/g	Thu Jan 01 00:00:03 1970 +0000
+  @@ -1,1 +1,2 @@
+   f
+  +g
+  
+  changeset:   1:d89b0a12d229
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  summary:     b
+  
+  diff -r 9161b9aeaf16 -r d89b0a12d229 b
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/b	Thu Jan 01 00:00:02 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  diff -r 9161b9aeaf16 -r d89b0a12d229 g
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/g	Thu Jan 01 00:00:02 1970 +0000
+  @@ -0,0 +1,1 @@
+  +f
+  
+  changeset:   0:9161b9aeaf16
+  user:        test
+  date:        Thu Jan 01 00:00:01 1970 +0000
+  summary:     a
+  
+  diff -r 000000000000 -r 9161b9aeaf16 a
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/a	Thu Jan 01 00:00:01 1970 +0000
+  @@ -0,0 +1,1 @@
+  +a
+  diff -r 000000000000 -r 9161b9aeaf16 f
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/f	Thu Jan 01 00:00:01 1970 +0000
+  @@ -0,0 +1,1 @@
+  +f
+  
+
 log -vf dir/b
 
   $ hg log -vf dir/b
@@ -1027,7 +1119,7 @@
   [1]
   $ echo 'merge 1' > foo
   $ hg resolve -m foo
-  no more unresolved files
+  (no more unresolved files)
   $ hg ci -m "First merge, related"
 
   $ hg merge 4
@@ -1039,7 +1131,7 @@
   [1]
   $ echo 'merge 2' > foo
   $ hg resolve -m foo
-  no more unresolved files
+  (no more unresolved files)
   $ hg ci -m "Last merge, related"
 
   $ hg log --graph
--- a/tests/test-merge-types.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-merge-types.t	Fri Aug 01 18:32:52 2014 -0500
@@ -50,7 +50,7 @@
   a is a symlink:
   a -> symlink
   $ hg resolve a --tool internal:other
-  no more unresolved files
+  (no more unresolved files)
   $ tellmeabout a
   a is an executable file with content:
   a
--- a/tests/test-merge7.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-merge7.t	Fri Aug 01 18:32:52 2014 -0500
@@ -57,7 +57,7 @@
   > EOF
   $ rm -f *.orig
   $ hg resolve -m test.txt
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m "Merge 1"
 
 change test-a again
--- a/tests/test-merge9.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-merge9.t	Fri Aug 01 18:32:52 2014 -0500
@@ -76,7 +76,8 @@
 
 resolve all warning
   $ hg resolve
-  abort: no files or directories specified; use --all to remerge all files
+  abort: no files or directories specified
+  (use --all to remerge all files)
   [255]
 
 resolve all
--- a/tests/test-mq-qfold.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-mq-qfold.t	Fri Aug 01 18:32:52 2014 -0500
@@ -182,8 +182,7 @@
   refresh interrupted while patch was popped! (revert --all, qpush to recover)
   abort: emulating unexpected abort
   [255]
-  $ cat .hg/last-message.txt
-  cat: .hg/last-message.txt: No such file or directory
+  $ test -f .hg/last-message.txt
   [1]
 
 (reset applied patches and directory status)
--- a/tests/test-mq-qimport.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-mq-qimport.t	Fri Aug 01 18:32:52 2014 -0500
@@ -196,6 +196,14 @@
   now at: appendbar.diff
   $ hg qfin -a
   patch b.diff finalized without changeset message
+  $ touch .hg/patches/2.diff
+  $ hg qimport -r 'p1(.)::'
+  abort: patch "2.diff" already exists
+  [255]
+  $ hg qapplied
+  3.diff
+  $ hg qfin -a
+  $ rm .hg/patches/2.diff
   $ hg qimport -r 'p1(.)::' -P
   $ hg qpop -a
   popping 3.diff
--- a/tests/test-mq-qnew.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-mq-qnew.t	Fri Aug 01 18:32:52 2014 -0500
@@ -158,7 +158,7 @@
   merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
   use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
-  no more unresolved files
+  (no more unresolved files)
   abort: cannot manage merge changesets
   $ rm -r sandbox
 
@@ -232,7 +232,7 @@
   merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
   use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
-  no more unresolved files
+  (no more unresolved files)
   abort: cannot manage merge changesets
   $ rm -r sandbox
 
@@ -268,8 +268,7 @@
   $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e patch
   abort: emulating unexpected abort
   [255]
-  $ cat .hg/last-message.txt
-  cat: .hg/last-message.txt: No such file or directory
+  $ test -f .hg/last-message.txt
   [1]
 
 (test that editor is invoked and commit message is saved into
--- a/tests/test-mq-qrefresh-interactive.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-mq-qrefresh-interactive.t	Fri Aug 01 18:32:52 2014 -0500
@@ -31,7 +31,7 @@
   
   options:
   
-   -e --edit                edit commit message
+   -e --edit                invoke editor on commit messages
    -g --git                 use git extended diff format
    -s --short               refresh only files already in the patch and
                             specified files
@@ -75,7 +75,7 @@
   
   options:
   
-   -e --edit                edit commit message
+   -e --edit                invoke editor on commit messages
    -g --git                 use git extended diff format
    -s --short               refresh only files already in the patch and
                             specified files
--- a/tests/test-mq-qrefresh-replace-log-message.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-mq-qrefresh-replace-log-message.t	Fri Aug 01 18:32:52 2014 -0500
@@ -133,8 +133,7 @@
   refresh interrupted while patch was popped! (revert --all, qpush to recover)
   abort: emulating unexpected abort
   [255]
-  $ cat .hg/last-message.txt
-  cat: .hg/last-message.txt: No such file or directory
+  $ test -f .hg/last-message.txt
   [1]
 
 (reset applied patches and directory status)
--- a/tests/test-qrecord.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-qrecord.t	Fri Aug 01 18:32:52 2014 -0500
@@ -62,7 +62,7 @@
                             list
       --amend               amend the parent of the working dir
    -s --secret              use the secret phase for committing
-   -e --edit                further edit commit message already specified
+   -e --edit                invoke editor on commit messages
    -I --include PATTERN [+] include names matching the given patterns
    -X --exclude PATTERN [+] exclude names matching the given patterns
    -m --message TEXT        use text as commit message
@@ -135,7 +135,7 @@
   
   options:
   
-   -e --edit                edit commit message
+   -e --edit                invoke editor on commit messages
    -g --git                 use git extended diff format
    -U --currentuser         add "From: <current user>" to patch
    -u --user USER           add "From: <USER>" to patch
--- a/tests/test-rebase-bookmarks.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-bookmarks.t	Fri Aug 01 18:32:52 2014 -0500
@@ -169,7 +169,7 @@
   [1]
   $ echo 'c' > c
   $ hg resolve --mark c
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase --continue
   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/3d5fa227f4b5-backup.hg (glob)
   $ hg tglog
--- a/tests/test-rebase-check-restore.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-check-restore.t	Fri Aug 01 18:32:52 2014 -0500
@@ -76,7 +76,7 @@
   $ echo 'conflict solved' > A
   $ rm A.orig
   $ hg resolve -m A
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase --continue
 
   $ hg tglog
@@ -130,7 +130,7 @@
   $ echo 'conflict solved' > A
   $ rm A.orig
   $ hg resolve -m A
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase --continue
   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
 
--- a/tests/test-rebase-conflicts.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-conflicts.t	Fri Aug 01 18:32:52 2014 -0500
@@ -77,7 +77,7 @@
 
   $ echo 'resolved merge' >common
   $ hg resolve -m common
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase --continue
   saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
 
--- a/tests/test-rebase-detach.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-detach.t	Fri Aug 01 18:32:52 2014 -0500
@@ -374,7 +374,7 @@
   unresolved conflicts (see hg resolve, then hg rebase --continue)
   [1]
   $ hg resolve --all -t internal:local
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase -c
   saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6215fafa5447-backup.hg (glob)
   $ hg  log -G --template "{rev}:{phase} '{desc}' {branches}\n"
--- a/tests/test-rebase-interruptions.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-interruptions.t	Fri Aug 01 18:32:52 2014 -0500
@@ -104,7 +104,7 @@
   $ echo 'conflict solved' > A
   $ rm A.orig
   $ hg resolve -m A
-  no more unresolved files
+  (no more unresolved files)
 
   $ hg rebase --continue
   warning: new changesets detected on source branch, not stripping
--- a/tests/test-rebase-mq-skip.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-mq-skip.t	Fri Aug 01 18:32:52 2014 -0500
@@ -111,7 +111,7 @@
   [1]
 
   $ HGMERGE=internal:local hg resolve --all
-  no more unresolved files
+  (no more unresolved files)
 
   $ hg rebase --continue
   saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
--- a/tests/test-rebase-mq.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-mq.t	Fri Aug 01 18:32:52 2014 -0500
@@ -69,7 +69,7 @@
 
   $ echo mq1r1 > f
   $ hg resolve -m f
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase -c
   merging f
   warning: conflicts during merge.
@@ -81,7 +81,7 @@
 
   $ echo mq1r1mq2 > f
   $ hg resolve -m f
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase -c
   saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
 
--- a/tests/test-rebase-parameters.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-rebase-parameters.t	Fri Aug 01 18:32:52 2014 -0500
@@ -454,7 +454,7 @@
   U c2
 
   $ hg resolve -m c2
-  no more unresolved files
+  (no more unresolved files)
   $ hg rebase -c --tool internal:fail
   tool option will be ignored
   saved backup bundle to $TESTTMP/b3/.hg/strip-backup/*-backup.hg (glob)
--- a/tests/test-resolve.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-resolve.t	Fri Aug 01 18:32:52 2014 -0500
@@ -39,7 +39,7 @@
 
   $ echo resolved > file
   $ hg resolve -m file
-  no more unresolved files
+  (no more unresolved files)
   $ hg commit -m 'resolved'
 
 resolve -l should be empty
--- a/tests/test-shelve.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-shelve.t	Fri Aug 01 18:32:52 2014 -0500
@@ -308,7 +308,7 @@
 
   $ hg revert -r . a/a
   $ hg resolve -m a/a
-  no more unresolved files
+  (no more unresolved files)
 
   $ hg commit -m 'commit while unshelve in progress'
   abort: unshelve already in progress
--- a/tests/test-status.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-status.t	Fri Aug 01 18:32:52 2014 -0500
@@ -280,6 +280,19 @@
   R removed
   C deleted
 
+status against non-parent with unknown file (issue4321)
+
+  $ touch unknown
+  $ hg status --rev 0 unknown
+  ? unknown
+
+status of removed but existing in working directory.  "? removed" should
+not be included:
+
+  $ touch removed
+  $ hg status --rev 0 removed
+  R removed
+
   $ cd ..
 
 hg status of binary file starting with '\1\n', a separator for metadata:
--- a/tests/test-subrepo-svn.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-subrepo-svn.t	Fri Aug 01 18:32:52 2014 -0500
@@ -672,11 +672,9 @@
   $ cd tc
   $ grep ' s$' .hgsubstate
   16 s
-  $ cat s/.hg/hgrc
-  cat: s/.hg/hgrc: No such file or directory
+  $ test -f s/.hg/hgrc
   [1]
-  $ cat s/sub/.hg/hgrc
-  cat: s/sub/.hg/hgrc: No such file or directory
+  $ test -f s/sub/.hg/hgrc
   [1]
 
 Test that sanitizing is omitted in meta data area:
--- a/tests/test-tag.t	Fri Jul 18 19:46:56 2014 -0400
+++ b/tests/test-tag.t	Fri Aug 01 18:32:52 2014 -0500
@@ -242,8 +242,7 @@
   $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg tag custom-tag -e
   abort: pretag.test-saving-lastmessage hook exited with status 1
   [255]
-  $ cat .hg/last-message.txt
-  cat: .hg/last-message.txt: No such file or directory
+  $ test -f .hg/last-message.txt
   [1]
 
 (test that editor is invoked and commit message is saved into