changeset 23133:336e19a473d9

merge with stable
author Matt Mackall <mpm@selenic.com>
date Mon, 03 Nov 2014 14:01:52 -0600
parents f10019d2ee0a (current diff) cc1cbb0bba8e (diff)
children 22e76e370611
files
diffstat 66 files changed, 3048 insertions(+), 1172 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsigs	Fri Oct 17 02:17:36 2014 -0700
+++ b/.hgsigs	Mon Nov 03 14:01:52 2014 -0600
@@ -94,3 +94,5 @@
 3178e49892020336491cdc6945885c4de26ffa8b 0 iQIVAwUAU9whUCBXgaxoKi1yAQJDKxAAoGzdHXV/BvZ598VExEQ8IqkmBVIP1QZDVBr/orMc1eFM4tbGKxumMGbqgJsg+NetI0irkh/YWeJQ13lT4Og72iJ+4UC9eF9pcpUKr/0eBYdU2N/p2MIbVNWh3aF5QkbuQpSri0VbHOWkxqwoqrrwXEjgHaKYP4PKh+Dzukax4yzBUIyzAG38pt4a8hbjnozCl2uAikxk4Ojg+ZufhPoZWgFEuYzSfK5SrwVKOwuxKYFGbbVGTQMIXLvBhOipAmHp4JMEYHfG85kwuyx/DCDbGmXKPQYQfClwjJ4ob/IwG8asyMsPWs+09vrvpVO08HBuph3GjuiWJ1fhEef/ImWmZdQySI9Y4SjwP4dMVfzLCnY+PYPDM9Sq/5Iee13gI2lVM2NtAfQZPXh9l8u6SbCir1UhMNMx0qVMkqMAATmiZ+ETHCO75q4Wdcmnv5fk2PbvaGBVtrHGeiyuz5mK/j4cMbd0R9R0hR1PyC4dOhNqOnbqELNIe0rKNByG1RkpiQYsqZTU6insmnZrv4fVsxfA4JOObPfKNT4oa24MHS73ldLFCfQAuIxVE7RDJJ3bHeh/yO6Smo28FuVRldBl5e+wj2MykS8iVcuSa1smw6gJ14iLBH369nlR3fAAQxI0omVYPDHLr7SsH3vJasTaCD7V3SL4lW6vo/yaAh4ImlTAE+Y=
 5dc91146f35369949ea56b40172308158b59063a 0 iQIVAwUAVAUgJyBXgaxoKi1yAQJkEg/9EXFZvPpuvU7AjII1dlIT8F534AXrO30+H6hweg+h2mUCSb/mZnbo3Jr1tATgBWbIKkYmmsiIKNlJMFNPZTWhImGcVA93t6v85tSFiNJRI2QP9ypl5wTt2KhiS/s7GbUYCtPDm6xyNYoSvDo6vXJ5mfGlgFZY5gYLwEHq/lIRWLWD4EWYWbk5yN+B7rHu6A1n3yro73UR8DudEhYYqC23KbWEqFOiNd1IGj3UJlxIHUE4AcDukxbfiMWrKvv1kuT/vXak3X7cLXlO56aUbMopvaUflA3PSr3XAqynDd69cxACo/T36fuwzCQN4ICpdzGTos0rQALSr7CKF5YP9LMhVhCsOn0pCsAkSiw4HxxbcHQLl+t+0rchNysc4dWGwDt6GAfYcdm3fPtGFtA3qsN8lOpCquFH3TAZ3TrIjLFoTOk6s1xX1x5rjP/DAHc/y3KZU0Ffx3TwdQEEEIFaAXaxQG848rdfzV42+dnFnXh1G/MIrKAmv3ZSUkQ3XJfGc7iu82FsYE1NLHriUQDmMRBzCoQ1Rn1Kji119Cxf5rsMcQ6ZISR1f0jDCUS/qxlHvSqETLp8H63NSUfvuKSC7uC6pGvq9XQm1JRNO5UuJfK6tHzy0jv9bt2IRo2xbmvpDu9L5oHHd3JePsAmFmbrFf/7Qem3JyzEvRcpdcdHtefxcxc=
 f768c888aaa68d12dd7f509dcc7f01c9584357d0 0 iQIVAwUAVCxczSBXgaxoKi1yAQJYiA/9HnqKuU7IsGACgsUGt+YaqZQumg077Anj158kihSytmSts6xDxqVY1UQB38dqAKLJrQc7RbN0YK0NVCKZZrx/4OqgWvjiL5qWUJKqQzsDx4LGTUlbPlZNZawW2urmmYW6c9ZZDs1EVnVeZMDrOdntddtnBgtILDwrZ8o3U7FwSlfnm03vTkqUMj9okA3AsI8+lQIlo4qbqjQJYwvUC1ZezRdQwaT1LyoWUgjmhoZ1XWcWKOs9baikaJr6fMv8vZpwmaOY1+pztxYlROeSPVWt9P6yOf0Hi/2eg8AwSZLaX96xfk9IvXUSItg/wjTWP9BhnNs/ulwTnN8QOgSXpYxH4RXwsYOyU7BvwAekA9xi17wuzPrGEliScplxICIZ7jiiwv/VngMvM9AYw2mNBvZt2ZIGrrLaK6pq/zBm5tbviwqt5/8U5aqO8k1O0e4XYm5WmQ1c2AkXRO+xwvFpondlSF2y0flzf2FRXP82QMfsy7vxIP0KmaQ4ex+J8krZgMjNTwXh2M4tdYNtu5AehJQEP3l6giy2srkMDuFLqoe1yECjVlGdgA86ve3J/84I8KGgsufYMhfQnwHHGXCbONcNsDvO0QOee6CIQVcdKCG7dac3M89SC6Ns2CjuC8BIYDRnxbGQb7Fvn4ZcadyJKKbXQJzMgRV25K6BAwTIdvYAtgU=
+7f8d16af8cae246fa5a48e723d48d58b015aed94 0 iQIVAwUAVEL0XyBXgaxoKi1yAQJLkRAAjZhpUju5nnSYtN9S0/vXS/tjuAtBTUdGwc0mz97VrM6Yhc6BjSCZL59tjeqQaoH7Lqf94pRAtZyIB2Vj/VVMDbM+/eaoSr1JixxppU+a4eqScaj82944u4C5YMSMC22PMvEwqKmy87RinZKJlFwSQ699zZ5g6mnNq8xeAiDlYhoF2QKzUXwnKxzpvjGsYhYGDMmVS1QPmky4WGvuTl6KeGkv8LidKf7r6/2RZeMcq+yjJ7R0RTtyjo1cM5dMcn/jRdwZxuV4cmFweCAeoy5guV+X6du022TpVndjOSDoKiRgdk7pTuaToXIy+9bleHpEo9bwKx58wvOMg7sirAYjrA4Xcx762RHiUuidTTPktm8sNsBQmgwJZ8Pzm+8TyHjFGLnBfeiDbQQEdLCXloz0jVOVRflDfMays1WpAYUV8XNOsgxnD2jDU8L0NLkJiX5Y0OerGq9AZ+XbgJFVBFhaOfsm2PEc3jq00GOLzrGzA+4b3CGpFzM3EyK9OnnwbP7SqCGb7PJgjmQ7IO8IWEmVYGaKtWONSm8zRLcKdH8xuk8iN1qCkBXMty/wfTEVTkIlMVEDbslYkVfj0rAPJ8B37bfe0Yz4CEMkCmARIB1rIOpMhnavXGuD50OP2PBBY/8DyC5aY97z9f04na/ffk+l7rWaHihjHufKIApt5OnfJ1w=
+ced632394371a36953ce4d394f86278ae51a2aae 0 iQIVAwUAVFWpfSBXgaxoKi1yAQLCQw//cvCi/Di3z/2ZEDQt4Ayyxv18gzewqrYyoElgnEzr5uTynD9Mf25hprstKla/Y5C6q+y0K6qCHPimGOkz3H+wZ2GVUgLKAwMABkfSb5IZiLTGaB2DjAJKZRwB6h43wG/DSFggE3dYszWuyHW88c72ZzVF5CSNc4J1ARLjDSgnNYJQ6XdPw3C9KgiLFDXzynPpZbPg0AK5bdPUKJruMeIKPn36Hx/Tv5GXUrbc2/lcnyRDFWisaDl0X/5eLdA+r3ID0cSmyPLYOeCgszRiW++KGw+PPDsWVeM3ZaZ9SgaBWU7MIn9A7yQMnnSzgDbN+9v/VMT3zbk1WJXlQQK8oA+CCdHH9EY33RfZ6ST/lr3pSQbUG1hdK6Sw+H6WMkOnnEk6HtLwa4xZ3HjDpoPkhVV+S0C7D5WWOovbubxuBiW5v8tK4sIOS6bAaKevTBKRbo4Rs6qmS/Ish5Q+z5bKst80cyEdi4QSoPZ/W+6kh1KfOprMxynwPQhtEcDYW2gfLpgPIM7RdXPKukLlkV2qX3eF/tqApGU4KNdP4I3N80Ri0h+6tVU/K4TMYzlRV3ziLBumJ4TnBrTHU3X6AfZUfTgslQzokX8/7a3tbctX6kZuJPggLGisdFSdirHbrUc+y5VKuJtPr+LxxgZKRFbs2VpJRem6FvwGNyndWLv32v0GMtQ=
--- a/.hgtags	Fri Oct 17 02:17:36 2014 -0700
+++ b/.hgtags	Mon Nov 03 14:01:52 2014 -0600
@@ -107,3 +107,5 @@
 3178e49892020336491cdc6945885c4de26ffa8b 3.1
 5dc91146f35369949ea56b40172308158b59063a 3.1.1
 f768c888aaa68d12dd7f509dcc7f01c9584357d0 3.1.2
+7f8d16af8cae246fa5a48e723d48d58b015aed94 3.2-rc
+ced632394371a36953ce4d394f86278ae51a2aae 3.2
--- a/Makefile	Fri Oct 17 02:17:36 2014 -0700
+++ b/Makefile	Mon Nov 03 14:01:52 2014 -0600
@@ -186,5 +186,7 @@
 	contrib/dockerrpm centos7
 
 .PHONY: help all local build doc clean install install-bin install-doc \
-	install-home install-home-bin install-home-doc dist dist-notests tests \
-	update-pot fedora20 docker-fedora20
+	install-home install-home-bin install-home-doc \
+	dist dist-notests check tests check-code update-pot \
+	osx fedora20 docker-fedora20 \
+	centos5 docker-centos5 centos6 docker-centos6 centos7 docker-centos7
--- a/contrib/dockerrpm	Fri Oct 17 02:17:36 2014 -0700
+++ b/contrib/dockerrpm	Mon Nov 03 14:01:52 2014 -0600
@@ -45,9 +45,9 @@
 cat << EOF > $RPMBUILDDIR/mercurial.repo
 # Place this file in /etc/yum.repos.d/mercurial.repo
 [mercurial]
-name=Mercurial packages for $NAME
+name=Mercurial packages for $PLATFORM
 # baseurl=file://$RPMBUILDDIR/
-baseurl=http://hg.example.com/build/$NAME/
+baseurl=http://hg.example.com/build/$PLATFORM/
 skip_if_unavailable=True
 gpgcheck=0
 enabled=1
--- a/contrib/zsh_completion	Fri Oct 17 02:17:36 2014 -0700
+++ b/contrib/zsh_completion	Mon Nov 03 14:01:52 2014 -0600
@@ -709,7 +709,7 @@
   '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \
   '(--copies -C)'{-C,--copies}'[show copied files]' \
   '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \
-  '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \
+  '*'{-r,--rev}'[show the specified revision or revset]:revision:_hg_revrange' \
   '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \
   '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_labels' \
   '(--graph -G)'{-G+,--graph}'[show the revision DAG]' \
--- a/hgext/churn.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/churn.py	Mon Nov 03 14:01:52 2014 -0600
@@ -92,7 +92,7 @@
 
 @command('churn',
     [('r', 'rev', [],
-     _('count rate for the specified revision or range'), _('REV')),
+     _('count rate for the specified revision or revset'), _('REV')),
     ('d', 'date', '',
      _('count rate for revisions matching date spec'), _('DATE')),
     ('t', 'template', '{author|email}',
--- a/hgext/eol.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/eol.py	Mon Nov 03 14:01:52 2014 -0600
@@ -333,10 +333,10 @@
             for f in sorted(ctx.added() + ctx.modified()):
                 if not self._eolfile(f):
                     continue
-                try:
-                    data = ctx[f].data()
-                except IOError:
+                fctx = ctx[f]
+                if fctx is None:
                     continue
+                data = fctx.data()
                 if util.binary(data):
                     # We should not abort here, since the user should
                     # be able to say "** = native" to automatically
--- a/hgext/graphlog.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/graphlog.py	Mon Nov 03 14:01:52 2014 -0600
@@ -31,7 +31,7 @@
     ('C', 'copies', None, _('show copied files')),
     ('k', 'keyword', [],
      _('do case-insensitive search for a given text'), _('TEXT')),
-    ('r', 'rev', [], _('show the specified revision or range'), _('REV')),
+    ('r', 'rev', [], _('show the specified revision or revset'), _('REV')),
     ('', 'removed', None, _('include revisions where files were removed')),
     ('m', 'only-merges', None, _('show only merges (DEPRECATED)')),
     ('u', 'user', [], _('revisions committed by user'), _('USER')),
--- a/hgext/keyword.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/keyword.py	Mon Nov 03 14:01:52 2014 -0600
@@ -619,7 +619,7 @@
                 ret = super(kwrepo, self).rollback(dryrun, force)
                 if not dryrun:
                     ctx = self['.']
-                    modified, added = _preselect(self[None].status(), changed)
+                    modified, added = _preselect(ctx.status(), changed)
                     kwt.overwrite(ctx, modified, True, True)
                     kwt.overwrite(ctx, added, True, False)
                 return ret
@@ -702,7 +702,7 @@
             # therefore compare nodes before and after
             kwt.postcommit = True
             ctx = repo['.']
-            wstatus = repo[None].status()
+            wstatus = ctx.status()
             ret = orig(ui, repo, commitfunc, *pats, **opts)
             recctx = repo['.']
             if ctx != recctx:
--- a/hgext/largefiles/reposetup.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/largefiles/reposetup.py	Mon Nov 03 14:01:52 2014 -0600
@@ -174,14 +174,24 @@
                         for lfile in tocheck:
                             standin = lfutil.standin(lfile)
                             if standin in ctx1:
-                                if ctx1[standin].data().strip() != \
-                                        lfutil.hashfile(self.wjoin(lfile)):
+                                abslfile = self.wjoin(lfile)
+                                if ((ctx1[standin].data().strip() !=
+                                     lfutil.hashfile(abslfile)) or
+                                    (('x' in ctx1.flags(standin)) !=
+                                     bool(lfutil.getexecutable(abslfile)))):
                                     modified.append(lfile)
                                 elif listclean:
                                     clean.append(lfile)
                             else:
                                 added.append(lfile)
 
+                        # at this point, 'removed' contains largefiles
+                        # marked as 'R' in the working context.
+                        # then, largefiles not managed also in the target
+                        # context should be excluded from 'removed'.
+                        removed = [lfile for lfile in removed
+                                   if lfutil.standin(lfile) in ctx1]
+
                     # Standins no longer found in lfdirstate has been
                     # removed
                     for standin in ctx1.walk(lfutil.getstandinmatcher(self)):
--- a/hgext/mq.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/mq.py	Mon Nov 03 14:01:52 2014 -0600
@@ -2001,7 +2001,7 @@
                 base = repo.changelog.node(rev.first())
                 if base in [n.node for n in self.applied]:
                     raise util.Abort(_('revision %d is already managed')
-                                     % rev[0])
+                                     % rev.first())
                 if heads != [self.applied[-1].node]:
                     raise util.Abort(_('revision %d is not the parent of '
                                        'the queue') % rev.first())
--- a/hgext/rebase.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/hgext/rebase.py	Mon Nov 03 14:01:52 2014 -0600
@@ -273,9 +273,9 @@
                     ui.status(_('empty "base" revision set - '
                                 "can't compute rebase set\n"))
                     return 1
-                rebaseset = repo.revs(
-                    '(children(ancestor(%ld, %d)) and ::(%ld))::',
-                    base, dest, base)
+                commonanc = repo.revs('ancestor(%ld, %d)', base, dest).first()
+                rebaseset = repo.revs('(%d::(%ld) - %d)::',
+                                      commonanc, base, commonanc)
                 if not rebaseset:
                     # transform to list because smartsets are not comparable to
                     # lists. This should be improved to honor lazyness of
--- a/i18n/ja.po	Fri Oct 17 02:17:36 2014 -0700
+++ b/i18n/ja.po	Mon Nov 03 14:01:52 2014 -0600
@@ -101,7 +101,7 @@
 # merge                 マージ
 # modify(modified)      変更(ファイル/作業領域)、改変(リビジョン)
 # must(A must B)        A は B してください
-# node                  リビジョン
+# node                  リビジョン (あるいは「対象」という言い回し)
 # note                  備考
 # patch                 パッチ
 # platform              稼働環境
@@ -149,8 +149,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2014-08-30 21:28+0900\n"
-"PO-Revision-Date: 2014-08-31 20:40+0900\n"
+"POT-Creation-Date: 2014-11-01 17:00+0900\n"
+"PO-Revision-Date: 2014-11-01 17:57+0900\n"
 "Last-Translator: Japanese translation team <mercurial-ja@googlegroups.com>\n"
 "Language-Team: Japanese\n"
 "Language: ja\n"
@@ -1354,8 +1354,7 @@
 "This extension is deprecated. You should use :hg:`log -r\n"
 "\"children(REV)\"` instead.\n"
 msgstr ""
-"本エクステンションは非推奨です。:hg:`log -r \"children(REV)\"`\n"
-"を使用してください。\n"
+"本エクステンションは非推奨です (:hg:`log -r \"children(REV)\"` で代替可能)\n"
 
 msgid "REV"
 msgstr "リビジョン"
@@ -1394,8 +1393,8 @@
 msgid "analyzing"
 msgstr "解析中"
 
-msgid "count rate for the specified revision or range"
-msgstr "処理対象とする特定リビジョン/範囲の指定"
+msgid "count rate for the specified revision or revset"
+msgstr "処理対象とするリビジョン(群)の指定"
 
 msgid "DATE"
 msgstr "日時"
@@ -1518,17 +1517,24 @@
 msgstr "コマンド出力のカラー化"
 
 msgid ""
-"This extension modifies the status and resolve commands to add color\n"
-"to their output to reflect file status, the qseries command to add\n"
-"color to reflect patch status (applied, unapplied, missing), and to\n"
-"diff-related commands to highlight additions, removals, diff headers,\n"
-"and trailing whitespace."
-msgstr ""
-"本エクステンションは、 status および resolve コマンドの場合は、\n"
-"各ファイル状態に応じて、 qseries コマンドの場合は、 パッチの適用状況\n"
-"(適用済み、 未適用、 不在) に応じて、 diff 関連コマンドの場合は、\n"
-"追加、 削除、 差分ヘッダおよび末尾空白文字の各要素に対応して、\n"
-"出力に対する色付けを行います。"
+"The color extension colorizes output from several Mercurial commands.\n"
+"For example, the diff command shows additions in green and deletions\n"
+"in red, while the status command shows modified files in magenta. Many\n"
+"other commands have analogous colors. It is possible to customize\n"
+"these colors."
+msgstr ""
+"本エクステンションは、 Mercurial コマンドの出力をカラー化します。\n"
+"例えば、 diff コマンドでは、 追加行は緑、 削除行は赤といった色付けが、\n"
+"status コマンドでは、 変更状態のファイルが赤紫 (magenta) で表示されます。\n"
+"他の多くのコマンドの出力も、 同様にカラー化されます。 カラー化設定は、\n"
+"カスタマイズ可能です。"
+
+msgid ""
+"Effects\n"
+"-------"
+msgstr ""
+"効果\n"
+"----"
 
 msgid ""
 "Other effects in addition to color, like bold and underlined text, are\n"
@@ -1542,8 +1548,61 @@
 "データベースが使用されます。 terminfo が使用できない場合は、\n"
 "ECMA-48 SGR 制御機能 (「ANSI エスケープコード」の別名) を使用します。"
 
-msgid "Default effects may be overridden from your configuration file::"
-msgstr "デフォルトの挙動は、 設定ファイルでの記述により上書きされます::"
+msgid ""
+"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
+"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
+"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
+"'underline'.  How each is rendered depends on the terminal emulator.\n"
+"Some may not be available for a given terminal type, and will be\n"
+"silently ignored."
+msgstr ""
+"terminfo 使用時に有効な効果は、 'blink', 'bold', 'dim', 'inverse',\n"
+"'invisible', 'italic', 'standout' および 'underline' です。\n"
+"ECMA-48 使用時に有効な効果は、 'bold', 'inverse', 'italic' および\n"
+"'underline' です。 各指定が実際の表示に与える効果は、\n"
+"端末の実装に依存します。 当該端末で無効な効果に関しては、\n"
+"警告等を発せずに無視されます。"
+
+msgid ""
+"Labels\n"
+"------"
+msgstr ""
+"ラベル\n"
+"------"
+
+msgid ""
+"Text receives color effects depending on the labels that it has. Many\n"
+"default Mercurial commands emit labelled text. You can also define\n"
+"your own labels in templates using the label function, see :hg:`help\n"
+"templates`. A single portion of text may have more than one label. In\n"
+"that case, effects given to the last label will override any other\n"
+"effects. This includes the special \"none\" effect, which nullifies\n"
+"other effects."
+msgstr ""
+"出力のカラー化は、 個々の表示要素が持つ 「ラベル」 情報の影響を受けます。\n"
+"Mercurial コマンドの出力の多くは、 ラベル情報付き表示要素で構成されます。\n"
+"テンプレート機能の 'label' 関数を使うことで、 独自ラベルも定義できます。\n"
+"(詳細は :hg:`help templates` 参照)  単一の表示要素に対して、\n"
+"複数ラベルの付与も可能です。 複数ラベルが指定された場合のカラー化では、\n"
+"他の効果を打ち消す \"none\" 指定を含め、最後のラベルのものが優先します。"
+
+msgid ""
+"Labels are normally invisible. In order to see these labels and their\n"
+"position in the text, use the global --color=debug option. The same\n"
+"anchor text may be associated to multiple labels, e.g."
+msgstr ""
+"ラベル情報は不可視ですが、 ラベルと表示要素の関係を視認したい場合は、\n"
+"``--color=debug`` を指定します。 以下は複数ラベルを持つ単一表示要素の例です"
+
+msgid "  [log.changeset changeset.secret|changeset:   22611:6f0a53c8f587]"
+msgstr "  [log.changeset changeset.secret|changeset:   22611:6f0a53c8f587]"
+
+msgid ""
+"The following are the default effects for some default labels. Default\n"
+"effects may be overridden from your configuration file::"
+msgstr ""
+"以下はラベルと表示効果のデフォルト設定です。 これらのデフォルト設定は、\n"
+"設定ファイル既述ににより上書き可能です::"
 
 msgid ""
 "  [color]\n"
@@ -1589,6 +1648,7 @@
 "  diff.deleted = red\n"
 "  diff.inserted = green\n"
 "  diff.changed = white\n"
+"  diff.tab =\n"
 "  diff.trailingwhitespace = bold red_background"
 msgstr ""
 "  diff.diffline = bold\n"
@@ -1599,9 +1659,21 @@
 "  diff.deleted = red\n"
 "  diff.inserted = green\n"
 "  diff.changed = white\n"
+"  diff.tab =\n"
 "  diff.trailingwhitespace = bold red_background"
 
 msgid ""
+"  # Blank so it inherits the style of the surrounding label\n"
+"  changeset.public =\n"
+"  changeset.draft =\n"
+"  changeset.secret ="
+msgstr ""
+"  # 空値設定により、より外側のカラー設定を引き継ぎます\n"
+"  changeset.public =\n"
+"  changeset.draft =\n"
+"  changeset.secret ="
+
+msgid ""
 "  resolve.unresolved = red bold\n"
 "  resolve.resolved = green bold"
 msgstr ""
@@ -1649,36 +1721,11 @@
 msgstr "  histedit.remaining = red bold"
 
 msgid ""
-"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
-"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
-"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
-"'underline'.  How each is rendered depends on the terminal emulator.\n"
-"Some may not be available for a given terminal type, and will be\n"
-"silently ignored."
-msgstr ""
-"terminfo 使用時に有効な効果は、 'blink' 'bold' 'dim' 'inverse'\n"
-"'invisible' 'italic' 'standout' および 'underline' です。\n"
-"ECMA-48 使用時に有効な効果は、 'bold' 'inverse' 'italic' および\n"
-"'underline' です。 各指定が実際の表示に与える効果は、\n"
-"端末の実装に依存します。 当該端末で無効な効果に関しては、\n"
-"警告等を発せずに無視されます。"
-
-msgid ""
-"Note that on some systems, terminfo mode may cause problems when using\n"
-"color with the pager extension and less -R. less with the -R option\n"
-"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
-"emit codes that less doesn't understand. You can work around this by\n"
-"either using ansi mode (or auto mode), or by using less -r (which will\n"
-"pass through all terminal control codes, not just color control\n"
-"codes)."
-msgstr ""
-"pager エクステンションでの ``less -R`` 使用と、 terminfo 使用の併用は、\n"
-"稼動環境によっては、 色付けが正しく機能しない可能性があります。\n"
-"``less -R`` が ECMA-48 の色指定しか解釈しないことから、 less\n"
-"が解釈しない色指定制御が terminfo 使用時に除外される場合があるためです。\n"
-"このような場合、 端末指定に ansi (または auto) を用いるか、 ``less -r``\n"
-"(色指定以外の全ての端末制御が、 透過的に伝播されます) を使用することで、\n"
-"状況が改善される可能性があります。"
+"Custom colors\n"
+"-------------"
+msgstr ""
+"色設定のカスタマイズ\n"
+"--------------------"
 
 msgid ""
 "Because there are only eight standard colors, this module allows you\n"
@@ -1713,6 +1760,13 @@
 "事前定義された8色と同様に使えます。"
 
 msgid ""
+"Modes\n"
+"-----"
+msgstr ""
+"モード\n"
+"------"
+
+msgid ""
 "By default, the color extension will use ANSI mode (or win32 mode on\n"
 "Windows) if it detects a terminal. To override auto mode (to enable\n"
 "terminfo mode, for example), set the following configuration option::"
@@ -1730,10 +1784,27 @@
 
 msgid ""
 "Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color.\n"
+"disable color."
 msgstr ""
 "'ansi' 'win32' 'terminfo' または 'auto' 以外の値が指定された場合、\n"
-"色付けは無効化されます。\n"
+"色付けは無効化されます。"
+
+msgid ""
+"Note that on some systems, terminfo mode may cause problems when using\n"
+"color with the pager extension and less -R. less with the -R option\n"
+"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
+"emit codes that less doesn't understand. You can work around this by\n"
+"either using ansi mode (or auto mode), or by using less -r (which will\n"
+"pass through all terminal control codes, not just color control\n"
+"codes).\n"
+msgstr ""
+"pager エクステンションでの ``less -R`` 使用と、 terminfo 使用の併用は、\n"
+"稼動環境によっては、 色付けが正しく機能しない可能性があります。\n"
+"``less -R`` が ECMA-48 の色指定しか解釈しないことから、 less\n"
+"が解釈しない色指定制御が terminfo 使用時に除外される場合があるためです。\n"
+"このような場合、 端末指定に ansi (または auto) を用いるか、 ``less -r``\n"
+"(色指定以外の全ての端末制御が、 透過的に伝播されます) を使用することで、\n"
+"状況が改善される可能性があります。\n"
 
 msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
 msgstr ""
@@ -1751,11 +1822,10 @@
 msgid "label expects two arguments"
 msgstr "label の引数は2つです"
 
-#. i18n: 'always', 'auto', and 'never' are keywords and should
-#. not be translated
-msgid "when to colorize (boolean, always, auto, or never)"
-msgstr ""
-"カラー表示種別。 true, always(常時), auto(自動) false または never(禁止)"
+#. i18n: 'always', 'auto', 'never', and 'debug' are keywords
+#. and should not be translated
+msgid "when to colorize (boolean, always, auto, never, or debug)"
+msgstr "カラー化実施契機 (always, auto, never または debug)"
 
 msgid "TYPE"
 msgstr "種別"
@@ -1784,6 +1854,9 @@
 msgid "remap file names using contents of file"
 msgstr "変換時のファイル名変換用ファイル"
 
+msgid "apply filemap changes by converting all files again"
+msgstr "全ての管理対象ファイルに filemap を適用"
+
 msgid "splice synthesized history into place"
 msgstr "継ぎ合わせによる履歴の合成"
 
@@ -1992,6 +2065,22 @@
 "    リポジトリルート直下に改名する場合、 改名先に ``.`` を使います。"
 
 msgid ""
+"    ``--full`` will make sure the converted changesets contain exactly\n"
+"    the right files with the right content. It will make a full\n"
+"    conversion of all files, not just the ones that have\n"
+"    changed. Files that already are correct will not be changed. This\n"
+"    can be used to apply filemap changes when converting\n"
+"    incrementally. This is currently only supported for Mercurial and\n"
+"    Subversion."
+msgstr ""
+"    ``--full`` は、 変換後のリビジョンにおいて、 ファイルとその内容を、\n"
+"    厳密に対応付けるために使用します。 通常の filemap 使用時と異なり、\n"
+"    変換対象リビジョン時点で存在するファイルは、変更が発生しないものも、\n"
+"    変換対象に含まれます (ファイル名補正済みのものは、 除外されます)。\n"
+"    継続的に変換を行うケース等で ``--full`` は有用です。 この機能は現在、\n"
+"    Mercurial と Subversion からの変換に対してのみ機能します。"
+
+msgid ""
 "    The splicemap is a file that allows insertion of synthetic\n"
 "    history, letting you specify the parents of a revision. This is\n"
 "    useful if you want to e.g. give a Subversion merge two parents, or\n"
@@ -2278,6 +2367,48 @@
 "        デフォルト値は 0。"
 
 msgid ""
+"    Git Source\n"
+"    ##########"
+msgstr ""
+"    Git 形式からの変換\n"
+"    ##################"
+
+msgid ""
+"    The Git importer converts commits from all reachable branches (refs\n"
+"    in refs/heads) and remotes (refs in refs/remotes) to Mercurial.\n"
+"    Branches are converted to bookmarks with the same name, with the\n"
+"    leading 'refs/heads' stripped. Git submodules are converted to Git\n"
+"    subrepos in Mercurial."
+msgstr ""
+
+msgid ""
+"    :convert.git.similarity: specify how similar files modified in a\n"
+"        commit must be to be imported as renames or copies, as a\n"
+"        percentage between ``0`` (disabled) and ``100`` (files must be\n"
+"        identical). For example, ``90`` means that a delete/add pair will\n"
+"        be imported as a rename if more than 90% of the file hasn't\n"
+"        changed. The default is ``50``."
+msgstr ""
+"    :convert.git.similarity: 改名/複製扱いでの、 類似度のパーセント値。\n"
+"        ``0`` (判定無し) から ``100`` (厳密一致) までの整数値。 例えば\n"
+"        ``90`` の場合、 追加登録・登録除外された一対のファイルに関して、 \n"
+"        お互いの内容が 90% 以上一致すれば、 改名操作とみなされます。\n"
+"        デフォルト値は 50。 (※ 訳注: 本機能で必要とされる --find-copies\n"
+"        オプションは git 1.7.4 以降で追加されたものなので、 これより古い\n"
+"        git コマンドを使用する環境では 0 値を設定してください)"
+
+msgid ""
+"    :convert.git.findcopiesharder: while detecting copies, look at all\n"
+"        files in the working copy instead of just changed ones. This\n"
+"        is very expensive for large projects, and is only effective when\n"
+"        ``convert.git.similarity`` is greater than 0. The default is False."
+msgstr ""
+"    :convert.git.findcopiesharder: 複製判定の際に、 変更対象だけでなく、\n"
+"        全てのファイルを比較対象にするか否か。 大規模リポジトリの場合、\n"
+"        処理に時間を要します。 ``convert.git.similarity`` が 0 の場合は、\n"
+"        効果を持ちません。 デフォルト値は False。"
+
+msgid ""
 "    Perforce Source\n"
 "    ###############"
 msgstr ""
@@ -2428,13 +2559,12 @@
 msgstr "%s は有効なリビジョンではありません"
 
 #, python-format
-msgid "%s is not available in %s anymore"
-msgstr "%s は %s に存在しません"
-
-#, python-format
 msgid "%s.%s symlink has no target"
 msgstr "%s.%s はシンボリックリンク先がありません"
 
+msgid "convert from cvs do not support --full"
+msgstr "cvs からの変換では --full は未サポートです"
+
 #, python-format
 msgid "cannot find required \"%s\" tool"
 msgstr "要求されたツール '%s' が見つかりません"
@@ -2685,6 +2815,9 @@
 msgid "failed to detect repository format!"
 msgstr "リポジトリ形式の判定に失敗!"
 
+msgid "convert from darcs do not support --full"
+msgstr "darcs からの変換では --full は未サポートです"
+
 msgid "internal calling inconsistency"
 msgstr "内部不整合"
 
@@ -2718,6 +2851,9 @@
 msgid "%s does not look like a Git repository"
 msgstr "%s は Git 形式ではないと思われます"
 
+msgid "similarity must be between 0 and 100"
+msgstr "類似度には0から100の間を指定してください"
+
 msgid "cannot retrieve git heads"
 msgstr "git のヘッドが取得できません"
 
@@ -2733,6 +2869,9 @@
 msgid "cannot read submodules config file in %s"
 msgstr "%s におけるサブモジュールの設定ファイルが読み込めません"
 
+msgid "convert from git do not support --full"
+msgstr "git からの変換では --full は未サポートです"
+
 #, python-format
 msgid "cannot read changes in %s"
 msgstr "%s の変更を読み込めません"
@@ -2757,6 +2896,9 @@
 "tree analysis stopped because it points to an unregistered archive %s...\n"
 msgstr "未登録アーカイブ %s の参照によりツリー解析を中止...\n"
 
+msgid "convert from arch do not support --full"
+msgstr "arch からの変換では --full は未サポートです"
+
 #, python-format
 msgid "could not parse cat-log of %s"
 msgstr "リビジョン %s の cat-log の解析に失敗"
@@ -2834,6 +2976,9 @@
 msgid "mtn command '%s' returned %s"
 msgstr "mtn コマンド '%s' の実行結果: %s"
 
+msgid "convert from monotone do not support --full"
+msgstr "monotone からの変換では --full は未サポートです"
+
 #, python-format
 msgid "copying file in renamed directory from '%s' to '%s'"
 msgstr "改名先ディレクトリの '%s' から '%s' へファイルを複製中"
@@ -2858,6 +3003,9 @@
 msgid "collecting p4 changelists\n"
 msgstr "p4 チェンジリストの収集中\n"
 
+msgid "convert from p4 do not support --full"
+msgstr "p4 からの変換では --full は未サポートです"
+
 msgid "debugsvnlog could not load Subversion python bindings"
 msgstr "debugsvnlog が Subversion python バインディングを読み込めません"
 
@@ -3008,7 +3156,7 @@
 "``[patterns]`` セクションは、 作業領域とリポジトリ記録の間における、\n"
 "改行変換方法に関して記述します。 ファイルパターン形式で記述します。\n"
 "先に合致したパターンが採用されますので、 より特徴的なパターンほど、\n"
-"より先頭で記述してください。 指定可能な改行形式は ``LF``、\n"
+"より先頭で記述してください。 指定可能な改行形式は ``LF`` 、 \n"
 "``CRLF`` および ``BIN`` です。"
 
 msgid ""
@@ -3025,7 +3173,7 @@
 "リポジトリへの格納の際に、 指定の改行形式に変換されますが、 バイナリ\n"
 "(``BIN``) 指定されたファイルは、 改行変換されません。 これらに加えて、\n"
 "実行環境固有の改行形式の使用を意味する ``native`` も使用可能です:\n"
-"Unix (Mac OS X 含む) 環境では ``LF``、 Windows 環境では ``CRLF``。\n"
+"Unix (Mac OS X 含む) 環境では ``LF`` 、 Windows 環境では ``CRLF`` 。 \n"
 "``BIN`` (改行変換無し) は、 Mercurial のデフォルトの挙動です:\n"
 "一般的なパターン指定に、 意図せず合致してしまうのを回避したい場合に、\n"
 "当該パターンよりも先に合致させる場合にのみ有用です。"
@@ -3048,7 +3196,7 @@
 "``CRLF`` です。 無指定時は ``LF`` とみなされます。 例えば Windows 上で\n"
 "``native`` (デフォルト設定は ``CRLF``) 指定されたファイルは、\n"
 "改行形式が ``LF`` に変換された上で、 履歴に記録されます。\n"
-"``[patterns]`` セクションにおいて ``LF``、 ``CRLF`` または ``BIN``\n"
+"``[patterns]`` セクションにおいて ``LF`` 、 ``CRLF`` または ``BIN`` \n"
 "が指定されたファイルは、 そのままの改行形式で履歴に記録されます。"
 
 msgid "Example versioned ``.hgeol`` file::"
@@ -3516,15 +3664,6 @@
 "working dir not at branch tip (use \"hg update\" to check out branch tip)"
 msgstr "作業領域はブランチの最新ではありません(\"hg update\" で最新に更新可能)"
 
-msgid "outstanding uncommitted merge"
-msgstr "マージが未コミットです"
-
-msgid "outstanding uncommitted changes"
-msgstr "変更が未コミットです"
-
-msgid "working directory is missing some files"
-msgstr "作業領域に存在しないファイルがあります"
-
 msgid ""
 "multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)"
 msgstr ""
@@ -3650,11 +3789,11 @@
 msgid "error while signing"
 msgstr "署名処理に失敗"
 
-msgid ""
-"working copy of .hgsigs is changed (please commit .hgsigs manually or use --"
-"force)"
-msgstr ""
-"作業領域の .hgsigs は変更されています(手動コミットまたは --force の指定)"
+msgid "working copy of .hgsigs is changed "
+msgstr "作業領域の .hgtags が変更されています"
+
+msgid "please commit .hgsigs manually"
+msgstr ".hgtags を手動でコミットしてください"
 
 msgid "unknown signature version"
 msgstr "未知の署名バージョン"
@@ -3691,8 +3830,8 @@
 msgid "do case-insensitive search for a given text"
 msgstr "指定キーワードによる検索(大文字小文字は無視)"
 
-msgid "show the specified revision or range"
-msgstr "指定された単一、 またはリビジョン区間の表示"
+msgid "show the specified revision or revset"
+msgstr "指定されたリビジョン (群) の表示"
 
 msgid "include revisions where files were removed"
 msgstr "ファイルが登録除外されたリビジョンを含める"
@@ -4056,6 +4195,7 @@
 " #  p, pick = use commit\n"
 " #  e, edit = use commit, but stop for amending\n"
 " #  f, fold = use commit, but combine it with the one above\n"
+" #  r, roll = like fold, but discard this commit's description\n"
 " #  d, drop = remove commit from history\n"
 " #  m, mess = edit message without changing commit content\n"
 " #"
@@ -4068,8 +4208,9 @@
 " #  p, pick = リビジョンを採用\n"
 " #  e, edit = リビジョンを採用: 但し修正のために一旦実行を中断\n"
 " #  f, fold = リビジョンを採用: 但し直前(= 一覧での上)のリビジョンに併合\n"
+" #  r, roll = リビジョンを採用: fold 同様併合するが、コミットログは破棄\n"
 " #  d, drop = リビジョンを破棄\n"
-" #  m, mess = 変更内容を維持しつつ、コミットログを修正\n"
+" #  m, mess = リビジョンを採用: 変更内容を維持しつつ、コミットログを修正\n"
 " #"
 
 msgid ""
@@ -4282,6 +4423,7 @@
 "#  p, pick = use commit\n"
 "#  e, edit = use commit, but stop for amending\n"
 "#  f, fold = use commit, but combine it with the one above\n"
+"#  r, roll = like fold, but discard this commit's description\n"
 "#  d, drop = remove commit from history\n"
 "#  m, mess = edit message without changing commit content\n"
 "#\n"
@@ -4294,10 +4436,14 @@
 "#  p, pick = リビジョンを採用\n"
 "#  e, edit = リビジョンを採用: 但し修正のために一旦実行を中断\n"
 "#  f, fold = リビジョンを採用: 但し直前(= 一覧での上)のリビジョンに併合\n"
+"#  r, roll = リビジョンを採用: fold 同様併合するが、コミットログは破棄\n"
 "#  d, drop = リビジョンを破棄\n"
-"#  m, mess = 変更内容を維持しつつ、コミットログを修正\n"
+"#  m, mess = リビジョンを採用: 変更内容を維持しつつ、コミットログを修正\n"
 "#\n"
 
+msgid "no histedit in progress"
+msgstr "実施中の histedit による履歴改変はありません"
+
 msgid "Fix up the change and run hg histedit --continue"
 msgstr "衝突解消後に 'hg histedit --continue' を実行してください"
 
@@ -4623,6 +4769,12 @@
 msgid "no [keyword] patterns configured"
 msgstr "[keyword] でのパターン設定がありません"
 
+msgid "outstanding uncommitted merge"
+msgstr "マージが未コミットです"
+
+msgid "outstanding uncommitted changes"
+msgstr "変更が未コミットです"
+
 msgid "show default keyword template maps"
 msgstr "デフォルトのテンプレートマップで表示"
 
@@ -4868,7 +5020,7 @@
 "To start a new repository or add new large binary files, just add\n"
 "--large to your :hg:`add` command. For example::"
 msgstr ""
-"新規に大容量ファイルを追加登録する場合は、 以下の例のように、:hg:`add`\n"
+"新規に大容量ファイルを追加登録する場合は、 以下の例のように、 :hg:`add` \n"
 "に対して --large を指定します::"
 
 msgid ""
@@ -7824,7 +7976,7 @@
 msgstr ""
 "本エクステンションは、 hg コマンドからの進捗情報を元に、\n"
 "可能な限り有益な進捗率を表示します。 多くの処理での進捗率表示が、\n"
-"明確な処理総量に基づいている一方で、 幾つかの処理においては、\n"
+"明確な処理総量に基づいている一方で、 いくつかの処理においては、\n"
 "不確定な情報に基づいた進捗率を表示する場合もあります。"
 
 msgid "The following settings are available::"
@@ -8025,13 +8177,11 @@
 "詳細は以下を参照してください:\n"
 "http://mercurial.selenic.com/wiki/RebaseExtension\n"
 
-msgid "rebase from the specified changeset"
-msgstr "指定リビジョンからの移動"
-
-msgid ""
-"rebase from the base of the specified changeset (up to greatest common "
-"ancestor of base and dest)"
-msgstr "指定リビジョンの祖先から移動 (移動先との共通祖先まで遡ります)"
+msgid "rebase the specified changeset and descendants"
+msgstr "指定リビジョンとその子孫の移動"
+
+msgid "rebase everything from branching point of specified changeset"
+msgstr "指定リビジョンの枝分かれ元以降のリビジョンの移動"
 
 msgid "rebase these revisions"
 msgstr "指定リビジョン群の移動"
@@ -8184,14 +8334,71 @@
 "    衝突解消後に --continue/-c で再開するか、 --abort/-a で中止\n"
 "    (移動関連情報の破棄) してください。"
 
+msgid "      Examples:"
+msgstr "      例:"
+
+msgid ""
+"      - move \"local changes\" (current commit back to branching point)\n"
+"        to the current branch tip after a pull::"
+msgstr ""
+"      - 「ローカルの変更」 (作業領域親リビジョン分岐元以降) を、\n"
+"        現行ブランチの最新リビジョンへ移動 (:hg:`pull` 後の実施を想定)::"
+
+msgid "          hg rebase"
+msgstr "          hg rebase"
+
+msgid "      - move a single changeset to the stable branch::"
+msgstr "      - 単一のリビジョンを stable ブランチへ移動::"
+
+msgid "          hg rebase -r 5f493448 -d stable"
+msgstr "          hg rebase -r 5f493448 -d stable"
+
+msgid ""
+"      - splice a commit and all its descendants onto another part of "
+"history::"
+msgstr ""
+"      - リビジョン c0c3 とその全ての子孫を、 リビジョン 4cf9 へと移動::"
+
+msgid "          hg rebase --source c0c3 --dest 4cf9"
+msgstr "          hg rebase --source c0c3 --dest 4cf9"
+
+msgid ""
+"      - rebase everything on a branch marked by a bookmark onto the\n"
+"        default branch::"
+msgstr ""
+"      - ブックマーク myfeature が示す枝分かれを default ブランチに移動::"
+
+msgid "          hg rebase --base myfeature --dest default"
+msgstr "          hg rebase --base myfeature --dest default"
+
+msgid "      - collapse a sequence of changes into a single commit::"
+msgstr "      - 指定リビジョン群を単一リビジョン化::"
+
+msgid "          hg rebase --collapse -r 1520:1525 -d ."
+msgstr "          hg rebase --collapse -r 1520:1525 -d ."
+
+msgid "      - move a named branch while preserving its name::"
+msgstr "      - ブランチ名前を維持しつつ、 名前付きブランチ全体を移動::"
+
+msgid "          hg rebase -r \"branch(featureX)\" -d 1.3 --keepbranches"
+msgstr "          hg rebase -r \"branch(featureX)\" -d 1.3 --keepbranches"
+
 msgid ""
 "    Returns 0 on success, 1 if nothing to rebase or there are\n"
-"    unresolved conflicts.\n"
-"    "
+"    unresolved conflicts."
 msgstr ""
 "    成功時のコマンド終了値は 0、 移動が必要なリビジョンが無い場合や、\n"
-"    未解消の衝突が発生した場合は 1 です。\n"
-"    "
+"    未解消の衝突が発生した場合は 1 です。"
+
+msgid "    "
+msgstr "    "
+
+msgid ""
+"interactive history editing is supported by the 'histedit' extension (see "
+"'hg help histedit')"
+msgstr ""
+"対話的な履歴の改変は histedit エクステンションを使用します('hg help "
+"histeidt' 参照)"
 
 msgid "message can only be specified with collapse"
 msgstr "--collapse 指定との併用時のみメッセージ指定が可能です"
@@ -8322,7 +8529,7 @@
 msgstr "管理情報 (.hg/rebasestate) が破損しています"
 
 msgid "no rebase in progress"
-msgstr "未完了な rebase による移動はありません"
+msgstr "実施中の rebase による移動はありません"
 
 #, python-format
 msgid "warning: can't clean up immutable changesets %s\n"
@@ -8761,7 +8968,7 @@
 "       \"中止: 作業領域の親 REV が未知のリビジョンです\"\n"
 "       メッセージ表示と共に、 他方でのあらゆる操作が失敗します。\n"
 "       この場合の唯一の復旧方法は、 機能しない側のリポジトリにおいて、\n"
-"       確実に存在するリビジョンでの :hg:`debugsetparents` 実施だけです。\n"
+"       確実に存在するリビジョンでの ``hg debugsetparents`` 実施だけです。\n"
 "    "
 
 msgid "convert a shared repository to a normal one"
@@ -9466,7 +9673,7 @@
 "- 問題文字コードを使用しないユーザ"
 
 msgid "Note that there are some limitations on using this extension:"
-msgstr "このエクステンションの利用には幾つかの制限があります:"
+msgstr "このエクステンションの利用にはいくつかの制限があります:"
 
 msgid ""
 "- You should use single encoding in one repository.\n"
@@ -9704,25 +9911,13 @@
 msgstr "連携先での新規ブックマーク %s を追加中\n"
 
 #, python-format
+msgid "importing bookmark %s\n"
+msgstr "ブックマーク %s の取り込み中\n"
+
+#, python-format
 msgid "divergent bookmark %s stored as %s\n"
 msgstr "分岐するブックマーク %s を %s として保存\n"
 
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "ブックマーク %s はいずれのリポジトリにも存在しません!\n"
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "ブックマーク %s の更新に失敗!\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "ブックマーク %s の反映中\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "連携先のブックマーク %s の削除中\n"
-
 msgid "searching for changed bookmarks\n"
 msgstr "変更されたブックマークを探索中\n"
 
@@ -9736,9 +9931,37 @@
 msgid "unknown bundle version %s"
 msgstr "未知のバンドル形式バージョン %s"
 
+#, python-format
+msgid "remote-changegroup: missing \"%s\" param"
+msgstr "remote-changegroup: パラメータ \"%s\" 指定がありません"
+
+#, python-format
+msgid "remote-changegroup does not support %s urls"
+msgstr "remote-changegroup は URL %s の形式を未サポートです"
+
+#, python-format
+msgid "remote-changegroup: invalid value for param \"%s\""
+msgstr "remote-changegroup: パラメータ \"%s\" 値が不適切です"
+
+#, python-format
+msgid "%s: not a bundle version 1.0"
+msgstr "%s: バンドル形式バージョン 1.0 ではありません"
+
+#, python-format
+msgid ""
+"bundle at %s is corrupted:\n"
+"%s"
+msgstr ""
+"%s のバンドルは破損しています:\n"
+"%s"
+
 msgid "push failed:"
 msgstr "履歴反映に失敗:"
 
+#, python-format
+msgid "%i new obsolescence markers\n"
+msgstr "%i 個の新規廃止情報マーカ\n"
+
 msgid "unknown parent"
 msgstr "未知の親"
 
@@ -9803,8 +10026,8 @@
 msgid "added %d changesets with %d changes to %d files%s\n"
 msgstr "%d 個のリビジョン(%d の変更を %d ファイルに適用)を追加%s\n"
 
-msgid "no node"
-msgstr "ノードがありません"
+msgid "filtered node"
+msgstr "指定対象はフィルタリング対象です"
 
 msgid "empty username"
 msgstr "ユーザ名が空です"
@@ -9930,6 +10153,9 @@
 "警告: パッチを通常リビジョンとして取り込みます\n"
 "(マージ実施パッチを取り込む場合は --exact を指定してください)\n"
 
+msgid "warning: can't check exact import with --no-commit\n"
+msgstr "警告: --no-commit 指定時は --exact による確認効果が薄れます\n"
+
 msgid "patch is damaged or loses information"
 msgstr "パッチには破損または情報の欠落があります"
 
@@ -10130,25 +10356,25 @@
 msgstr "コミット対象リビジョン %d:%s\n"
 
 #, python-format
+msgid "reverting %s\n"
+msgstr "%s の復旧中\n"
+
+#, python-format
 msgid "forgetting %s\n"
 msgstr "%s の追加登録を取り消し中\n"
 
 #, python-format
-msgid "reverting %s\n"
-msgstr "%s の復旧中\n"
-
-#, python-format
 msgid "undeleting %s\n"
 msgstr "%s の復旧中\n"
 
 #, python-format
+msgid "no changes needed to %s\n"
+msgstr "%s には改変の必要がありません\n"
+
+#, python-format
 msgid "file not managed: %s\n"
 msgstr "ファイル %s は管理対象ではありません\n"
 
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "%s には改変の必要がありません\n"
-
 msgid "graft in progress"
 msgstr "graft による移植が未完了です"
 
@@ -10251,6 +10477,9 @@
 msgid "record the specified user as committer"
 msgstr "指定ユーザをコミットユーザとして記録"
 
+msgid "display with template (DEPRECATED)"
+msgstr "当該テンプレートで表示をカスタマイズ (非推奨)"
+
 msgid "STYLE"
 msgstr "スタイル"
 
@@ -10396,9 +10625,6 @@
 msgid "similarity must be a number"
 msgstr "類似度には数値を指定してください"
 
-msgid "similarity must be between 0 and 100"
-msgstr "類似度には0から100の間を指定してください"
-
 msgid "annotate the specified revision"
 msgstr "当該リビジョン時点での由来情報を表示"
 
@@ -10498,9 +10724,6 @@
 "    アーカイブ種別は、 出力先ファイルの拡張子から自動的に判定されますが\n"
 "    -t/--type で強制することも可能です。"
 
-msgid "      Examples:"
-msgstr "      例:"
-
 msgid "      - create a zip file containing the 1.0 release::"
 msgstr "      - 1.0 版時点のファイルを格納した zip ファイルの生成::"
 
@@ -10930,8 +11153,8 @@
 
 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 "
+"    The active bookmark is indicated with a '*'.\n"
+"    When a commit is made, the 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."
@@ -10946,13 +11169,13 @@
 "    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."
+"    be created. Using :hg:`merge` will resolve the divergence."
 msgstr ""
 "    ブックマークは、 リポジトリ間での取り込みや反映が可能です\n"
 "    (:hg:`help push` および :hg:`help pull` 参照)。 連携先リポジトリで、\n"
 "    同名ブックマークの参照先が分岐 (divergent) する場合、\n"
 "    'ブックマーク名@連携先' 形式の '分岐ブックマーク' が新規作成されます。\n"
-"    :hg:'merge' により分岐が解消されます。"
+"    履歴の分岐は :hg:`merge` で解消してください。"
 
 msgid ""
 "    A bookmark named '@' has the special property that :hg:`clone` will\n"
@@ -11543,7 +11766,7 @@
 "    (復旧方法は :hg:`help bundle` および :hg:`help unbundle` を参照).\n"
 "    (※ 訳注: --amend 指定時は、 対象ファイルを指定しても、\n"
 "    追加記録分の選択にのみ使用され、 記録済みファイルの取捨選択には、\n"
-"    影響しません。 MQ エクステンションの hg:`qrefresh` における\n"
+"    影響しません。 MQ エクステンションの :hg:`qrefresh` における\n"
 "    ``--short`` 指定と同等な挙動となります。)"
 
 msgid ""
@@ -11644,8 +11867,8 @@
 msgid "    See :hg:`help config` for more information about config files."
 msgstr "    設定ファイルに関する詳細は :hg:`help config` を参照してください。"
 
-msgid "    "
-msgstr "    "
+msgid "    Returns 0 on success, 1 if NAME does not exist."
+msgstr "    成功時のコマンド終了値は 0、指定セクション不在時は 1 です。"
 
 msgid "can't use --local and --global together"
 msgstr "--local と --global は併用できません"
@@ -12063,9 +12286,57 @@
 msgid "complete \"labels\" - tags, open branch names, bookmark names"
 msgstr "タグ、未閉鎖ブランチ名、ブックマーク等の『ラベル』の補完"
 
+msgid "free the store lock (DANGEROUS)"
+msgstr "管理領域の排他の解放 (危険)"
+
+msgid "free the working state lock (DANGEROUS)"
+msgstr "作業領域の排他の解放 (危険)"
+
+msgid "show or modify state of locks"
+msgstr "排他状況の表示又は変更"
+
+msgid ""
+"    By default, this command will show which locks are held. This\n"
+"    includes the user and process holding the lock, the amount of time\n"
+"    the lock has been held, and the machine name where the process is\n"
+"    running if it's not local."
+msgstr ""
+"    特に指定がない場合、 本コマンドはリポジトリの排他状況を表示します。\n"
+"    「排他状況」には、 排他を保持するユーザ/プロセスや、 経過時間、\n"
+"    プロセスの稼動ホスト名 (ローカルプロセスではない場合) が含まれます。"
+
+msgid ""
+"    Locks protect the integrity of Mercurial's data, so should be\n"
+"    treated with care. System crashes or other interruptions may cause\n"
+"    locks to not be properly released, though Mercurial will usually\n"
+"    detect and remove such stale locks automatically."
+msgstr ""
+"    Mercurial の管理情報は、 排他によって保護されていますので、\n"
+"    排他の解放には十分な配慮が必要です。 システムクラッシュや割り込み等、\n"
+"    排他が適切に解放されない場合がありますが、 通常のケースであれば、\n"
+"    Mercurial はこれらを自動的に検出して、 適切に問題を解消します。"
+
+msgid ""
+"    However, detecting stale locks may not always be possible (for\n"
+"    instance, on a shared filesystem). Removing locks may also be\n"
+"    blocked by filesystem permissions."
+msgstr ""
+"    しかし、 自動的な問題の解消は、 必ずしも成功するとは限りません\n"
+"    (例: 共有ファイルシステムでの作業等)。 ファイルシステムによって、\n"
+"    排他の解放が阻害される可能性もあります。"
+
+msgid "    Returns 0 if no locks are held."
+msgstr "    排他が保持されていない場合のコマンド終了値は 0 です。"
+
 msgid "markers flag"
 msgstr "廃止マーカ用フラグ"
 
+msgid "record parent information for the precursor"
+msgstr "廃止対象への親情報の記録"
+
+msgid "display markers relevant to REV"
+msgstr "指定リビジョンに関連するマーカの表示"
+
 msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
 msgstr "[OBSOLETED [REPLACEMENT] [REPL... ]"
 
@@ -12538,6 +12809,78 @@
 msgid "exporting patch:\n"
 msgstr "パッチの作成中:\n"
 
+msgid "search the repository as it is in REV"
+msgstr "当該リビジョン時点のファイル一覧から検索"
+
+msgid "end filenames with NUL, for use with xargs"
+msgstr "ファイル名をNUL文字(0x00)で終端(xargs との併用向け)"
+
+msgid "[OPTION]... [PATTERN]..."
+msgstr "[OPTION]... [PATTERN]..."
+
+msgid "list tracked files"
+msgstr "管理対象ファイルの一覧表示"
+
+msgid ""
+"    Print files under Mercurial control in the working directory or\n"
+"    specified revision whose names match the given patterns (excluding\n"
+"    removed files)."
+msgstr ""
+"    作業領域又は指定リビジョンにおける、 管理対象ファイルを一覧表示します\n"
+"    (登録除外されたファイルは、 対象から除外されます)。"
+
+msgid ""
+"    If no patterns are given to match, this command prints the names\n"
+"    of all files under Mercurial control in the working copy."
+msgstr ""
+"    パターン指定が無い場合、 全ての管理対象ファイルが一覧表示されます。"
+
+msgid "      - list all files under the current directory::"
+msgstr "      - 現ディレクトリ配下の全てのファイルの列挙::"
+
+msgid "          hg files ."
+msgstr "          hg files ."
+
+msgid "      - shows sizes and flags for current revision::"
+msgstr "      - 現親リビジョンにおけるサイズ・フラグ情報の表示::"
+
+msgid "          hg files -vr ."
+msgstr "          hg files -vr ."
+
+msgid "      - list all files named README::"
+msgstr "      - README という名前のファイルの一覧::"
+
+msgid "          hg files -I \"**/README\""
+msgstr "          hg files -I \"**/README\""
+
+msgid "      - list all binary files::"
+msgstr "      - バイナリ形式ファイルの一覧::"
+
+msgid "          hg files \"set:binary()\""
+msgstr "          hg files \"set:binary()\""
+
+msgid "      - find files containing a regular expression::"
+msgstr "      - 正規表現に合致する内容のファイルの一覧::"
+
+msgid "          hg files \"set:grep('bob')\""
+msgstr "          hg files \"set:grep('bob')\""
+
+msgid "      - search tracked file contents with xargs and grep::"
+msgstr "      - xargs と grep コマンドを併用したファイルの検索::"
+
+msgid "          hg files -0 | xargs -0 grep foo"
+msgstr "          hg files -0 | xargs -0 grep foo"
+
+msgid ""
+"    See :hg:`help pattern` and :hg:`help filesets` for more information\n"
+"    on specifying file patterns."
+msgstr ""
+"    ファイルの指定方法の詳細に関しては、 :hg:`help pattern` および\n"
+"    :hg:`help filesets` を参照してください。"
+
+msgid "    Returns 0 if a match is found, 1 otherwise."
+msgstr "    パターン合致がある場合のコマンド終了値は 0、 それ以外は 1 です。"
+
 msgid "forget the specified files on the next commit"
 msgstr "次回コミットにおける指定ファイルの登録除外"
 
@@ -12580,6 +12923,9 @@
 msgid "append graft info to log message"
 msgstr "コミットログへの移植情報の付与"
 
+msgid "force graft"
+msgstr "移植の強制実施"
+
 msgid "record the current date as commit date"
 msgstr "現時刻をコミット日時として記録"
 
@@ -12616,6 +12962,16 @@
 msgstr "      (grafted from 移植元リビジョンのハッシュ値)"
 
 msgid ""
+"    If --force is specified, revisions will be grafted even if they\n"
+"    are already ancestors of or have been grafted to the destination.\n"
+"    This is useful when the revisions have since been backed out."
+msgstr ""
+"    移植対象リビジョン、 あるいはその移植先リビジョンが、 移植先にとって、\n"
+"    祖先となる場合 (※ 訳注: 前者は直接的、 後者は間接的な祖先) でも、\n"
+"    --force が指定された場合には、 移植が実施されます。\n"
+"    :hg:`backout` で打ち消されている移植対象の、 再適用等で有用です。"
+
+msgid ""
 "    If a graft merge results in conflicts, the graft process is\n"
 "    interrupted so that the current merge can be manually resolved.\n"
 "    Once all conflicts are addressed, the graft process can be\n"
@@ -12625,8 +12981,12 @@
 "    手動で衝突を解決してください。 全ての衝突が解消されたならば、\n"
 "    -c/--continue 指定により、 未完了の移植を再開してください。"
 
-msgid "      The -c/--continue option does not reapply earlier options."
-msgstr "      -c/--continue でも、 以前のオプション指定までは再現されません。"
+msgid ""
+"      The -c/--continue option does not reapply earlier options, except\n"
+"      for --force."
+msgstr ""
+"      -c/--continue での移植再開の際には、 再度明示的に指定しない限り、\n"
+"      以前に指定したオプションは適用されません (但し --force 除く)。"
 
 msgid ""
 "      - copy a single change to the stable branch and edit its description::"
@@ -12889,6 +13249,9 @@
 "    成功時のコマンド終了値は 0 です。\n"
 "    "
 
+msgid "help section not found"
+msgstr "指定のヘルプセクションが見つかりません"
+
 msgid "identify the specified revision"
 msgstr "当該リビジョンの識別情報を表示"
 
@@ -13136,6 +13499,9 @@
 msgid "cannot use --similarity with --bypass"
 msgstr "--similarity と --bypass は併用できません"
 
+msgid "cannot use --exact with --edit"
+msgstr "--exact と --edit は併用できません"
+
 msgid "applying patch from stdin\n"
 msgstr "標準入力からのパッチを適用中\n"
 
@@ -13251,20 +13617,11 @@
 "    複製先として ``ssh://`` URL 形式を指定することも可能です。\n"
 "    詳細に関しては、 :hg:`help urls` を参照してください。"
 
-msgid "search the repository as it is in REV"
-msgstr "当該リビジョン時点のファイル一覧から検索"
-
-msgid "end filenames with NUL, for use with xargs"
-msgstr "ファイル名をNUL文字(0x00)で終端(xargs との併用向け)"
-
 msgid "print complete paths from the filesystem root"
 msgstr "ファイルシステムのルートからの絶対パスで表示"
 
-msgid "[OPTION]... [PATTERN]..."
-msgstr "[OPTION]... [PATTERN]..."
-
-msgid "locate files matching specific patterns"
-msgstr "指定されたパターンに合致する名前を持つファイルの特定"
+msgid "locate files matching specific patterns (DEPRECATED)"
+msgstr "指定されたパターンに合致する名前を持つファイルの特定 (非推奨)"
 
 msgid ""
 "    Print files under Mercurial control in the working directory whose\n"
@@ -13300,6 +13657,9 @@
 "    含む単一のファイル名を、 \"xargs\" が複数のファイル名に解釈して\n"
 "    しまう問題は、 このオプションにより解消されます。"
 
+msgid "    See :hg:`help files` for a more versatile command."
+msgstr "    より高機能な :hg:`files` コマンドのヘルプを参照してください。"
+
 msgid "show revision history of entire repository or files"
 msgstr "リポジトリ全体またはファイルの変更履歴の表示"
 
@@ -13369,14 +13729,13 @@
 
 msgid ""
 "       for performance reasons, log FILE may omit duplicate changes\n"
-"       made on branches and will not show deletions. To see all\n"
-"       changes including duplicates and deletions, use the --removed\n"
-"       switch."
+"       made on branches and will not show removals or mode changes. To\n"
+"       see all such changes, use the --removed switch."
 msgstr ""
 "       ファイル名指定付きでの実行では、 複数ブランチ上での同一変更や、\n"
-"       登録除外実施リビジョンは、 性能的な点から表示しません。\n"
-"       重複変更や登録除外を含め、 全てのリビジョンを表示する場合、\n"
-"       --removed を指定してください。"
+"       登録除外の実施、 実行モード変更の実施に関するリビジョンは、\n"
+"       性能劣化防止の点から表示されません。 これらの変更を含む、\n"
+"       全リビジョンを表示したい場合は、 --removed を指定してください。"
 
 msgid "      - changesets with full descriptions and file lists::"
 msgstr "      - 全リビジョンのコミットログとファイル一覧の表示::"
@@ -13422,8 +13781,8 @@
 msgid "          hg log -T list"
 msgstr "          hg log -T list"
 
-msgid "      - check if a given changeset is included is a tagged release::"
-msgstr "      - 指定リビジョンが指定タグ時点において含まれているかを確認::"
+msgid "      - check if a given changeset is included in a tagged release::"
+msgstr "      - リビジョン a21ccf が指定タグ時点に含まれているかを確認::"
 
 msgid "          hg log -r \"a21ccf and ancestor(1.9)\""
 msgstr "          hg log -r \"a21ccf and ancestor(1.9)\""
@@ -13636,8 +13995,8 @@
 msgid "[-r REV] [FILE]"
 msgstr "[-r REV] [FILE]"
 
-msgid "show the parents of the working directory or revision"
-msgstr "作業領域(または指定リビジョン)の親リビジョンの表示"
+msgid "show the parents of the working directory or revision (DEPRECATED)"
+msgstr "作業領域(または指定リビジョン)の親リビジョンの表示 (非推奨)"
 
 msgid ""
 "    Print the working directory's parent revisions. If a revision is\n"
@@ -13651,6 +14010,10 @@
 "    された場合、 (作業領域の親リビジョン、 または --rev 指定のリビジョン\n"
 "    以前のもので)そのファイルを最後に更新したリビジョンを表示します。"
 
+msgid "    See :hg:`summary` and :hg:`help revsets` for related information."
+msgstr ""
+"    関連情報は :hg:`summary` や :hg:`help revsets` を参照してください。"
+
 msgid "can only specify an explicit filename"
 msgstr "明示的なファイル名以外は指定できません"
 
@@ -13708,7 +14071,7 @@
 "    push/pull 共に ``default`` を使用します。 リポジトリの複製では、\n"
 "    複製元リポジトリが ``default`` として ``.hg/hgrc`` に記録されます。\n"
 "    ``default`` および ``default-push`` は全ての取り込み (例:\n"
-"    :hg:`incoming`) および反映 (例: :hg:`outgoing`、 :hg:`email` および\n"
+"    :hg:`incoming`) および反映 (例: :hg:`outgoing` 、 :hg:`email` および\n"
 "    :hg:`bundle`) 操作において適用されます。"
 
 msgid "    See :hg:`help urls` for more information."
@@ -13857,10 +14220,6 @@
 msgid "remote bookmark %s not found!"
 msgstr "連携先にはブックマーク %s がありません!"
 
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "ブックマーク %s の取り込み中\n"
-
 msgid "force push"
 msgstr "反映先にヘッドが増える場合でも実施"
 
@@ -14681,10 +15040,6 @@
 msgstr "未知ファイル数 %d"
 
 #, python-format
-msgid "%d ignored"
-msgstr "無視ファイル数 %d"
-
-#, python-format
 msgid "%d unresolved"
 msgstr "衝突未解消ファイル数 %d"
 
@@ -15086,14 +15441,28 @@
 "有効化されているエクステンション:"
 
 #, python-format
+msgid "unknown command %s"
+msgstr "未知のコマンド %s"
+
+#, python-format
+msgid "abort: %s\n"
+msgstr "中止: %s\n"
+
+msgid "unsupported platform"
+msgstr "未サポートな環境です"
+
+msgid "no socket path specified with --address"
+msgstr "--address によるソケットパス指定がありません"
+
+#, python-format
+msgid "listening at %s\n"
+msgstr "%s で待ち受け中\n"
+
+#, python-format
 msgid "unknown mode %s"
 msgstr "未知のモード %s"
 
 #, python-format
-msgid "unknown command %s"
-msgstr "未知のコマンド %s"
-
-#, python-format
 msgid "cannot include %s (%s)"
 msgstr "%s を読み込めません(%s)"
 
@@ -15101,14 +15470,25 @@
 msgstr "マニフェストにありません"
 
 #, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr "作業領域の親 '%s' が未知のリビジョンです!"
+
+#, python-format
+msgid "hidden revision '%s'"
+msgstr "'%s' は不可視リビジョンです"
+
+msgid "use --hidden to access hidden revisions"
+msgstr "不可視リビジョンへのアクセス時には --hidden 指定が必要です"
+
+#, python-format
+msgid "filtered revision '%s' (not in '%s' subset)"
+msgstr "'%s' はフィルタリング対象リビジョンです ('%s' には属しません)"
+
+#, python-format
 msgid "unknown revision '%s'"
 msgstr "'%s' は未知のリビジョンです"
 
 #, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "作業領域の親 '%s' が未知のリビジョンです!"
-
-#, python-format
 msgid "note: using %s as ancestor of %s and %s\n"
 msgstr "備考: %s を、%s と %s の祖先として使用中\n"
 
@@ -15120,6 +15500,13 @@
 msgid "no such file in rev %s"
 msgstr "リビジョン %s に当該ファイルは存在しません"
 
+#, python-format
+msgid "censored node: %s"
+msgstr "監査ノードです: %s"
+
+msgid "set censor.policy to ignore errors"
+msgstr "エラーを無視する場合は censor.policy 設定を ignore に"
+
 msgid "branch name not in UTF-8!"
 msgstr "ブランチ名が UTF-8 ではありません!"
 
@@ -15264,13 +15651,12 @@
 msgstr "以下の新しいヘッドが連携先のブランチ '%s' に作成されます:\n"
 
 #, python-format
-msgid "abort: %s\n"
-msgstr "中止: %s\n"
-
-#, python-format
 msgid "hg: parse error at %s: %s\n"
 msgstr "hg: %s での解析エラー: %s\n"
 
+msgid "unexpected leading whitespace\n"
+msgstr "先頭に想定外の空白文字があります\n"
+
 #, python-format
 msgid "hg: parse error: %s\n"
 msgstr "hg: 解析エラー: %s\n"
@@ -15328,6 +15714,10 @@
 msgid " empty string\n"
 msgstr " 空文字列\n"
 
+#, python-format
+msgid "abort: file censored %s!\n"
+msgstr "中止: 管理ファイルアクセスで問題が発生しました: %s\n"
+
 msgid "killed!\n"
 msgstr "強制終了されました!\n"
 
@@ -15393,7 +15783,7 @@
 
 #, python-format
 msgid "** Mercurial Distributed SCM (version %s)\n"
-msgstr "** Mercurial Distributed SCM (version %s)\n"
+msgstr "Mercurial - 分散構成管理ツール (バージョン %s)\n"
 
 #, python-format
 msgid "** Extensions loaded: %s\n"
@@ -15403,26 +15793,29 @@
 msgstr "別名(エイリアス)への引数が足りません"
 
 #, python-format
-msgid "no definition for alias '%s'\n"
-msgstr "別名コマンド '%s' には実行対象の記述がありません\n"
-
-#, python-format
-msgid "error in definition for alias '%s': %s\n"
-msgstr "別名コマンド '%s' の定義が不正です: %s\n"
-
-#, python-format
-msgid ""
-"error in definition for alias '%s': %s may only be given on the command "
-"line\n"
-msgstr "別名定義 '%s' のエラー: %s はコマンド行での直接指定限定です\n"
-
-#, python-format
-msgid "alias '%s' resolves to unknown command '%s'\n"
-msgstr "'%s' が未知のコマンド '%s' の別名とみなされました\n"
-
-#, python-format
-msgid "alias '%s' resolves to ambiguous command '%s'\n"
-msgstr "'%s' が曖昧なコマンド '%s' の別名とみなされました\n"
+msgid "no definition for alias '%s'"
+msgstr "別名コマンド '%s' には実行対象の記述がありません"
+
+#, python-format
+msgid "error in definition for alias '%s': %s"
+msgstr "別名コマンド '%s' の定義が不正です: %s"
+
+#, python-format
+msgid ""
+"error in definition for alias '%s': %s may only be given on the command line"
+msgstr "別名定義 '%s' のエラー: %s はコマンド行での直接指定限定です"
+
+#, python-format
+msgid "alias '%s' resolves to unknown command '%s'"
+msgstr "'%s' が未知のコマンド '%s' の別名とみなされました"
+
+#, python-format
+msgid "alias '%s' resolves to ambiguous command '%s'"
+msgstr "'%s' が曖昧なコマンド '%s' の別名とみなされました"
+
+#, python-format
+msgid "'%s' is provided by '%s' extension"
+msgstr "'%s' コマンドは '%s' エクステンションにより提供されています"
 
 #, python-format
 msgid "malformed --config option: %r (use --config section.name=value)"
@@ -15494,10 +15887,34 @@
 msgid "%s: unknown bundle version %s"
 msgstr "%s: 未知のバンドル形式バージョン %s"
 
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "ブックマーク %s の更新に失敗!\n"
+
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "ブックマーク %s の反映中\n"
+
+#, python-format
+msgid "exporting bookmark %s failed!\n"
+msgstr "ブックマーク %s の反映に失敗!\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "連携先のブックマーク %s の削除中\n"
+
+#, python-format
+msgid "deleting remote bookmark %s failed!\n"
+msgstr "連携先のブックマーク %s の削除に失敗!\n"
+
 msgid "destination does not support push"
 msgstr "指定の連携先には履歴を反映できません"
 
 #, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "ブックマーク %s はいずれのリポジトリにも存在しません!\n"
+
+#, python-format
 msgid "push includes obsolete changeset: %s!"
 msgstr "履歴反映対象に廃止 (obsolete) リビジョンが含まれます!: %s"
 
@@ -15522,6 +15939,10 @@
 msgstr "%s のフェーズの public 化に失敗!\n"
 
 #, python-format
+msgid "server ignored bookmark %s update\n"
+msgstr "連携先のブックマーク %s は更新されませんでした\n"
+
+#, python-format
 msgid "cannot lock source repo, skipping local %s phase update\n"
 msgstr "リポジトリをロックできないため、ローカルの %s フェーズ更新を省略\n"
 
@@ -15536,6 +15957,9 @@
 "changegroupsubset."
 msgstr "連携先の changegroupsubset 機能未対応により、 部分取り込みできません。"
 
+msgid "request for bundle10 must include changegroup"
+msgstr "bundle10 での要求にはリビジョン情報が必要です"
+
 #, python-format
 msgid "unsupported getbundle arguments: %s"
 msgstr "getbundle プロトコルに未知の引数が指定されました: %s"
@@ -15576,11 +16000,11 @@
 msgstr "ツール %s は GUI が必要です\n"
 
 msgid ""
-"``internal:prompt``\n"
+"``:prompt``\n"
 "Asks the user which of the local or the other version to keep as\n"
 "    the merged version."
 msgstr ""
-"``internal:prompt``\n"
+"``:prompt``\n"
 "作業領域側とマージ対象リビジョン側のどちらを、\n"
 "   マージ結果として採用するか、 対話的に確認します。"
 
@@ -15594,26 +16018,26 @@
 "&Local $$ &Other"
 
 msgid ""
-"``internal:local``\n"
+"``:local``\n"
 "Uses the local version of files as the merged version."
 msgstr ""
-"``internal:local``\n"
+"``:local``\n"
 "マージ結果として、 作業領域側の内容を採用します。"
 
 msgid ""
-"``internal:other``\n"
+"``:other``\n"
 "Uses the other version of files as the merged version."
 msgstr ""
-"``internal:other``\n"
+"``:other``\n"
 "マージ結果として、 マージ対象リビジョン側の内容を採用します。"
 
 msgid ""
-"``internal:fail``\n"
+"``:fail``\n"
 "Rather than attempting to merge files that were modified on both\n"
 "    branches, it marks them as unresolved. The resolve command must be\n"
 "    used to resolve these conflicts."
 msgstr ""
-"``internal:fail``\n"
+"``:fail``\n"
 "変更内容に関するマージ処理は実施せず、 必ずマージ失敗とみなします。\n"
 "   マージ失敗とみなされたファイルに対しては、\n"
 "   :hg:`resolve` による手動での衝突解消が必要です。"
@@ -15623,41 +16047,59 @@
 msgstr "%s.premerge は無効です('%s' は真偽または %s のいずれでもありません)"
 
 msgid ""
-"``internal:merge``\n"
+"``:merge``\n"
 "Uses the internal non-interactive simple merge algorithm for merging\n"
 "    files. It will fail if there are any conflicts and leave markers in\n"
-"    the partially merged file."
-msgstr ""
-"``internal:merge``\n"
+"    the partially merged file. Markers will have two sections, one for each "
+"side\n"
+"    of merge."
+msgstr ""
+"``:merge``\n"
 "非対話的な、 単純なマージ処理を実施します。\n"
 "   衝突があった場合、 マージ処理は失敗とみなされますが、\n"
-"   マージ結果ファイルには、 衝突マークが記録されます。"
+"   マージ結果ファイルには、 衝突マークが記録されます。\n"
+"   マージ対象の2つのリビジョンが、 衝突情報として記録されます。"
 
 #, python-format
 msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
 msgstr "%s のマージは不完全です (衝突解消後に 'hg resolve --mark' が必要)\n"
 
 #, python-format
-msgid "warning: internal:merge cannot merge symlinks for %s\n"
-msgstr "警告: internal:merge はシンボリックリンク %s をマージできません\n"
-
-msgid ""
-"``internal:tagmerge``\n"
+msgid "warning: internal :merge cannot merge symlinks for %s\n"
+msgstr "警告: 内部ツール :merge はシンボリックリンク %s をマージできません\n"
+
+msgid ""
+"``:merge3``\n"
+"Uses the internal non-interactive simple merge algorithm for merging\n"
+"    files. It will fail if there are any conflicts and leave markers in\n"
+"    the partially merged file. Marker will have three sections, one from "
+"each\n"
+"    side of the merge and one for the base content."
+msgstr ""
+"``:merge3``\n"
+"非対話的な、 単純なマージ処理を実施します。\n"
+"   衝突があった場合、 マージ処理は失敗とみなされますが、\n"
+"   マージ結果ファイルには、 衝突マークが記録されます。\n"
+"   マージ対象の2つのリビジョンに加えて、 共通祖先の情報が、\n"
+"   衝突情報として記録されます。"
+
+msgid ""
+"``:tagmerge``\n"
 "Uses the internal tag merge algorithm (experimental)."
 msgstr ""
-"``internal:tagmerge``\n"
+"``: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"
+"automatic tag merging of %s failed! (use 'hg resolve --tool :merge' or "
+"another merge tool of your choice)\n"
+msgstr ""
+"タグファイル %s の自動マージに失敗しました ('hg resolve --tool :merge' 又は別"
+"のツールを使ってマージしてください)\n"
+
+msgid ""
+"``: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"
 "    perform a merge manually. If the file to be merged is named\n"
@@ -15665,7 +16107,7 @@
 "    ``a.txt.other`` and ``a.txt.base`` and they will be placed in the\n"
 "    same directory as ``a.txt``."
 msgstr ""
-"``internal:dump``\n"
+"``:dump``\n"
 "作業領域側、 マージ対象リビジョン側、 および共通祖先時点の、\n"
 "   それぞれの内容を持つ3つのファイルを生成します。\n"
 "   これらのファイルは、事後の手動マージ等で使用してください。\n"
@@ -15859,6 +16301,7 @@
 "``hgignore()``\n"
 "    有効な .hgignore パターンに合致するファイル"
 
+#. i18n: "hgignore" is a keyword
 msgid "hgignore takes no arguments"
 msgstr "hgignore には引数が指定できません"
 
@@ -15938,7 +16381,7 @@
 "    File that is recorded as being copied."
 msgstr ""
 "``copied()``\n"
-"    複製先ステータスを持つファイル (※ 訳注: 未コミット時点でのみ判定可能)"
+"    複製先ステータスを持つファイル"
 
 #. i18n: "copied" is a keyword
 msgid "copied takes no arguments"
@@ -15955,12 +16398,16 @@
 msgid "subrepo takes at most one argument"
 msgstr "subrepo の引数は最大1つです"
 
+#. i18n: "subrepo" is a keyword
 msgid "subrepo requires a pattern or no arguments"
 msgstr "subrepo の引数は、パターン指定か、引数無しです"
 
 msgid "invalid token"
 msgstr "不正な記述"
 
+msgid "custom templates not yet supported"
+msgstr "現在カスタムテンプレートは未サポートです"
+
 msgid "starting revisions are not directly related"
 msgstr "開始リビジョンと直接の関連がありません"
 
@@ -16008,6 +16455,9 @@
 msgid "DEPRECATED"
 msgstr "非推奨"
 
+msgid " ([+] can be repeated)"
+msgstr " ([+] 印付きのオプションは複数回指定可能です)"
+
 msgid "Configuration Files"
 msgstr "設定ファイル"
 
@@ -16087,30 +16537,29 @@
 msgstr "%s"
 
 #, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "\"hg help -e %s\" によってエクステンション %s のヘルプが表示されます"
-
-msgid "options:"
-msgstr "オプション:"
-
-msgid "global options:"
-msgstr "グローバルオプション:"
-
-#, python-format
-msgid ""
-"\n"
-"use \"hg help %s\" to show the full help text\n"
-msgstr ""
-"\n"
-"\"hg help %s\" で詳細なヘルプが表示されます\n"
-
-#, python-format
-msgid "use \"hg -v help %s\" to show more complete help and the global options"
-msgstr "省略されたヘルプの詳細やグローバルオプションの表示は \"hg -v help %s\""
-
-#, python-format
-msgid "use \"hg -v help %s\" to show the global options"
-msgstr "グローバルオプションの表示は \"hg -v help %s\""
+msgid "(use \"hg help -e %s\" to show help for the %s extension)"
+msgstr "(\"hg help -e %s\" でエクステンション %s のヘルプを表示)"
+
+msgid "options"
+msgstr "オプション"
+
+msgid "global options"
+msgstr "グローバルオプション"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg %s -h\" to show more help)\n"
+msgstr ""
+"\n"
+"(ヘルプの詳細の表示は \"hg %s -h\")\n"
+
+msgid ""
+"\n"
+"(some details hidden, use --verbose to show complete help)"
+msgstr ""
+"\n"
+"(省略されているヘルプの詳細は --verbose 指定で表示)"
 
 msgid "basic commands:"
 msgstr "基本コマンド:"
@@ -16131,24 +16580,38 @@
 "\n"
 "追加のヘルプトピック:"
 
-msgid "use \"hg help\" for the full list of commands"
-msgstr "全コマンドの一覧は \"hg help\" で表示されます"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr ""
-"全コマンドの一覧は \"hg help\" で、 コマンド詳細は \"hg -v\" で表示されます"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "詳細なヘルプの表示は \"hg help %s\""
-
-#, python-format
-msgid "use \"hg -v help%s\" to show builtin aliases and global options"
-msgstr "組み込み別名およびグローバルオプションの表示は \"hg -v help%s\""
-
-#, python-format
-msgid "use \"hg help -v %s\" to show more complete help"
-msgstr "省略されたヘルプの詳細の表示は \"hg help %s\""
+msgid ""
+"\n"
+"(use \"hg help\" for the full list of commands)\n"
+msgstr ""
+"\n"
+"(全コマンドの一覧表示は \"hg help\")\n"
+
+msgid ""
+"\n"
+"(use \"hg help\" for the full list of commands or \"hg -v\" for details)\n"
+msgstr ""
+"\n"
+"(全コマンドの一覧表示は \"hg help\" 、 詳細情報は --verbose 指定で表示)\n"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg help %s\" to show the full help text)\n"
+msgstr ""
+"\n"
+"(詳細なヘルプ表示は \"hg help %s\")\n"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg help -v%s\" to show built-in aliases and global options)\n"
+msgstr ""
+"\n"
+"(組み込み別名およびグローバルオプションの表示は \"hg -v help%s\")\n"
+
+msgid "(some details hidden, use --verbose to show complete help)"
+msgstr "(省略されたヘルプの詳細は --verbose 指定で表示)"
 
 #, python-format
 msgid ""
@@ -16165,8 +16628,8 @@
 msgid "%s extension - %s"
 msgstr "%s エクステンション - %s"
 
-msgid "use \"hg help extensions\" for information on enabling extensions\n"
-msgstr "\"hg help extensions\" で有効なエクステンションの情報が表示されます\n"
+msgid "(use \"hg help extensions\" for information on enabling extensions)\n"
+msgstr "(有効なエクステンション情報の表示は \"hg help extensions\")\n"
 
 #, python-format
 msgid "'%s' is provided by the following extension:"
@@ -16283,130 +16746,45 @@
 "後から読み込んだ設定の方が優先されます。 以下に列挙されるパスにおいて、\n"
 "複数から設定が読み込まれた場合は、 列挙順の早い方の設定が優先されます。"
 
-msgid "| (All) ``<repo>/.hg/hgrc``"
-msgstr "| (共通) ``<リポジトリ>/.hg/hgrc``"
-
-msgid ""
-"    Per-repository configuration options that only apply in a\n"
-"    particular repository. This file is not version-controlled, and\n"
-"    will not get transferred during a \"clone\" operation. Options in\n"
-"    this file override options in all other configuration files. On\n"
-"    Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-"    belong to a trusted user or to a trusted group. See the documentation\n"
-"    for the ``[trusted]`` section below for more details."
-msgstr ""
-"    個々のリポジトリにのみ適用される、 リポジトリ毎設定。\n"
-"    本ファイルは構成管理対象外であり、 :hg:`clone` \n"
-"    によって伝播することもありません。 本ファイルでの設定は、\n"
-"    以下に述べる全ての設定ファイルに優先します。 Unix および Plan 9\n"
-"    環境において、 本ファイルの所有者/グループが、 信頼できない場合、\n"
-"    本ファイル中の設定の大半は無視されます。 詳細に関しては、\n"
-"    後述する ``trusted`` セクションの説明を参照してください。"
-
-msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-msgstr ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-
-msgid ""
-"    Per-user configuration file(s), for the user running Mercurial. On\n"
-"    Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
-"    files apply to all Mercurial commands executed by this user in any\n"
-"    directory. Options in these files override per-system and per-"
-"installation\n"
-"    options."
-msgstr ""
-"    Mercurial を実行するユーザのための、 ユーザ毎設定。\n"
-"    Windows 9x 環境での ``%HOME%`` は ``%APPDATA%`` に相当します。\n"
-"    本ファイルでの設定は、 当該ユーザの全ての Mercurial\n"
-"    コマンド実行に適用されます。 本ファイルでの設定は、\n"
-"    システム毎/インストール毎の設定より優先されます。"
-
-msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
-msgstr ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
-
-msgid ""
-"    Per-system configuration files, for the system on which Mercurial\n"
-"    is running. Options in these files apply to all Mercurial commands\n"
-"    executed by any user in any directory. Options in these files\n"
-"    override per-installation options."
-msgstr ""
-"    Mercurial の稼動環境におけるシステム毎設定。\n"
-"    本ファイルでの設定は、 実行ユーザ/実行位置に関わらず、\n"
-"    全ての Mercurial コマンド実行に適用されます。\n"
-"    本ファイルでの設定は、 インストール毎設定より優先されます。"
-
-msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
-msgstr ""
-"| (Plan 9) ``<インストール先>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<インストール先>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<インストール先>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<インストール先>/etc/mercurial/hgrc.d/*.rc``"
-
-msgid ""
-"    Per-installation configuration files, searched for in the\n"
-"    directory where Mercurial is installed. ``<install-root>`` is the\n"
-"    parent directory of the **hg** executable (or symlink) being run. For\n"
-"    example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
-"    in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
-"    to all Mercurial commands executed by any user in any directory."
-msgstr ""
-"    Mercurial のインストール先から読み込まれる、 インストール毎設定。\n"
-"    ``<インストール先>`` は、 実行される **hg** コマンド\n"
-"    (またはシンボリックリンク) の親ディレクトリを意味します。\n"
-"    例えば、 ``/shared/tools/bin/hg`` が実行される場合、\n"
-"    ``/shared/tools/etc/mercurial/hgrc`` が読み込まれます。\n"
-"    本ファイルでの設定は、 実行ユーザ/実行位置に関わらず、\n"
-"    当該 Mercurial コマンドの実行の全て対して適用されます。"
-
-msgid ""
-"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-msgstr ""
-"| (Windows) ``<インストール先>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<インストール先>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-
-msgid ""
-"    Per-installation/system configuration files, for the system on\n"
-"    which Mercurial is running. Options in these files apply to all\n"
-"    Mercurial commands executed by any user in any directory. Registry\n"
-"    keys contain PATH-like strings, every part of which must reference\n"
-"    a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
-"    be read.  Mercurial checks each of these locations in the specified\n"
-"    order until one or more configuration files are detected."
-msgstr ""
-"    Mercurial の稼動環境における、 インストール毎/システム毎設定。\n"
-"    本ファイルでの設定は、 実行ユーザ/実行位置に関わらず、\n"
-"    当該 Mercurial コマンドの全ての実行に対して適用されます。\n"
-"    レジストリキーは PATH 環境変数的な値を保持し、\n"
-"    値の各要素は、 ファイル ``Mercurial.ini`` を参照するか、\n"
-"    ``*.rc`` ファイルを格納するディレクトリでなければなりません。\n"
-"    1つ以上の設定ファイルが検出されるまで、\n"
-"    Mercurial は記述順序通りに、 各位置のファイル所在確認を行います。"
+msgid "  On Unix, the following files are consulted:"
+msgstr "  Unix 環境では、 以下のファイルが読み込まれます:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``$HOME/.hgrc`` (per-user)\n"
+"  - ``<install-root>/etc/mercurial/hgrc`` (per-installation)\n"
+"  - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)\n"
+"  - ``/etc/mercurial/hgrc`` (per-system)\n"
+"  - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)"
+msgstr ""
+"  - ``<リポジトリ>/.hg/hgrc`` (リポジトリ毎設定)\n"
+"  - ``$HOME/.hgrc`` (ユーザ毎設定)\n"
+"  - ``<インストール先>/etc/mercurial/hgrc`` (インストール毎設定)\n"
+"  - ``<インストール先>/etc/mercurial/hgrc.d/*.rc`` (インストール毎設定)\n"
+"  - ``/etc/mercurial/hgrc`` (システム毎設定)\n"
+"  - ``/etc/mercurial/hgrc.d/*.rc`` (システム毎設定)"
+
+msgid "  On Windows, the following files are consulted:"
+msgstr "  Windows 環境では、 以下のファイルが読み込まれます:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``%USERPROFILE%\\.hgrc`` (per-user)\n"
+"  - ``%USERPROFILE%\\Mercurial.ini`` (per-user)\n"
+"  - ``%HOME%\\.hgrc`` (per-user)\n"
+"  - ``%HOME%\\Mercurial.ini`` (per-user)\n"
+"  - ``<install-dir>\\Mercurial.ini`` (per-installation)\n"
+"  - ``<install-dir>\\hgrc.d\\*.rc`` (per-installation)\n"
+"  - ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (per-installation)"
+msgstr ""
+"  - ``<リポジトリ>/.hg/hgrc`` (リポジトリ毎設定)\n"
+"  - ``%USERPROFILE%\\.hgrc`` (ユーザ毎設定)\n"
+"  - ``%USERPROFILE%\\Mercurial.ini`` (ユーザ毎設定)\n"
+"  - ``%HOME%\\.hgrc`` (ユーザ毎設定)\n"
+"  - ``%HOME%\\Mercurial.ini`` (ユーザ毎設定)\n"
+"  - ``<インストール先>\\Mercurial.ini`` (インストール毎設定)\n"
+"  - ``<インストール先>\\hgrc.d\\*.rc`` (インストール毎設定)\n"
+"  - ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (インストール毎設定)"
 
 msgid ""
 "   The registry key ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node"
@@ -16417,6 +16795,93 @@
 "   ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Mercurial``\n"
 "   レジストリキーが使用されます。"
 
+msgid "  On Plan9, the following files are consulted:"
+msgstr "  Plan9 環境では、 以下のファイルが読み込まれます:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``$home/lib/hgrc`` (per-user)\n"
+"  - ``<install-root>/lib/mercurial/hgrc`` (per-installation)\n"
+"  - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)\n"
+"  - ``/lib/mercurial/hgrc`` (per-system)\n"
+"  - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)"
+msgstr ""
+"  - ``<リポジトリ>/.hg/hgrc`` (リポジトリ毎設定)\n"
+"  - ``$home/lib/hgrc`` (ユーザ毎設定)\n"
+"  - ``<インストール先>/lib/mercurial/hgrc`` (インストール毎設定)\n"
+"  - ``<インストール先>/lib/mercurial/hgrc.d/*.rc`` (インストール毎設定)\n"
+"  - ``/lib/mercurial/hgrc`` (システム毎設定)\n"
+"  - ``/lib/mercurial/hgrc.d/*.rc`` (システム毎設定)"
+
+msgid ""
+"Per-repository configuration options only apply in a\n"
+"particular repository. This file is not version-controlled, and\n"
+"will not get transferred during a \"clone\" operation. Options in\n"
+"this file override options in all other configuration files. On\n"
+"Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
+"belong to a trusted user or to a trusted group. See the documentation\n"
+"for the ``[trusted]`` section below for more details."
+msgstr ""
+"リポジトリ毎設定は、 対象リポジトリに関する実行でのみ適用されます。\n"
+"このファイルは、 履歴管理の対象外であり、 :hg:`clone` でも複製されません。\n"
+"ここでの設定は、 他の全ての設定に優先します。 Plan9 や Unix 環境では、\n"
+"設定ファイルの所有者やグループが、 信頼できるユーザやグループでない場合、\n"
+"設定内容の大半が無視されます。 詳細は ``trusted`` セクションの説明を、\n"
+"別途参照してください。"
+
+msgid ""
+"Per-user configuration file(s) are for the user running Mercurial. On\n"
+"Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
+"files apply to all Mercurial commands executed by this user in any\n"
+"directory. Options in these files override per-system and per-installation\n"
+"options."
+msgstr ""
+"ユーザ毎設定は、 Mercurial コマンドを実行するユーザに対する設定です。\n"
+"Windows 9x 環境での ``%HOME%`` は ``%APPDATA%`` に相当します。\n"
+"ここでの設定は、 当該ユーザの Mercurial コマンド実行全てに適用されます。\n"
+"ユーザ毎設定は、システム毎/インストール毎の設定に優先します。"
+
+msgid ""
+"Per-installation configuration files are searched for in the\n"
+"directory where Mercurial is installed. ``<install-root>`` is the\n"
+"parent directory of the **hg** executable (or symlink) being run. For\n"
+"example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
+"in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
+"to all Mercurial commands executed by any user in any directory."
+msgstr ""
+"インストール毎設定は、 Mercurial のインストール先から読み込まれます。\n"
+"実行される ``hg`` コマンド格納先の親ディレクトリを ``<インストール先>``\n"
+"とみなします。 例えば ``/shared/tools/bin/hg`` が実行される場合、\n"
+"``/shared/tools/etc/mercurial/hgrc``  が読み込まれます。 ここでの設定は、\n"
+"実行ユーザ/対象リポジトリに関わらず適用されます。"
+
+msgid ""
+"Per-installation configuration files are for the system on\n"
+"which Mercurial is running. Options in these files apply to all\n"
+"Mercurial commands executed by any user in any directory. Registry\n"
+"keys contain PATH-like strings, every part of which must reference\n"
+"a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
+"be read.  Mercurial checks each of these locations in the specified\n"
+"order until one or more configuration files are detected."
+msgstr ""
+"インストール毎設定は、 Mercurial の実行環境に対する設定です。\n"
+"ここでの設定は、 実行ユーザ/対象リポジトリに関わらず適用されます。\n"
+"レジストリキーは PATH 環境変数的な値を保持し、\n"
+"値の各要素は、 ファイル ``Mercurial.ini`` を参照するか、\n"
+"``*.rc`` ファイルを格納するディレクトリでなければなりません。\n"
+"1つ以上の設定ファイルが検出されるまで、\n"
+"Mercurial は記述順序通りに、 各位置のファイル所在確認を行います。"
+
+msgid ""
+"Per-system configuration files are for the system on which Mercurial\n"
+"is running. Options in these files apply to all Mercurial commands\n"
+"executed by any user in any directory. Options in these files\n"
+"override per-installation options."
+msgstr ""
+"システム毎設定は、 Mercurial を実行するシステムに対する設定です。\n"
+"ここでの設定は、 実行ユーザ/対象リポジトリに関わらず適用されます。\n"
+"システム毎設定は、 インストール毎設定より優先されます。"
+
 msgid ""
 "Syntax\n"
 "======"
@@ -16707,14 +17172,16 @@
 "Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
 "expand to the command arguments. Unmatched arguments are\n"
 "removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
+"arguments separated by a space. ``\"$@\"`` (with quotes) expands to all\n"
+"arguments quoted individually and separated by a space. These expansions\n"
+"happen before the command is passed to the shell."
 msgstr ""
 "別名定義での ``$1`` や ``$2`` 等の位置指定引数は、 別名コマンド実行の際に、\n"
 "コマンド行で指定された、 対応する引数で置換されます。 対応引数が無い場合、\n"
 "引数不足で処理が中断されます。 ``$0`` はコマンド別名そのもの、``$@``\n"
-"は全引数を空白区切りしたもので、それぞれ置換されます。 引数の置換は、\n"
-"シェルによるコマンド行解釈よりも、 前に実施されます。"
+"は全引数を空白区切りしたもので、それぞれ置換されます。 引用符で囲まれた\n"
+"``\"$@\"`` は、 引数が個別に引用符で囲まれる点が ``$@`` と異なります。\n"
+"これら引数の置換は、 シェルによるコマンド行解釈よりも、 前に実施されます。"
 
 msgid ""
 "Shell aliases are executed in an environment where ``$HG`` expands to\n"
@@ -16737,7 +17204,7 @@
 "   processed before shell aliases and will thus not be passed to\n"
 "   aliases."
 msgstr ""
-"   幾つかのグローバルオプション (例: ``-R``) の処理は、\n"
+"   いくつかのグローバルオプション (例: ``-R``) の処理は、\n"
 "   シェル別名の解釈前に実施されるため、 シェル別名に対して、\n"
 "   これらを指定することはできません。"
 
@@ -17046,6 +17513,113 @@
 "- :hg:`transplant`"
 
 msgid ""
+"Configuring items below instead of ``changeset`` allows showing\n"
+"customized message only for specific actions, or showing different\n"
+"messages for each action."
+msgstr ""
+"``changeset`` の代わりに以下の項目を設定することで、 カスタマイズを、\n"
+"特定のコマンドに限定したり、 コマンド毎に異なる内容にすることも可能です。"
+
+msgid ""
+"- ``changeset.backout`` for :hg:`backout`\n"
+"- ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges\n"
+"- ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other\n"
+"- ``changeset.commit.normal.merge`` for :hg:`commit` on merges\n"
+"- ``changeset.commit.normal.normal`` for :hg:`commit` on other\n"
+"- ``changeset.fetch`` for :hg:`fetch` (impling merge commit)\n"
+"- ``changeset.gpg.sign`` for :hg:`sign`\n"
+"- ``changeset.graft`` for :hg:`graft`\n"
+"- ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`\n"
+"- ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`\n"
+"- ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`\n"
+"- ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`\n"
+"- ``changeset.import.bypass`` for :hg:`import --bypass`\n"
+"- ``changeset.import.normal.merge`` for :hg:`import` on merges\n"
+"- ``changeset.import.normal.normal`` for :hg:`import` on other\n"
+"- ``changeset.mq.qnew`` for :hg:`qnew`\n"
+"- ``changeset.mq.qfold`` for :hg:`qfold`\n"
+"- ``changeset.mq.qrefresh`` for :hg:`qrefresh`\n"
+"- ``changeset.rebase.collapse`` for :hg:`rebase --collapse`\n"
+"- ``changeset.rebase.merge`` for :hg:`rebase` on merges\n"
+"- ``changeset.rebase.normal`` for :hg:`rebase` on other\n"
+"- ``changeset.shelve.shelve`` for :hg:`shelve`\n"
+"- ``changeset.tag.add`` for :hg:`tag` without ``--remove``\n"
+"- ``changeset.tag.remove`` for :hg:`tag --remove`\n"
+"- ``changeset.transplant.merge`` for :hg:`transplant` on merges\n"
+"- ``changeset.transplant.normal`` for :hg:`transplant` on other"
+msgstr ""
+"- ``changeset.backout`` は :hg:`backout` 向け\n"
+"- ``changeset.commit.amend.merge`` はマージ時 :hg:`commit --amend` 用\n"
+"- ``changeset.commit.amend.normal`` は通常時 :hg:`commit --amend` 用\n"
+"- ``changeset.commit.normal.merge`` はマージ時 :hg:`commit` 用\n"
+"- ``changeset.commit.normal.normal`` は通常時 :hg:`commit` 用\n"
+"- ``changeset.fetch`` は :hg:`fetch` 用 (常時マージ)\n"
+"- ``changeset.gpg.sign`` は :hg:`sign` 用\n"
+"- ``changeset.graft`` は :hg:`graft` 用\n"
+"- ``changeset.histedit.edit`` は :hg:`histedit` での ``edit`` 用\n"
+"- ``changeset.histedit.fold`` は :hg:`histedit` での ``fold`` 用\n"
+"- ``changeset.histedit.mess`` は :hg:`histedit` での ``mess`` 用\n"
+"- ``changeset.histedit.pick`` は :hg:`histedit` での ``pick`` 用\n"
+"- ``changeset.import.bypass`` は :hg:`import --bypass` 用\n"
+"- ``changeset.import.normal.merge`` はマージリビジョンの :hg:`import` 用\n"
+"- ``changeset.import.normal.normal`` は通常リビジョンの :hg:`import` 用\n"
+"- ``changeset.mq.qnew`` は :hg:`qnew` 用\n"
+"- ``changeset.mq.qfold`` は :hg:`qfold` 用\n"
+"- ``changeset.mq.qrefresh`` は :hg:`qrefresh` 用\n"
+"- ``changeset.rebase.collapse`` は :hg:`rebase --collapse` 用\n"
+"- ``changeset.rebase.merge`` はマージリビジョンの :hg:`rebase` 用\n"
+"- ``changeset.rebase.normal`` は通常リビジョンの :hg:`rebase` 用\n"
+"- ``changeset.shelve.shelve`` は :hg:`shelve` 用\n"
+"- ``changeset.tag.add`` は ``--remove`` 指定無しでの :hg:`tag` 用\n"
+"- ``changeset.tag.remove`` は :hg:`tag --remove` 用\n"
+"- ``changeset.transplant.merge`` はマージ時 :hg:`transplant` 用\n"
+"- ``changeset.transplant.normal`` は通常時 :hg:`transplant` 用"
+
+msgid ""
+"These dot-separated lists of names are treated as hierarchical ones.\n"
+"For example, ``changeset.tag.remove`` customizes the commit message\n"
+"only for :hg:`tag --remove`, but ``changeset.tag`` customizes the\n"
+"commit message for :hg:`tag` regardless of ``--remove`` option."
+msgstr ""
+"これらのドット区切りの名前は、 階層構造的に扱われます。 例えば\n"
+"``changeset.tag.remove`` の設定は :hg:`tag --remove` にのみ影響しますが、\n"
+"``changeset.tag`` の設定は ``--remove`` 指定に関わりなく全ての :hg:`tag`\n"
+"実行に影響します。"
+
+msgid ""
+"At the external editor invocation for committing, corresponding\n"
+"dot-separated list of names without ``changeset.`` prefix\n"
+"(e.g. ``commit.normal.normal``) is in ``HGEDITFORM`` environment variable."
+msgstr ""
+"コミットメッセージ入力用の、 外部エディタを起動する際には、 項目名冒頭の\n"
+"``changeset.`` を除いたドット区切り名 (例: ``commit.normal.normal``) が、\n"
+"``HGEDITFORM`` 環境変数に設定されます。"
+
+msgid ""
+"In this section, items other than ``changeset`` can be referred from\n"
+"others. For example, the configuration to list committed files up\n"
+"below can be referred as ``{listupfiles}``::"
+msgstr ""
+"本セクションでは、 ``changeset`` 以外の設定項目を、 相互に参照可能です。\n"
+"例えば、 コミット対象一覧を列挙する以下の設定を ``{listupfiles}`` として、\n"
+"各設定項目間で共有することができます::"
+
+msgid ""
+"    [committemplate]\n"
+"    listupfiles = {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"
+"    listupfiles = {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 ""
 "``decode/encode``\n"
 "-----------------"
 msgstr ""
@@ -17216,6 +17790,13 @@
 "    git 拡張 diff 形式使用の有無。"
 
 msgid ""
+"``nobinary``\n"
+"    Omit git binary patches."
+msgstr ""
+"``nobinary``\n"
+"    バイナリ差分の出力の抑止 (※ 訳注: :hg:`export` も影響を受けます)"
+
+msgid ""
 "``nodates``\n"
 "    Don't include dates in diff headers."
 msgstr ""
@@ -18162,14 +18743,21 @@
 msgid ""
 "``premerge``\n"
 "  Attempt to run internal non-interactive 3-way merge tool before\n"
-"  launching external tool.  Options are ``true``, ``false``, or ``keep``\n"
-"  to leave markers in the file if the premerge fails.\n"
+"  launching external tool.  Options are ``true``, ``false``, ``keep`` or\n"
+"  ``keep-merge3``. The ``keep`` option will leave markers in the file if "
+"the\n"
+"  premerge fails. The ``keep-merge3`` will do the same but include "
+"information\n"
+"  about the base of the merge in the marker (see internal :merge3 in\n"
+"  :hg:`help merge-tools`).\n"
 "  Default: True"
 msgstr ""
 "``premerge``\n"
 "  外部ツール起動前の、 非対話的な内部 3-way マージツール実行の有無。\n"
-"  ``true`` および ``false`` 以外に、 事前マージが失敗した場合に、\n"
-"  マージマークを残したままにする ``keep`` を指定可能です。\n"
+"  ``true``  ``false`` ``keep`` および ``keep-merge3`` を指定可能です。\n"
+"  事前マージが失敗した場合、 ``keep`` はマージマークをファイルに残します。\n"
+"  ``keep-merge3`` はマージ対象に関する情報を残す点以外は ``keep``\n"
+"  と同じ動作です (内部マージツール ``:merge3`` の説明も参照してください)\n"
 "  デフォルト値: True"
 
 msgid ""
@@ -19560,7 +20148,7 @@
 "    If unset, ``hglogo.png`` will be used."
 msgstr ""
 "``logoimg``\n"
-"    幾つかの表示テンプレートにおいて、 各ページで表示されるロゴの、\n"
+"    いくつかの表示テンプレートにおいて、 各ページで表示されるロゴの、\n"
 "    画像ファイル名。 ``staticurl`` に対する相対パスで指定します。\n"
 "    ロゴ画像ファイルのフルパスは、 \"staticurl/logoimg\" となります。\n"
 "    デフォルト値: ``hglogo.png``"
@@ -19653,17 +20241,24 @@
 
 msgid ""
 "``style``\n"
-"    Which template map style to use."
+"    Which template map style to use. The available options are the names of\n"
+"    subdirectories in the HTML templates path. Default is ``paper``.\n"
+"    Example: ``monoblue``"
 msgstr ""
 "``style``\n"
-"    使用するテンプレートスタイル。"
+"    使用するテンプレートスタイル。 HTML テンプレート格納先の、\n"
+"    サブディレクトリ名を指定してください (例: ``monoblue``)。\n"
+"    デフォルト値: ``paper``"
 
 msgid ""
 "``templates``\n"
-"    Where to find the HTML templates. Default is install path."
+"    Where to find the HTML templates. The default path to the HTML "
+"templates\n"
+"    can be obtained from ``hg debuginstall``."
 msgstr ""
 "``templates``\n"
-"    HTML テンプレートの検索先。 無指定時はインストール先。"
+"    HTML テンプレートの検索先。 デフォルトの検索先は ``hg debuginstall``\n"
+"    で得ることができます。"
 
 msgid ""
 "``websub``\n"
@@ -19875,7 +20470,7 @@
 msgstr ""
 "Mercurial は、 別の構成管理ツールである git に由来する拡張差分形式にも\n"
 "対応しており、 この形式は従来の差分形式の持つ制限を解消しています。\n"
-"但し、 普及しているツールの幾つかが git 差分形式に対応していないため、\n"
+"但し、 普及しているツールのいくつかが git 差分形式に対応していないため、\n"
 "Mercurial は指定が無い場合はこの形式では出力しません。"
 
 msgid ""
@@ -20303,14 +20898,14 @@
 msgid "- Find text files that contain a string::"
 msgstr "- 正規表現 magic が含まれているテキストファイルの名前を表示::"
 
-msgid "    hg locate \"set:grep(magic) and not binary()\""
-msgstr "    hg locate \"set:grep(magic) and not binary()\""
+msgid "    hg files \"set:grep(magic) and not binary()\""
+msgstr "    hg files \"set:grep(magic) and not binary()\""
 
 msgid "- Find C files in a non-standard encoding::"
 msgstr "- UTF-8 以外の文字コードを使う C 言語ソースのファイル名を表示::"
 
-msgid "    hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr "    hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid "    hg files \"set:**.c and not encoding('UTF-8')\""
+msgstr "    hg files \"set:**.c and not encoding('UTF-8')\""
 
 msgid "- Revert copies of large binary files::"
 msgstr "- 指定サイズ以上でバイナリ扱いのファイルの複製を取り消し::"
@@ -20728,6 +21323,14 @@
 "    基本的には「履歴ツリー」と訳しています)"
 
 msgid ""
+"Deprecated\n"
+"    Feature removed from documentation, but not scheduled for removal."
+msgstr ""
+"Deprecated\n"
+"    [非推奨] デフォルトのヘルプ表示等で隠されている機能。 但し、\n"
+"    機能そのものの削除は、 現時点では想定されていません。"
+
+msgid ""
 "Default branch\n"
 "    See 'Branch, default'."
 msgstr ""
@@ -20811,6 +21414,13 @@
 "    :hg:`help phases` を参照してください。"
 
 msgid ""
+"Experimental\n"
+"    Feature that may change or be removed at a later date."
+msgstr ""
+"Experimental\n"
+"    [実験的実装] 将来的に、 仕様変更や廃止の可能性がある機能。"
+
+msgid ""
 "Graph\n"
 "    See DAG and :hg:`log --graph`."
 msgstr ""
@@ -21946,8 +22556,8 @@
 "Merge tools are used both for :hg:`resolve`, :hg:`merge`, :hg:`update`,\n"
 ":hg:`backout` and in several extensions."
 msgstr ""
-"マージツールは、 :hg:`resolve`、 :hg:`merge`、 :hg:`update` や\n"
-":hg:`backout` および幾つかのエクステンションの実行時に起動されます。"
+"マージツールは、 :hg:`resolve` 、 :hg:`merge` 、 :hg:`update` や\n"
+":hg:`backout` およびいくつかのエクステンションの実行時に起動されます。"
 
 msgid ""
 "Usually, the merge tool tries to automatically reconcile the files by\n"
@@ -22098,10 +22708,10 @@
 
 msgid ""
 "7. If the file to be merged is not binary and is not a symlink, then\n"
-"   ``internal:merge`` is used."
+"   internal ``:merge`` is used."
 msgstr ""
 "7. マージ対象ファイルがシンボリックリンクやバイナリファイルでない場合、\n"
-"   ``internal:merge`` が使用されます。"
+"   内部ツールの ``:merge`` が使用されます。"
 
 msgid "8. The merge of the file fails and must be resolved before commit."
 msgstr ""
@@ -23178,6 +23788,9 @@
 msgid "- date(date[, fmt])"
 msgstr "- date(date[, fmt])"
 
+msgid "- diff([includepattern [, excludepattern]])"
+msgstr "- diff([includepattern [, excludepattern]])"
+
 msgid "- fill(text[, width])"
 msgstr "- fill(text[, width])"
 
@@ -23371,7 +23984,7 @@
 "server."
 msgstr ""
 "http:// や https:// 形式の URL で指定される連携先への push の様な\n"
-"機能のうちの幾つかは、 その機能が連携先の Mercurial サーバ側で明示的に\n"
+"機能のうちのいくつかは、 その機能が連携先の Mercurial サーバ側で明示的に\n"
 "利用可能になっている場合に限り使用可能です。"
 
 msgid ""
@@ -23494,7 +24107,7 @@
 msgstr "共有可能なのはローカルリポジトリのみです"
 
 msgid "destination already exists"
-msgstr "複製先 '%s' は既に存在します"
+msgstr "複製先は既に存在します"
 
 msgid "updating working directory\n"
 msgstr "作業領域の更新中\n"
@@ -23728,8 +24341,11 @@
 msgid "warning: tag %s conflicts with existing branch name\n"
 msgstr "警告: タグ %s が既存のブランチ名と衝突します\n"
 
-msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
-msgstr "作業領域の .hgtags が変更されています (手動でコミットしてください)"
+msgid "working copy of .hgtags is changed"
+msgstr "作業領域の .hgtags が変更されています"
+
+msgid "please commit .hgtags manually"
+msgstr ".hgtags を手動でコミットしてください"
 
 msgid "abandoned transaction found"
 msgstr "中断トランザクションを検出しました"
@@ -23915,14 +24531,14 @@
 msgstr "不正なローカルアドレス: %s"
 
 #, python-format
+msgid "failed to remove %s from manifest"
+msgstr "マニフェストからの %s の削除に失敗"
+
+#, python-format
 msgid "'\\n' and '\\r' disallowed in filenames: %r"
 msgstr "'\\n' と '\\r' はファイル名で使用しないでください: %r"
 
 #, python-format
-msgid "failed to remove %s from manifest"
-msgstr "マニフェストからの %s の削除に失敗"
-
-#, python-format
 msgid "invalid pattern (%s): %s"
 msgstr "不正パターン (%s): %s"
 
@@ -24084,17 +24700,20 @@
 msgstr "警告!"
 
 #, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "廃止情報解析: 未知のリビジョン %r"
-
-#, python-format
 msgid ""
 "parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
 msgstr "廃止情報解析: メタデータの想定サイズ %d に対して %d しかありません"
 
+msgid "cannot handle sha256 with old obsstore format"
+msgstr "旧形式の obsstore では sha256 を扱えません"
+
+#, python-format
+msgid "parsing obsolete marker: unknown version %r"
+msgstr "廃止情報解析: 未知のリビジョン %r"
+
 #, python-format
 msgid "in-marker cycle with %s"
-msgstr ""
+msgstr "マーカ %s における循環参照があります"
 
 msgid "bad obsolescence marker detected: invalid successors nullid"
 msgstr "不正な廃止情報を検出: 後継としての null 指定は不正です"
@@ -24107,6 +24726,12 @@
 msgid "unexpected old value for %r"
 msgstr "%r に対する旧値の指定は想定外です"
 
+msgid ""
+"'createmarkers' obsolete option must be enabled if other obsolete options "
+"are enabled"
+msgstr ""
+"廃止情報機能の各オプションの有効化には 'createmarkers' の有効化が必須です"
+
 #, python-format
 msgid "unexpected token: %s"
 msgstr "未知の記述: %s"
@@ -24316,6 +24941,9 @@
 msgid "index %s is corrupted"
 msgstr "インデックス %s は破損しています"
 
+msgid "no node"
+msgstr "ノードがありません"
+
 msgid "ambiguous identifier"
 msgstr "曖昧な ID です"
 
@@ -25128,7 +25756,7 @@
 "    contents of the revision. Two revisions matching their ``diff`` will\n"
 "    also match their ``files``."
 msgstr ""
-"    一般的な項目には、``description``, ``author``, ``branch``,\n"
+"    一般的な項目には、 ``description``, ``author``, ``branch``,\n"
 "    ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user``\n"
 "    および ``diff`` があります。 ``author`` と ``user`` は同一項目です。\n"
 "    ``diff`` は各リビジョンでの差分を指します。 2つのリビジョンにおいて\n"
@@ -25378,8 +26006,8 @@
 msgid "%s looks like a binary file."
 msgstr "%s はバイナリファイルのようです。"
 
-msgid "can only specify two labels."
-msgstr "ラベルは二つのみ指定可。"
+msgid "can only specify three labels."
+msgstr "ラベルは3つのみ指定可。"
 
 msgid "warning: conflicts during merge.\n"
 msgstr "警告: マージ中に衝突を発見。\n"
@@ -25554,23 +26182,12 @@
 
 #, python-format
 msgid ""
-" subrepository sources for %s differ\n"
-"use (l)ocal source (%s) or (r)emote source (%s)?\n"
-"$$ &Local $$ &Remote"
-msgstr ""
-" サブリポジトリ %s で連携先との差分が検出されました\n"
-"手元(%s):(l)ocal と連携先(%s):(r)emote のどちらの内容を採用しますか?\n"
-"$$ &Local $$ &Remote"
-
-#, python-format
-msgid ""
 " subrepository sources for %s differ (in checked out version)\n"
-"use (l)ocal source (%s) or (r)emote source (%s)?\n"
-"$$ &Local $$ &Remote"
+"use (l)ocal source (%s) or (r)emote source (%s)?$$ &Local $$ &Remote"
 msgstr ""
 " サブリポジトリ %s の作業領域で差分が検出されました\n"
-"手元(%s):(l)ocal と連携先(%s):(r)emote のどちらを採用しますか?\n"
-"$$ &Local $$ &Remote"
+"手元(%s):(l)ocal と連携先(%s):(r)emote のどちらを採用しますか?$$ &Local $$ "
+"&Remote"
 
 msgid "default path for subrepository not found"
 msgstr "サブリポジトリの連携先が見つかりません"
@@ -25740,6 +26357,9 @@
 "    末尾要素を取り出します (末尾パス区切りは無視されます)。\n"
 "    例) \"foo/bar/baz\" は \"baz\"、 \"foo/bar//\" は \"bar\""
 
+msgid ":count: List or text. Returns the length as an integer."
+msgstr ":count: 列挙または文字列。 長さを整数値で返します。"
+
 msgid ""
 ":date: Date. Returns a date in a Unix date format, including the\n"
 "    timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
@@ -26099,15 +26719,23 @@
 msgid "filter %s expects one argument"
 msgstr "フィルタ %s は引数が1つ必要です"
 
+#. i18n: "date" is a keyword
 msgid "date expects one or two arguments"
 msgstr "date の引数は1つまたは2つです"
 
+#. i18n: "diff" is a keyword
+msgid "diff expects one, two or no arguments"
+msgstr "diff の引数は最大2つです"
+
+#. i18n: "fill" is a keyword
 msgid "fill expects one to four arguments"
 msgstr "fill の引数は1つから4つの間です"
 
+#. i18n: "fill" is a keyword
 msgid "fill expects an integer width"
 msgstr "fill には数値を指定してください"
 
+#. i18n: "pad" is a keyword
 msgid "pad() expects two to four arguments"
 msgstr "pad() の引数は2つから4つの間です"
 
@@ -26143,9 +26771,11 @@
 msgid "rstdoc expects two arguments"
 msgstr "rstdoc の引数は2つです"
 
+#. i18n: "shortest" is a keyword
 msgid "shortest() expects one or two arguments"
 msgstr "shortest() の引数は1つまたは2つです"
 
+#. i18n: "strip" is a keyword
 msgid "strip expects one or two arguments"
 msgstr "strip の引数は1つまたは2つです"
 
@@ -26212,6 +26842,9 @@
 msgid "couldn't read journal entry %r!\n"
 msgstr "ジャーナルファイル中のエントリ %r の解析に失敗\n"
 
+msgid "journal was created by a newer version of Mercurial"
+msgstr "ジャーナルファイルは新しい Mercurial で作成されたものです"
+
 msgid "already have changeset "
 msgstr "既にあるリビジョンです "
 
@@ -26292,6 +26925,19 @@
 msgstr "HTTP 認証: ユーザ名 %s, パスワード %s\n"
 
 #, python-format
+msgid "unknown digest type: %s"
+msgstr "未知のダイジェスト種別: %s"
+
+#, python-format
+msgid "size mismatch: expected %d, got %d"
+msgstr "想定外のサイズです: 想定 %d に対して実際は %d"
+
+#. i18n: first parameter is a digest name
+#, python-format
+msgid "%s mismatch: expected %s, got %s"
+msgstr "想定外の %s: 想定 %s に対して実際は %s"
+
+#, python-format
 msgid "command '%s' failed: %s"
 msgstr "コマンド '%s' が失敗: %s"
 
@@ -26584,6 +27230,9 @@
 msgid "unpacked size is %s, %s expected"
 msgstr "展開後サイズ %s は想定外です(期待値:%s)"
 
+msgid "censored file data"
+msgstr "検閲されたファイルデータ"
+
 #, python-format
 msgid "unpacking %s"
 msgstr "%s の展開中"
--- a/i18n/pt_BR.po	Fri Oct 17 02:17:36 2014 -0700
+++ b/i18n/pt_BR.po	Mon Nov 03 14:01:52 2014 -0600
@@ -406,9 +406,9 @@
 "push to, and you don't want to restrict access to any other branch that may\n"
 "be created."
 msgstr ""
-"Suponha que haja um ramo para o qual somente um dado usuário (ou grupo) seja capaz\n"
-"de enviar revisões, e você não quer restringir acesso a qualquer outro ramo que\n"
-"possa ser criado."
+"Suponha que haja um ramo para o qual somente um dado usuário (ou grupo)\n"
+"seja capaz de enviar revisões, e você não quer restringir acesso a\n"
+"qualquer outro ramo que possa ser criado."
 
 msgid ""
 "The \"!\" prefix allows you to prevent anyone except a given user or group to\n"
@@ -1289,8 +1289,8 @@
 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 "count rate for the specified revision or revset"
+msgstr "conta a frequência para uma revisão ou revset especificado"
 
 msgid "DATE"
 msgstr "DATA"
@@ -1415,18 +1415,24 @@
 msgstr "colore a saída de alguns comandos"
 
 msgid ""
-"This extension modifies the status and resolve commands to add color\n"
-"to their output to reflect file status, the qseries command to add\n"
-"color to reflect patch status (applied, unapplied, missing), and to\n"
-"diff-related commands to highlight additions, removals, diff headers,\n"
-"and trailing whitespace."
-msgstr ""
-"Esta extensão modifica os comandos status e resolve para adicionar\n"
-"coloração às suas respectivas saídas para refletir estado de arquivos,\n"
-"o comando qseries para adicionar coloração para refletir os estados dos\n"
-"patches (aplicado, não aplicado, faltando), e comandos relacionados com\n"
-"diff para destacar adições, remoções, cabeçalhos de diffs e espaços em\n"
-"branco no final das linhas."
+"The color extension colorizes output from several Mercurial commands.\n"
+"For example, the diff command shows additions in green and deletions\n"
+"in red, while the status command shows modified files in magenta. Many\n"
+"other commands have analogous colors. It is possible to customize\n"
+"these colors."
+msgstr ""
+"A extensão color colore a saída de diversos comandos do Mercurial.\n"
+"Por exemplo, o comando diff mostra adições em verde e remoções em\n"
+"vermelho, e o comando status mostra arquivos modificados em magenta.\n"
+"Muitos outros comandos têm cores análogas, e é possível personalizar\n"
+"as cores utilizadas."
+
+msgid ""
+"Effects\n"
+"-------"
+msgstr ""
+"Efeitos\n"
+"-------"
 
 msgid ""
 "Other effects in addition to color, like bold and underlined text, are\n"
@@ -1442,9 +1448,63 @@
 "serão desenhados com a função de controle ECMA-48 SGR (também\n"
 "conhecidos como códigos de escape ANSI)."
 
-msgid "Default effects may be overridden from your configuration file::"
-msgstr ""
-"Os efeitos padrão podem ser redefinidos pelo seu arquivo de configuração::"
+msgid ""
+"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
+"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
+"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
+"'underline'.  How each is rendered depends on the terminal emulator.\n"
+"Some may not be available for a given terminal type, and will be\n"
+"silently ignored."
+msgstr ""
+"Os efeitos disponíveis em modo terminfo são 'blink', 'bold', 'dim',\n"
+"'inverse', 'invisible', 'italic', 'standout', e 'underline'; em modo\n"
+"ECMA-48 mode, as opções são 'bold', 'inverse', 'italic' e\n"
+"'underline'. O modo como cada um é desenhado dependerá do emulador\n"
+"de terminal. Alguns efeitos podem não estar disponíveis para um\n"
+"determinado tipo de terminal, e serão silenciosamente ignorados."
+
+msgid ""
+"Labels\n"
+"------"
+msgstr ""
+"Rótulos\n"
+"-------"
+
+msgid ""
+"Text receives color effects depending on the labels that it has. Many\n"
+"default Mercurial commands emit labelled text. You can also define\n"
+"your own labels in templates using the label function, see :hg:`help\n"
+"templates`. A single portion of text may have more than one label. In\n"
+"that case, effects given to the last label will override any other\n"
+"effects. This includes the special \"none\" effect, which nullifies\n"
+"other effects."
+msgstr ""
+"O texto recebe efeitos de coloração dependendo de seus rótulos.\n"
+"Muitos comandos do Mercurial emitem texto rotulado. Você também\n"
+"pode definir seus próprios rótulos em modelos usando a função label,\n"
+"veja :hg:`help templates`. Um trecho individual do texto\n"
+"pode ter mais de um rótulo. Nesse caso, os efeitos do último\n"
+"rótulo serão usados no lugar de qualquer outro efeito. Isso inclui\n"
+"o efeito especial \"none\", que anula outros efeitos."
+
+msgid ""
+"Labels are normally invisible. In order to see these labels and their\n"
+"position in the text, use the global --color=debug option. The same\n"
+"anchor text may be associated to multiple labels, e.g."
+msgstr ""
+"Rótulos são normalmente invisíveis. Para visualizar os rótulos e suas\n"
+"posições no texto, use a opção global --color=debug. O mesmo texto pode\n"
+"estar associado a múltiplos rótulos, como em"
+
+msgid "  [log.changeset changeset.secret|changeset:   22611:6f0a53c8f587]"
+msgstr "  [log.changeset changeset.secret|changeset:   22611:6f0a53c8f587]"
+
+msgid ""
+"The following are the default effects for some default labels. Default\n"
+"effects may be overridden from your configuration file::"
+msgstr ""
+"Seguem os efeitos pré-definidos para alguns rótulos padrão. Esses\n"
+"efeitos podem ser modificados usando seu arquivo de configuração::"
 
 msgid ""
 "  [color]\n"
@@ -1490,6 +1550,7 @@
 "  diff.deleted = red\n"
 "  diff.inserted = green\n"
 "  diff.changed = white\n"
+"  diff.tab =\n"
 "  diff.trailingwhitespace = bold red_background"
 msgstr ""
 "  diff.diffline = bold\n"
@@ -1500,9 +1561,21 @@
 "  diff.deleted = red\n"
 "  diff.inserted = green\n"
 "  diff.changed = white\n"
+"  diff.tab =\n"
 "  diff.trailingwhitespace = bold red_background"
 
 msgid ""
+"  # Blank so it inherits the style of the surrounding label\n"
+"  changeset.public =\n"
+"  changeset.draft =\n"
+"  changeset.secret ="
+msgstr ""
+"  # em branco, para que o estilo do rótulo circundante seja utilizado\n"
+"  changeset.public =\n"
+"  changeset.draft =\n"
+"  changeset.secret ="
+
+msgid ""
 "  resolve.unresolved = red bold\n"
 "  resolve.resolved = green bold"
 msgstr ""
@@ -1550,36 +1623,11 @@
 msgstr "  histedit.remaining = red bold"
 
 msgid ""
-"The available effects in terminfo mode are 'blink', 'bold', 'dim',\n"
-"'inverse', 'invisible', 'italic', 'standout', and 'underline'; in\n"
-"ECMA-48 mode, the options are 'bold', 'inverse', 'italic', and\n"
-"'underline'.  How each is rendered depends on the terminal emulator.\n"
-"Some may not be available for a given terminal type, and will be\n"
-"silently ignored."
-msgstr ""
-"Os efeitos disponíveis em modo terminfo são 'blink', 'bold', 'dim',\n"
-"'inverse', 'invisible', 'italic', 'standout', e 'underline'; em modo\n"
-"ECMA-48 mode, as opções são 'bold', 'inverse', 'italic' e\n"
-"'underline'. O modo como cada um é desenhado dependerá do emulador\n"
-"de terminal. Alguns efeitos podem não estar disponíveis para um\n"
-"determinado tipo de terminal, e serão silenciosamente ignorados."
-
-msgid ""
-"Note that on some systems, terminfo mode may cause problems when using\n"
-"color with the pager extension and less -R. less with the -R option\n"
-"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
-"emit codes that less doesn't understand. You can work around this by\n"
-"either using ansi mode (or auto mode), or by using less -r (which will\n"
-"pass through all terminal control codes, not just color control\n"
-"codes)."
-msgstr ""
-"Note que, em alguns sistemas, o modo terminfo pode causar problemas ao\n"
-"usar coloração com a extensão pager e less -R. O comando less com a\n"
-"opção -R mostrará apenas códigos de cores ECMA-48, e o modo terminfo\n"
-"pode por vezes emitir códigos não suportados pelo comando less.\n"
-"Para evitar esse problema, você pode usar o modo ansi (ou o modo auto)\n"
-"ou o comando less -r (que propagará todos os códigos de terminal, não\n"
-"apenas códigos de controle de cores)."
+"Custom colors\n"
+"-------------"
+msgstr ""
+"Cores personalizadas\n"
+"--------------------"
 
 msgid ""
 "Because there are only eight standard colors, this module allows you\n"
@@ -1615,6 +1663,13 @@
 "para definir o plano de fundo para tal cor."
 
 msgid ""
+"Modes\n"
+"-----"
+msgstr ""
+"Modos\n"
+"-----"
+
+msgid ""
 "By default, the color extension will use ANSI mode (or win32 mode on\n"
 "Windows) if it detects a terminal. To override auto mode (to enable\n"
 "terminfo mode, for example), set the following configuration option::"
@@ -1633,10 +1688,27 @@
 
 msgid ""
 "Any value other than 'ansi', 'win32', 'terminfo', or 'auto' will\n"
-"disable color.\n"
+"disable color."
 msgstr ""
 "Qualquer valor diferente de 'ansi', 'win32', 'terminfo' ou 'auto'\n"
-"desabilitará a coloração.\n"
+"desabilitará a coloração."
+
+msgid ""
+"Note that on some systems, terminfo mode may cause problems when using\n"
+"color with the pager extension and less -R. less with the -R option\n"
+"will only display ECMA-48 color codes, and terminfo mode may sometimes\n"
+"emit codes that less doesn't understand. You can work around this by\n"
+"either using ansi mode (or auto mode), or by using less -r (which will\n"
+"pass through all terminal control codes, not just color control\n"
+"codes).\n"
+msgstr ""
+"Note que, em alguns sistemas, o modo terminfo pode causar problemas ao\n"
+"usar coloração com a extensão pager e less -R. O comando less com a\n"
+"opção -R mostrará apenas códigos de cores ECMA-48, e o modo terminfo\n"
+"pode por vezes emitir códigos não suportados pelo comando less.\n"
+"Para evitar esse problema, você pode usar o modo ansi (ou o modo auto)\n"
+"ou o comando less -r (que propagará todos os códigos de terminal, não\n"
+"apenas códigos de controle de cores).\n"
 
 msgid "no terminfo entry for setab/setaf: reverting to ECMA-48 color\n"
 msgstr ""
@@ -1654,12 +1726,12 @@
 msgid "label expects two arguments"
 msgstr "label espera dois argumentos"
 
-#. i18n: 'always', 'auto', and 'never' are keywords and should
-#. not be translated
-msgid "when to colorize (boolean, always, auto, or never)"
-msgstr ""
-"quando colorir (booleana, ou \"always\" (sempre), \"never\" (nunca) ou "
-"\"auto\" (automaticamente))"
+#. i18n: 'always', 'auto', 'never', and 'debug' are keywords
+#. and should not be translated
+msgid "when to colorize (boolean, always, auto, never, or debug)"
+msgstr ""
+"quando colorir (booleana, ou \"always\" (sempre), \"never\" (nunca),\"auto\""
+" (automaticamente) ou \"debug\" (depuração))"
 
 msgid "TYPE"
 msgstr "TIPO"
@@ -1688,6 +1760,9 @@
 msgid "remap file names using contents of file"
 msgstr "arquivo de mapeamento de nomes de arquivo"
 
+msgid "apply filemap changes by converting all files again"
+msgstr "aplica mudanças de filemap convertendo novamente todos os arquivos"
+
 msgid "splice synthesized history into place"
 msgstr "junta o histórico sintetizado no lugar"
 
@@ -1903,6 +1978,22 @@
 "    de destino."
 
 msgid ""
+"    ``--full`` will make sure the converted changesets contain exactly\n"
+"    the right files with the right content. It will make a full\n"
+"    conversion of all files, not just the ones that have\n"
+"    changed. Files that already are correct will not be changed. This\n"
+"    can be used to apply filemap changes when converting\n"
+"    incrementally. This is currently only supported for Mercurial and\n"
+"    Subversion."
+msgstr ""
+"    ``--full`` garantirá que as revisões convertidas contêm exatamente\n"
+"    os arquivos corretos com o conteúdo correto. Todos os arquivos serão\n"
+"    convertidos, não apenas os arquivos que mudaram. Isso pode ser usado\n"
+"    para aplicar mudanças de filemap durante uma conversão incremental.\n"
+"    No momento, essa opção é suportada apenas pelo Mercurial e pelo\n"
+"    Subversion."
+
+msgid ""
 "    The splicemap is a file that allows insertion of synthetic\n"
 "    history, letting you specify the parents of a revision. This is\n"
 "    useful if you want to e.g. give a Subversion merge two parents, or\n"
@@ -2203,6 +2294,54 @@
 "        O valor padrão é 0."
 
 msgid ""
+"    Git Source\n"
+"    ##########"
+msgstr ""
+"    Origem Git\n"
+"    ##########"
+
+msgid ""
+"    The Git importer converts commits from all reachable branches (refs\n"
+"    in refs/heads) and remotes (refs in refs/remotes) to Mercurial.\n"
+"    Branches are converted to bookmarks with the same name, with the\n"
+"    leading 'refs/heads' stripped. Git submodules are converted to Git\n"
+"    subrepos in Mercurial."
+msgstr ""
+"    O importador do Git converte revisões de todos os ramos\n"
+"    alcançáveis (refs em refs/heads) e remotos (refs em refs/remotes)\n"
+"    para o Mercurial. Os ramos são convertidos para marcadores de\n"
+"    mesmo nome, removendo 'refs/heads' à esquerda. Submódulos do Git\n"
+"    são convertidos para sub-repositórios no Mercurial."
+
+msgid ""
+"    :convert.git.similarity: specify how similar files modified in a\n"
+"        commit must be to be imported as renames or copies, as a\n"
+"        percentage between ``0`` (disabled) and ``100`` (files must be\n"
+"        identical). For example, ``90`` means that a delete/add pair will\n"
+"        be imported as a rename if more than 90% of the file hasn't\n"
+"        changed. The default is ``50``."
+msgstr ""
+"    :convert.git.similarity: especifica o grau de similaridade em\n"
+"        arquivos modificados por uma revisão para que sejam importados\n"
+"        como renomeações ou cópias, como uma porcentagem entre ``0``\n"
+"        (desabilitado) e ``100`` (os arquivos devem ser idênticos).\n"
+"        Por exemplo, ``90`` significa que um par remoção/adição será\n"
+"        importado como uma renomeação se mais de 90% do arquivo não\n"
+"        tiver mudado. O padrão é ``50``."
+
+msgid ""
+"    :convert.git.findcopiesharder: while detecting copies, look at all\n"
+"        files in the working copy instead of just changed ones. This\n"
+"        is very expensive for large projects, and is only effective when\n"
+"        ``convert.git.similarity`` is greater than 0. The default is False."
+msgstr ""
+"    :convert.git.findcopiesharder: ao detectar cópias, procura em\n"
+"        todos os arquivos da cópia de trabalho, ao invés de apenas\n"
+"        em arquivos modificados. Isso pode ser muito caro em\n"
+"        projetos grandes, e só é eficaz se ``convert.git.similarity``\n"
+"        for maior do que 0. O padrão é False."
+
+msgid ""
 "    Perforce Source\n"
 "    ###############"
 msgstr ""
@@ -2361,13 +2500,12 @@
 msgstr "%s não é uma revisão válida"
 
 #, python-format
-msgid "%s is not available in %s anymore"
-msgstr "%s não está mais disponível em %s"
-
-#, python-format
 msgid "%s.%s symlink has no target"
 msgstr "%s.%s link simbólico não possui alvo"
 
+msgid "convert from cvs do not support --full"
+msgstr "a conversão a partir do cvs não suporta --full"
+
 #, python-format
 msgid "cannot find required \"%s\" tool"
 msgstr "não foi possível encontrar ferramenta \"%s\" necessária"
@@ -2621,6 +2759,9 @@
 msgid "failed to detect repository format!"
 msgstr "falha na detecção do formato do repositório!"
 
+msgid "convert from darcs do not support --full"
+msgstr "a conversão a partir do darcs não suporta --full"
+
 msgid "internal calling inconsistency"
 msgstr "inconsistência interna de chamadas"
 
@@ -2654,6 +2795,9 @@
 msgid "%s does not look like a Git repository"
 msgstr "%s não parece ser um repositório do Git"
 
+msgid "similarity must be between 0 and 100"
+msgstr "similaridade deve ser um número entre 0 e 100"
+
 msgid "cannot retrieve git heads"
 msgstr "não é possível recuperar cabeças do git"
 
@@ -2669,6 +2813,9 @@
 msgid "cannot read submodules config file in %s"
 msgstr "não é possível ler arquivo de configuração de submódulos em %s"
 
+msgid "convert from git do not support --full"
+msgstr "a conversão a partir do git não suporta --full"
+
 #, python-format
 msgid "cannot read changes in %s"
 msgstr "não é possível ler mudanças em %s"
@@ -2695,6 +2842,9 @@
 "análise da árvore parou porque esta aponta para um arquivo não registrado "
 "%s...\n"
 
+msgid "convert from arch do not support --full"
+msgstr "a conversão a partir do arch não suporta --full"
+
 #, python-format
 msgid "could not parse cat-log of %s"
 msgstr "não foi possível decodificar cat-log de %s"
@@ -2772,6 +2922,9 @@
 msgid "mtn command '%s' returned %s"
 msgstr "o comando mtn '%s' devolveu %s"
 
+msgid "convert from monotone do not support --full"
+msgstr "a conversão a partir do monotone não suporta --full"
+
 #, python-format
 msgid "copying file in renamed directory from '%s' to '%s'"
 msgstr "copiando arquivo em diretório renomeado de '%s' para '%s'"
@@ -2796,6 +2949,9 @@
 msgid "collecting p4 changelists\n"
 msgstr "coletando changelists do p4\n"
 
+msgid "convert from p4 do not support --full"
+msgstr "a conversão a partir do p4 não suporta --full"
+
 msgid "debugsvnlog could not load Subversion python bindings"
 msgstr ""
 "debugsvnlog: não foi possível carregar os módulos python do Subversion"
@@ -3484,15 +3640,6 @@
 "o diretório de trabalho não está na tip do ramo (use \"hg update\" para "
 "obter a tip do ramo)"
 
-msgid "outstanding uncommitted merge"
-msgstr "mesclagem não consolidada pendente"
-
-msgid "outstanding uncommitted changes"
-msgstr "alterações não consolidadas pendentes"
-
-msgid "working directory is missing some files"
-msgstr "estão faltando alguns arquivos no diretório de trabalho"
-
 msgid "multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)"
 msgstr "múltiplas cabeças nesse ramo (use \"hg heads .\" e \"hg merge\" para mesclar"
 
@@ -3621,12 +3768,11 @@
 msgid "error while signing"
 msgstr "erro ao assinar"
 
-msgid ""
-"working copy of .hgsigs is changed (please commit .hgsigs manually or use "
-"--force)"
-msgstr ""
-"a cópia de trabalho de .hgsigs foi mudada (por favor consolide .hgsigs "
-"manualmente ou use --force)"
+msgid "working copy of .hgsigs is changed "
+msgstr "a cópia de trabalho de .hgsigs foi modificada"
+
+msgid "please commit .hgsigs manually"
+msgstr "por favor consolide .hgsigs manualmente"
 
 msgid "unknown signature version"
 msgstr "versão de assinatura desconhecida"
@@ -3668,8 +3814,8 @@
 msgid "do case-insensitive search for a given text"
 msgstr "faz uma busca insensível a maiúsculas / minúsculas por um texto dado"
 
-msgid "show the specified revision or range"
-msgstr "mostra a revisão ou sequência de revisões especificada"
+msgid "show the specified revision or revset"
+msgstr "mostra a revisão ou revset especificado"
 
 msgid "include revisions where files were removed"
 msgstr "inclui revisões nas quais arquivos foram removidos"
@@ -4034,6 +4180,7 @@
 " #  p, pick = use commit\n"
 " #  e, edit = use commit, but stop for amending\n"
 " #  f, fold = use commit, but combine it with the one above\n"
+" #  r, roll = like fold, but discard this commit's description\n"
 " #  d, drop = remove commit from history\n"
 " #  m, mess = edit message without changing commit content\n"
 " #"
@@ -4046,6 +4193,7 @@
 " #  p, pick = use a revisão\n"
 " #  e, edit = use a revisão, mas pare para emendar\n"
 " #  f, fold = use a revisão, mas combine com a revisão acima\n"
+" #  r, roll = como fold, mas descarta a descrição da revisão\n"
 " #  d, drop = remova a revisão do histórico\n"
 " #  m, mess = edite a mensagem sem mudar o conteúdo da revisão\n"
 " #"
@@ -4259,6 +4407,7 @@
 "#  p, pick = use commit\n"
 "#  e, edit = use commit, but stop for amending\n"
 "#  f, fold = use commit, but combine it with the one above\n"
+"#  r, roll = like fold, but discard this commit's description\n"
 "#  d, drop = remove commit from history\n"
 "#  m, mess = edit message without changing commit content\n"
 "#\n"
@@ -4271,10 +4420,14 @@
 "#  p, pick = use a revisão\n"
 "#  e, edit = use a revisão, mas pare para emendar\n"
 "#  f, fold = use a revisão, mas combine com a revisão acima\n"
+"#  r, roll = como fold, mas descarta a descrição da revisão\n"
 "#  d, drop = remova a revisão do histórico\n"
 "#  m, mess = edite a mensagem sem mudar o conteúdo da revisão\n"
 "# #\n"
 
+msgid "no histedit in progress"
+msgstr "nenhuma edição de histórico em andamento"
+
 msgid "Fix up the change and run hg histedit --continue"
 msgstr "Conserte a mudança e execute hg histedit --continue"
 
@@ -4426,9 +4579,6 @@
 msgid "cannot edit immutable changeset: %s"
 msgstr "não é possível editar uma revisão imutável: %s"
 
-msgid "no histedit in progress"
-msgstr "nenhuma edição de histórico em andamento"
-
 #, python-format
 msgid "malformed line \"%s\""
 msgstr "linha malformada \"%s\""
@@ -4611,6 +4761,12 @@
 msgid "no [keyword] patterns configured"
 msgstr "nenhum padrão [keyword] configurado"
 
+msgid "outstanding uncommitted merge"
+msgstr "mesclagem não consolidada pendente"
+
+msgid "outstanding uncommitted changes"
+msgstr "alterações não consolidadas pendentes"
+
 msgid "show default keyword template maps"
 msgstr "exibe os mapas de modelos de teclado padrão"
 
@@ -7214,7 +7370,8 @@
 "  Default email domain for sender or recipients with no explicit domain."
 msgstr ""
 "notify.domain\n"
-"  Domínio de emails a ser usado para remetentes ou destinatários sem   um domínio explícito."
+"  Domínio de emails a ser usado para remetentes ou destinatários sem\n"
+"  um domínio explícito."
 
 msgid ""
 "notify.style\n"
@@ -7292,7 +7449,8 @@
 "  If set, append mails to this mbox file instead of sending. Default: None."
 msgstr ""
 "notify.mboxt\n"
-"  Se definido, anexa mensagens a este arquivo mbox ao invés de enviar.  O padrão é None."
+"  Se definido, anexa mensagens a este arquivo mbox ao invés de enviar.\n"
+"  O padrão é None."
 
 msgid ""
 "notify.fromauthor\n"
@@ -8083,15 +8241,12 @@
 "Para mais informações:\n"
 "http://mercurial.selenic.com/wiki/RebaseExtension\n"
 
-msgid "rebase from the specified changeset"
-msgstr "rebaseia a partir da revisão especificada"
-
-msgid ""
-"rebase from the base of the specified changeset (up to greatest common "
-"ancestor of base and dest)"
-msgstr ""
-"rebaseia a partir da base da revisão especificada (até o maior ancestral "
-"comum de base e dest)"
+msgid "rebase the specified changeset and descendants"
+msgstr "rebaseia a revisão especificada e seus descendentes"
+
+msgid "rebase everything from branching point of specified changeset"
+msgstr ""
+"rebaseia tudo a partir do ponto de ramificação da revisão especificada"
 
 msgid "rebase these revisions"
 msgstr "rebaseia estas revisões"
@@ -8248,14 +8403,73 @@
 "    manualmente, pode ser continuado com --continue/-c ou abortado com\n"
 "    --abort/-a."
 
+msgid "      Examples:"
+msgstr "      Exemplos:"
+
+msgid ""
+"      - move \"local changes\" (current commit back to branching point)\n"
+"        to the current branch tip after a pull::"
+msgstr ""
+"      - move as \"mudanças locais\" (da revisão atual até seu ponto de\n"
+"        ramificação) para a tip do ramo atual após um pull::"
+
+msgid "          hg rebase"
+msgstr "          hg rebase"
+
+msgid "      - move a single changeset to the stable branch::"
+msgstr "      - copia uma única mudança para o ramo stable::"
+
+msgid "          hg rebase -r 5f493448 -d stable"
+msgstr "          hg rebase -r 5f493448 -d stable"
+
+msgid ""
+"      - splice a commit and all its descendants onto another part of "
+"history::"
+msgstr ""
+"      - move uma revisão e todos os seus descendentes para outra\n"
+"        parte do histórico::"
+
+msgid "          hg rebase --source c0c3 --dest 4cf9"
+msgstr "          hg rebase --source c0c3 --dest 4cf9"
+
+msgid ""
+"      - rebase everything on a branch marked by a bookmark onto the\n"
+"        default branch::"
+msgstr ""
+"      - rebaseia tudo de um ramo marcado com um marcador para o ramo\n"
+"        default::"
+
+msgid "          hg rebase --base myfeature --dest default"
+msgstr "          hg rebase --base myfeature --dest default"
+
+msgid "      - collapse a sequence of changes into a single commit::"
+msgstr "      - colapsa uma sequência de mudanças em uma única revisão::"
+
+msgid "          hg rebase --collapse -r 1520:1525 -d ."
+msgstr "          hg rebase --collapse -r 1520:1525 -d ."
+
+msgid "      - move a named branch while preserving its name::"
+msgstr "      - move um ramo nomeado preservando seu nome::"
+
+msgid "          hg rebase -r \"branch(featureX)\" -d 1.3 --keepbranches"
+msgstr "          hg rebase -r \"branch(featureX)\" -d 1.3 --keepbranches"
+
 msgid ""
 "    Returns 0 on success, 1 if nothing to rebase or there are\n"
-"    unresolved conflicts.\n"
-"    "
+"    unresolved conflicts."
 msgstr ""
 "    Devolve 0 para indicar sucesso, 1 se não houver nada para rebasear\n"
-"    ou se houverem conflitos não resolvidos.\n"
-"    "
+"    ou se houverem conflitos não resolvidos."
+
+msgid "    "
+msgstr "    "
+
+msgid ""
+"interactive history editing is supported by the 'histedit' extension (see "
+"'hg help histedit')"
+msgstr ""
+"a edição interativa de histórico é suportada pela extensão histedit (veja "
+"'hg help histedit')"
 
 msgid "message can only be specified with collapse"
 msgstr "a mensagem só pode ser especificada ao usar --collapse"
@@ -9834,25 +10048,13 @@
 msgstr "adicionando marcador remoto %s\n"
 
 #, python-format
+msgid "importing bookmark %s\n"
+msgstr "importando marcador %s\n"
+
+#, python-format
 msgid "divergent bookmark %s stored as %s\n"
 msgstr "marcador divergente %s guardado como %s\n"
 
-#, python-format
-msgid "bookmark %s does not exist on the local or remote repository!\n"
-msgstr "o marcador %s não existe nem no repositório local nem no remoto!\n"
-
-#, python-format
-msgid "updating bookmark %s failed!\n"
-msgstr "a atualização do marcador %s falhou!\n"
-
-#, python-format
-msgid "exporting bookmark %s\n"
-msgstr "exportando marcador %s\n"
-
-#, python-format
-msgid "deleting remote bookmark %s\n"
-msgstr "apagando marcador remoto %s\n"
-
 msgid "searching for changed bookmarks\n"
 msgstr "procurando por marcadores modificados\n"
 
@@ -9866,9 +10068,37 @@
 msgid "unknown bundle version %s"
 msgstr "versão de bundle %s desconhecida"
 
+#, python-format
+msgid "remote-changegroup: missing \"%s\" param"
+msgstr "remote-changegroup: faltando parâmetro \"%s\""
+
+#, python-format
+msgid "remote-changegroup does not support %s urls"
+msgstr "remote-changegroup não suporta urls %s"
+
+#, python-format
+msgid "remote-changegroup: invalid value for param \"%s\""
+msgstr "remote-changegroup: valor inválido para o parâmetro \"%s\""
+
+#, python-format
+msgid "%s: not a bundle version 1.0"
+msgstr "%s: não é um bundle versão 1.0"
+
+#, python-format
+msgid ""
+"bundle at %s is corrupted:\n"
+"%s"
+msgstr ""
+"o bundle em %s está corrompido:\n"
+"%s"
+
 msgid "push failed:"
 msgstr "o push falhou:"
 
+#, python-format
+msgid "%i new obsolescence markers\n"
+msgstr "%i novas marcações de obsolescência\n"
+
 msgid "unknown parent"
 msgstr "pai desconhecido"
 
@@ -9934,8 +10164,8 @@
 msgid "added %d changesets with %d changes to %d files%s\n"
 msgstr "adicionadas %d revisões com %d mudanças em %d arquivos%s\n"
 
-msgid "no node"
-msgstr "nenhum nó"
+msgid "filtered node"
+msgstr "nó filtrado"
 
 msgid "empty username"
 msgstr "nome de usuário vazio"
@@ -10063,6 +10293,9 @@
 "aviso: importando o patch como revisão normal\n"
 "(use --exact para importar o patch como uma mesclagem)\n"
 
+msgid "warning: can't check exact import with --no-commit\n"
+msgstr "aviso: não é possível verificar a importação exata com --no-commit\n"
+
 msgid "patch is damaged or loses information"
 msgstr "o patch está danificado ou perde informação"
 
@@ -10267,25 +10500,25 @@
 msgstr "consolidada a revisão %d:%s\n"
 
 #, python-format
+msgid "reverting %s\n"
+msgstr "revertendo %s\n"
+
+#, python-format
 msgid "forgetting %s\n"
 msgstr "esquecendo %s\n"
 
 #, python-format
-msgid "reverting %s\n"
-msgstr "revertendo %s\n"
-
-#, python-format
 msgid "undeleting %s\n"
 msgstr "revertendo remoção de %s\n"
 
 #, python-format
+msgid "no changes needed to %s\n"
+msgstr "nenhuma mudança necessária para %s\n"
+
+#, python-format
 msgid "file not managed: %s\n"
 msgstr "arquivo não gerenciado: %s\n"
 
-#, python-format
-msgid "no changes needed to %s\n"
-msgstr "nenhuma mudança necessária para %s\n"
-
 msgid "graft in progress"
 msgstr "enxerto em andamento"
 
@@ -10393,6 +10626,9 @@
 msgid "record the specified user as committer"
 msgstr "grava o usuário pedido como autor da consolidação"
 
+msgid "display with template (DEPRECATED)"
+msgstr "exibe usando modelo (OBSOLETO)"
+
 msgid "STYLE"
 msgstr "ESTILO"
 
@@ -10532,7 +10768,8 @@
 msgstr ""
 "    Use a opção -s/--similarity para detectar arquivos renomeados.\n"
 "    Esta opção recebe como parâmetro uma porcentagem entre 0\n"
-"    (desabilitada) e 100 (arquivos devem ser idênticos).    Com um parâmetro maior do que 0, compara cada arquivo removido com cada\n"
+"    (desabilitada) e 100 (arquivos devem ser idênticos).\n"
+"    Com um parâmetro maior do que 0, compara cada arquivo removido com cada\n"
 "    arquivo adicionado e grava como renomeações aqueles semelhantes o\n"
 "    bastante.  Detectar\n"
 "    desta maneira arquivos renomeados pode ser uma operação cara.\n"
@@ -10546,9 +10783,6 @@
 msgid "similarity must be a number"
 msgstr "similaridade deve ser um número"
 
-msgid "similarity must be between 0 and 100"
-msgstr "similaridade deve ser um número entre 0 e 100"
-
 msgid "annotate the specified revision"
 msgstr "faz um annotate da revisão especificada"
 
@@ -10652,9 +10886,6 @@
 "    O tipo de arquivo é detectado automaticamente com base na extensão\n"
 "    do arquivo (ou forçado através de -t/--type)."
 
-msgid "      Examples:"
-msgstr "      Exemplos:"
-
 msgid "      - create a zip file containing the 1.0 release::"
 msgstr "      - cria um arquivo zip contendo a versão 1.0::"
 
@@ -11118,13 +11349,13 @@
 "    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."
+"    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`).\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'."
+"    A divergência pode ser resolvida usando :hg:`merge`."
 
 msgid ""
 "    A bookmark named '@' has the special property that :hg:`clone` will\n"
@@ -11838,9 +12069,6 @@
 msgid "    Returns 0 on success, 1 if NAME does not exist."
 msgstr "    Devolve 0 para indicar sucesso, 1 se o NOME não existir."
 
-msgid "    "
-msgstr "    "
-
 msgid "can't use --local and --global together"
 msgstr "não se pode usar --local e --global ao mesmo tempo"
 
@@ -12263,9 +12491,60 @@
 "completa \"rótulos\" - etiquetas, nomes de ramos abertos, nomes de "
 "marcadores"
 
+msgid "free the store lock (DANGEROUS)"
+msgstr "libera o lock do store (PERIGOSO)"
+
+msgid "free the working state lock (DANGEROUS)"
+msgstr "libera o lock do working state (PERIGOSO)"
+
+msgid "show or modify state of locks"
+msgstr "mostra ou modifica o estado dos locks"
+
+msgid ""
+"    By default, this command will show which locks are held. This\n"
+"    includes the user and process holding the lock, the amount of time\n"
+"    the lock has been held, and the machine name where the process is\n"
+"    running if it's not local."
+msgstr ""
+"    Por padrão, este comando mostra quais locks estão bloqueados.\n"
+"    Isso inclui o usuário e processo donos do lock, há quanto tempo\n"
+"    o lock está bloqueado, e o nome da máquina onde o processo\n"
+"    está rodando, se não for a máquina local."
+
+msgid ""
+"    Locks protect the integrity of Mercurial's data, so should be\n"
+"    treated with care. System crashes or other interruptions may cause\n"
+"    locks to not be properly released, though Mercurial will usually\n"
+"    detect and remove such stale locks automatically."
+msgstr ""
+"    Locks protegem a integridade dos dados do Mercurial, então\n"
+"    devem ser usados com cuidado. Quedas de sistema ou outras\n"
+"    interrupções podem fazer com que locks não sejam liberados\n"
+"    adequadamente, apesar de o Mercurial tipicamente detectar e\n"
+"    liberar esses locks inválidos automaticamente."
+
+msgid ""
+"    However, detecting stale locks may not always be possible (for\n"
+"    instance, on a shared filesystem). Removing locks may also be\n"
+"    blocked by filesystem permissions."
+msgstr ""
+"    No entanto, pode não ser possível detectar locks inválidos (por\n"
+"    exemplo, em um sistema de arquivos compartilhado). A remoção de\n"
+"    locks também pode ser bloqueada por permissões do sistema de\n"
+"    arquivos."
+
+msgid "    Returns 0 if no locks are held."
+msgstr "    Devolve 0 se se nenhum lock estiver bloqueado."
+
 msgid "markers flag"
 msgstr "flag de marcação"
 
+msgid "record parent information for the precursor"
+msgstr "grava informações dos pais para o precursor"
+
+msgid "display markers relevant to REV"
+msgstr "mostra marcações relevantes para REV"
+
 msgid "[OBSOLETED [REPLACEMENT] [REPL... ]"
 msgstr "[OBSOLETA [SUBSTITUTA] [SUBSTITUTA... ]"
 
@@ -12756,6 +13035,83 @@
 msgid "exporting patch:\n"
 msgstr "exportando patch:\n"
 
+msgid "search the repository as it is in REV"
+msgstr "procura no repositório como se estivesse em REV"
+
+msgid "end filenames with NUL, for use with xargs"
+msgstr "termina nomes de arquivo com NUL, para uso com xargs"
+
+msgid "[OPTION]... [PATTERN]..."
+msgstr "[OPÇÃO]... [PADRÃO]..."
+
+msgid "list tracked files"
+msgstr "lista arquivos rastreados"
+
+msgid ""
+"    Print files under Mercurial control in the working directory or\n"
+"    specified revision whose names match the given patterns (excluding\n"
+"    removed files)."
+msgstr ""
+"    Imprime os arquivos sob o controle do Mercurial cujos nomes\n"
+"    correspondam aos padrões fornecidos (excluindo arquivos\n"
+"    removidos), no diretório de trabalho ou nas revisões\n"
+"    especificadas."
+
+msgid ""
+"    If no patterns are given to match, this command prints the names\n"
+"    of all files under Mercurial control in the working copy."
+msgstr ""
+"    Se não forem passados padrões, este comando imprime os nomes\n"
+"    de todos os arquivos sob o controle do Mercurial na cópia de\n"
+"    trabalho."
+
+msgid "      - list all files under the current directory::"
+msgstr "      - lista todos os arquivos sob o diretório atual::"
+
+msgid "          hg files ."
+msgstr "          hg files ."
+
+msgid "      - shows sizes and flags for current revision::"
+msgstr "      - mostra tamanhos e flags para a revisão atual::"
+
+msgid "          hg files -vr ."
+msgstr "          hg files -vr ."
+
+msgid "      - list all files named README::"
+msgstr "      - lista todos os arquivos com o nome README::"
+
+msgid "          hg files -I \"**/README\""
+msgstr "          hg files -I \"**/README\""
+
+msgid "      - list all binary files::"
+msgstr "      - lista todos os arquivos binários::"
+
+msgid "          hg files \"set:binary()\""
+msgstr "          hg files \"set:binary()\""
+
+msgid "      - find files containing a regular expression::"
+msgstr "      - encontra arquivos contendo uma expressão regular::"
+
+msgid "          hg files \"set:grep('bob')\""
+msgstr "          hg files \"set:grep('bob')\""
+
+msgid "      - search tracked file contents with xargs and grep::"
+msgstr ""
+"      - procura no conteúdo dos arquivos rastreados com xargs e grep::"
+
+msgid "          hg files -0 | xargs -0 grep foo"
+msgstr "          hg files -0 | xargs -0 grep foo"
+
+msgid ""
+"    See :hg:`help pattern` and :hg:`help filesets` for more information\n"
+"    on specifying file patterns."
+msgstr ""
+"    Veja :hg:`help pattern` e :hg:`help filesets` para mais\n"
+"    informações sobre a especificação de padrões de arquivo."
+
+msgid "    Returns 0 if a match is found, 1 otherwise."
+msgstr "    Devolve 0 se um resultado for encontrado, 1 caso contrário."
+
 msgid "forget the specified files on the next commit"
 msgstr "esquece os arquivos especificados na próxima consolidação"
 
@@ -12799,6 +13155,9 @@
 msgid "append graft info to log message"
 msgstr "anexa informações de enxerto à mensagem de log"
 
+msgid "force graft"
+msgstr "força o enxerto"
+
 msgid "record the current date as commit date"
 msgstr "grava a data atual como data da consolidação"
 
@@ -12836,6 +13195,16 @@
 msgstr "      (grafted from CHANGESETHASH)"
 
 msgid ""
+"    If --force is specified, revisions will be grafted even if they\n"
+"    are already ancestors of or have been grafted to the destination.\n"
+"    This is useful when the revisions have since been backed out."
+msgstr ""
+"    Se --force for especificado, as revisões serão enxertadas mesmo\n"
+"    se já forem ancestrais ou já tiverem sido enxertadas no destino.\n"
+"    Isto pode ser útil quando tais revisões tiverem sido revertidas\n"
+"    usando o comando backout."
+
+msgid ""
 "    If a graft merge results in conflicts, the graft process is\n"
 "    interrupted so that the current merge can be manually resolved.\n"
 "    Once all conflicts are addressed, the graft process can be\n"
@@ -12847,8 +13216,12 @@
 "    resolvidos, o processo de enxerto pode ser retomado usando a\n"
 "    opção -c/--continue."
 
-msgid "      The -c/--continue option does not reapply earlier options."
-msgstr "      A opção -c/--continue não reaplica opções anteriores."
+msgid ""
+"      The -c/--continue option does not reapply earlier options, except\n"
+"      for --force."
+msgstr ""
+"      A opção -c/--continue não reaplica opções anteriores,\n"
+"      exceto --force"
 
 msgid ""
 "      - copy a single change to the stable branch and edit its description::"
@@ -13121,6 +13494,9 @@
 "    Devolve 0 para indicar sucesso.\n"
 "    "
 
+msgid "help section not found"
+msgstr "seção da ajuda não encontrada"
+
 msgid "identify the specified revision"
 msgstr "identifica a revisão especificada"
 
@@ -13383,6 +13759,9 @@
 msgid "cannot use --similarity with --bypass"
 msgstr "não se pode usar --similarity com --bypass"
 
+msgid "cannot use --exact with --edit"
+msgstr "não é possível usar --exact com --edit"
+
 msgid "applying patch from stdin\n"
 msgstr "aplicando patch da entrada padrão\n"
 
@@ -13500,20 +13879,11 @@
 "    Veja :hg:`help urls` para mais informações.\n"
 "    "
 
-msgid "search the repository as it is in REV"
-msgstr "procura no repositório como se estivesse em REV"
-
-msgid "end filenames with NUL, for use with xargs"
-msgstr "termina nomes de arquivo com NUL, para uso com xargs"
-
 msgid "print complete paths from the filesystem root"
 msgstr "imprime caminhos completos a partir do raiz do sistema de arquivos"
 
-msgid "[OPTION]... [PATTERN]..."
-msgstr "[OPÇÃO]... [PADRÃO]..."
-
-msgid "locate files matching specific patterns"
-msgstr "localiza arquivos que casem com os padrões especificados"
+msgid "locate files matching specific patterns (DEPRECATED)"
+msgstr "localiza arquivos que casem com os padrões especificados (OBSOLETO)"
 
 msgid ""
 "    Print files under Mercurial control in the working directory whose\n"
@@ -13551,6 +13921,9 @@
 "    \"xargs\". Isso irá evitar que \"xargs\" trate nomes de arquivo\n"
 "    contendo espaços como múltiplos nomes de arquivo."
 
+msgid "    See :hg:`help files` for a more versatile command."
+msgstr "    Veja :hg:`help files` para um comando mais versátil."
+
 msgid "show revision history of entire repository or files"
 msgstr "mostra o histórico de revisões do repositório ou de arquivos"
 
@@ -13624,7 +13997,8 @@
 "       see all such changes, use the --removed switch."
 msgstr ""
 "       por razões de desempenho, log ARQUIVO pode omitir mudanças\n"
-"       duplicadas feitas em outros ramos, e não mostra remoções nem        mudanças de atributos.\n"
+"       duplicadas feitas em outros ramos, e não mostra remoções nem\n"
+"       mudanças de atributos.\n"
 "       Para ver todas as mudanças, use a opção --removed."
 
 msgid "      - changesets with full descriptions and file lists::"
@@ -13904,8 +14278,8 @@
 msgid "[-r REV] [FILE]"
 msgstr "[-r REV] [ARQUIVO]"
 
-msgid "show the parents of the working directory or revision"
-msgstr "mostra os pais do diretório de trabalho ou da revisão"
+msgid "show the parents of the working directory or revision (DEPRECATED)"
+msgstr "mostra os pais do diretório de trabalho ou da revisão (OBSOLETO)"
 
 msgid ""
 "    Print the working directory's parent revisions. If a revision is\n"
@@ -13920,6 +14294,10 @@
 "    arquivo foi mudado por último (anterior à revisão do diretório de\n"
 "    trabalho ou ao argumento --rev, se passado)."
 
+msgid "    See :hg:`summary` and :hg:`help revsets` for related information."
+msgstr ""
+"    Veja :hg:`summary` e :hg:`help revsets` para informações relacionadas."
+
 msgid "can only specify an explicit filename"
 msgstr "só é possível especificar um nome de arquivo explícito"
 
@@ -14127,10 +14505,6 @@
 msgid "remote bookmark %s not found!"
 msgstr "marcador remoto %s não encontrado!"
 
-#, python-format
-msgid "importing bookmark %s\n"
-msgstr "importando marcador %s\n"
-
 msgid "force push"
 msgstr "força um push"
 
@@ -14981,10 +15355,6 @@
 msgstr "%d desconhecidos"
 
 #, python-format
-msgid "%d ignored"
-msgstr "%d ignorados"
-
-#, python-format
 msgid "%d unresolved"
 msgstr "%d não resolvidos"
 
@@ -15398,14 +15768,28 @@
 "Extensões habilitadas:"
 
 #, python-format
+msgid "unknown command %s"
+msgstr "comando %s desconhecido"
+
+#, python-format
+msgid "abort: %s\n"
+msgstr "abortado: %s\n"
+
+msgid "unsupported platform"
+msgstr "plataforma não suportada"
+
+msgid "no socket path specified with --address"
+msgstr "nenhum caminho de socket especificado com --address"
+
+#, python-format
+msgid "listening at %s\n"
+msgstr "ouvindo em %s\n"
+
+#, python-format
 msgid "unknown mode %s"
 msgstr "modo %s desconhecido"
 
 #, python-format
-msgid "unknown command %s"
-msgstr "comando %s desconhecido"
-
-#, python-format
 msgid "cannot include %s (%s)"
 msgstr "não é possível incluir %s (%s)"
 
@@ -15413,14 +15797,25 @@
 msgstr "não encontrado no manifesto"
 
 #, python-format
+msgid "working directory has unknown parent '%s'!"
+msgstr "diretório de trabalho tem pai desconhecido '%s'!"
+
+#, python-format
+msgid "hidden revision '%s'"
+msgstr "revisão oculta '%s'"
+
+msgid "use --hidden to access hidden revisions"
+msgstr "use --hidden para acessar revisões ocultas"
+
+#, python-format
+msgid "filtered revision '%s' (not in '%s' subset)"
+msgstr "revisão filtrada '%s' (não está no subconjunto '%s')"
+
+#, python-format
 msgid "unknown revision '%s'"
 msgstr "revisão desconhecida '%s'"
 
 #, python-format
-msgid "working directory has unknown parent '%s'!"
-msgstr "diretório de trabalho tem pai desconhecido '%s'!"
-
-#, python-format
 msgid "note: using %s as ancestor of %s and %s\n"
 msgstr "nota: usando %s como ancestral de %s e %s\n"
 
@@ -15432,6 +15827,13 @@
 msgid "no such file in rev %s"
 msgstr "não há tal arquivo na revisão %s"
 
+#, python-format
+msgid "censored node: %s"
+msgstr "nó censurado: %s"
+
+msgid "set censor.policy to ignore errors"
+msgstr "defina censor.policy para ignorar erros"
+
 msgid "branch name not in UTF-8!"
 msgstr "nome do ramo não está em UTF-8!"
 
@@ -15584,13 +15986,12 @@
 msgstr "novas cabeças remotas no ramo '%s':\n"
 
 #, python-format
-msgid "abort: %s\n"
-msgstr "abortado: %s\n"
-
-#, python-format
 msgid "hg: parse error at %s: %s\n"
 msgstr "hg: erro de análise da entrada em %s: %s\n"
 
+msgid "unexpected leading whitespace\n"
+msgstr "espaço em branco à esquerda inesperado\n"
+
 #, python-format
 msgid "hg: parse error: %s\n"
 msgstr "hg: erro de análise da entrada: %s\n"
@@ -15650,6 +16051,10 @@
 msgid " empty string\n"
 msgstr " string vazia\n"
 
+#, python-format
+msgid "abort: file censored %s!\n"
+msgstr "abortado: arquivo censurado %s!\n"
+
 msgid "killed!\n"
 msgstr "morto!\n"
 
@@ -15726,28 +16131,31 @@
 msgstr "faltam argumentos para o apelido de comando"
 
 #, python-format
-msgid "no definition for alias '%s'\n"
-msgstr "nenhuma definição para o apelido '%s'\n"
-
-#, python-format
-msgid "error in definition for alias '%s': %s\n"
-msgstr "erro na definição do apelido '%s': %s\n"
-
-#, python-format
-msgid ""
-"error in definition for alias '%s': %s may only be given on the command "
-"line\n"
+msgid "no definition for alias '%s'"
+msgstr "nenhuma definição para o apelido '%s'"
+
+#, python-format
+msgid "error in definition for alias '%s': %s"
+msgstr "erro na definição do apelido '%s': %s"
+
+#, python-format
+msgid ""
+"error in definition for alias '%s': %s may only be given on the command line"
 msgstr ""
 "erro na definição do apelido '%s': %s pode ser passado apenas na linha de "
-"comando\n"
-
-#, python-format
-msgid "alias '%s' resolves to unknown command '%s'\n"
-msgstr "apelido '%s' indica comando desconhecido '%s'\n"
-
-#, python-format
-msgid "alias '%s' resolves to ambiguous command '%s'\n"
-msgstr "apelido '%s' indica comando ambíguo '%s'\n"
+"comando"
+
+#, python-format
+msgid "alias '%s' resolves to unknown command '%s'"
+msgstr "apelido '%s' indica comando desconhecido '%s'"
+
+#, python-format
+msgid "alias '%s' resolves to ambiguous command '%s'"
+msgstr "apelido '%s' indica comando ambíguo '%s'"
+
+#, python-format
+msgid "'%s' is provided by '%s' extension"
+msgstr "'%s' é fornecido pela extensão '%s'"
 
 #, python-format
 msgid "malformed --config option: %r (use --config section.name=value)"
@@ -15819,10 +16227,34 @@
 msgid "%s: unknown bundle version %s"
 msgstr "%s: versão de bundle %s desconhecida"
 
+#, python-format
+msgid "updating bookmark %s failed!\n"
+msgstr "a atualização do marcador %s falhou!\n"
+
+#, python-format
+msgid "exporting bookmark %s\n"
+msgstr "exportando marcador %s\n"
+
+#, python-format
+msgid "exporting bookmark %s failed!\n"
+msgstr "a exportação do marcador %s falhou!\n"
+
+#, python-format
+msgid "deleting remote bookmark %s\n"
+msgstr "apagando marcador remoto %s\n"
+
+#, python-format
+msgid "deleting remote bookmark %s failed!\n"
+msgstr "a remoção do marcador remoto %s falhou!\n"
+
 msgid "destination does not support push"
 msgstr "o destino não suporta push"
 
 #, python-format
+msgid "bookmark %s does not exist on the local or remote repository!\n"
+msgstr "o marcador %s não existe nem no repositório local nem no remoto!\n"
+
+#, python-format
 msgid "push includes obsolete changeset: %s!"
 msgstr "push inclui uma revisão obsoleta: %s!"
 
@@ -15847,6 +16279,10 @@
 msgstr "a atualização da fase de %s para pública falhou!\n"
 
 #, python-format
+msgid "server ignored bookmark %s update\n"
+msgstr "o servidor ignorou a atualização do marcador %s\n"
+
+#, python-format
 msgid "cannot lock source repo, skipping local %s phase update\n"
 msgstr ""
 "não é possível travar o repositório de origem, a mudança local para fase "
@@ -15865,6 +16301,9 @@
 "pull parcial não pode ser feito porque o outro repositório não suporta "
 "'changegroupsubset'."
 
+msgid "request for bundle10 must include changegroup"
+msgstr "o pedido por bundle10 deve incluir um changegroup"
+
 #, python-format
 msgid "unsupported getbundle arguments: %s"
 msgstr "argumentos de getbundle não suportados: %s"
@@ -15905,11 +16344,11 @@
 msgstr "a ferramenta %s requer uma interface gráfica (GUI)\n"
 
 msgid ""
-"``internal:prompt``\n"
+"``:prompt``\n"
 "Asks the user which of the local or the other version to keep as\n"
 "    the merged version."
 msgstr ""
-"``internal:prompt``\n"
+"``:prompt``\n"
 "Pergunta ao usuário se a versão local ou a outra deve ser usada\n"
 "    como resultado da mesclagem."
 
@@ -15922,26 +16361,26 @@
 "manter o arquivo (l)ocal ou usar o (o)utro?$$ &Local $$ &Outro"
 
 msgid ""
-"``internal:local``\n"
+"``:local``\n"
 "Uses the local version of files as the merged version."
 msgstr ""
-"``internal:local``\n"
+"``:local``\n"
 "Usa a versão local de arquivos como resultado da mesclagem."
 
 msgid ""
-"``internal:other``\n"
+"``:other``\n"
 "Uses the other version of files as the merged version."
 msgstr ""
-"``internal:other``\n"
+"``:other``\n"
 "Usa a outra (não local) versão de arquivos como resultado da mesclagem."
 
 msgid ""
-"``internal:fail``\n"
+"``:fail``\n"
 "Rather than attempting to merge files that were modified on both\n"
 "    branches, it marks them as unresolved. The resolve command must be\n"
 "    used to resolve these conflicts."
 msgstr ""
-"``internal:fail``\n"
+"``:fail``\n"
 "Ao invés de tentar mesclar arquivos modificados em ambos os ramos,\n"
 "    marca tais arquivos como não resolvidos. O comando resolve deve\n"
 "    então ser usado para resolver esses conflitos."
@@ -15951,15 +16390,17 @@
 msgstr "%s.premerge não é válido ('%s' não é nem booleano nem %s)"
 
 msgid ""
-"``internal:merge``\n"
+"``:merge``\n"
 "Uses the internal non-interactive simple merge algorithm for merging\n"
 "    files. It will fail if there are any conflicts and leave markers in\n"
-"    the partially merged file."
-msgstr ""
-"``internal:merge``\n"
+"    the partially merged file. Markers will have two sections, one for each side\n"
+"    of merge."
+msgstr ""
+"``:merge``\n"
 "Usa o algoritmo não interativo interno simples para mesclar arquivos.\n"
 "    Se houver qualquer conflito, esse algoritmo falhará, deixando\n"
-"    marcadores no arquivo parcialmente mesclado."
+"    marcações no arquivo parcialmente mesclado.\n"
+"    As marcações terão duas seções, uma para cada lado da mesclagem."
 
 #, python-format
 msgid "merging %s incomplete! (edit conflicts, then use 'hg resolve --mark')\n"
@@ -15968,26 +16409,40 @@
 " resolve --mark')\n"
 
 #, python-format
-msgid "warning: internal:merge cannot merge symlinks for %s\n"
-msgstr "aviso: internal:merge não é capaz de mesclar links simbólicos para %s\n"
-
-msgid ""
-"``internal:tagmerge``\n"
+msgid "warning: internal :merge cannot merge symlinks for %s\n"
+msgstr "aviso: :merge interno não é capaz de mesclar links simbólicos para %s\n"
+
+msgid ""
+"``:merge3``\n"
+"Uses the internal non-interactive simple merge algorithm for merging\n"
+"    files. It will fail if there are any conflicts and leave markers in\n"
+"    the partially merged file. Marker will have three sections, one from each\n"
+"    side of the merge and one for the base content."
+msgstr ""
+"``:merge3``\n"
+"Usa o algoritmo não interativo interno simples para mesclar arquivos.\n"
+"    Se houver qualquer conflito, esse algoritmo falhará, deixando\n"
+"    marcações no arquivo parcialmente mesclado.\n"
+"    As marcações terão três seções, uma para cada lado da mesclagem\n"
+"    e uma para o conteúdo da base."
+
+msgid ""
+"``:tagmerge``\n"
 "Uses the internal tag merge algorithm (experimental)."
 msgstr ""
-"``internal:tagmerge``\n"
+"``: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"
+"automatic tag merging of %s failed! (use 'hg resolve --tool :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"
+":merge' ou outra ferramenta de mesclagem à sua escolha)\n"
+
+msgid ""
+"``: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"
 "    perform a merge manually. If the file to be merged is named\n"
@@ -15995,7 +16450,7 @@
 "    ``a.txt.other`` and ``a.txt.base`` and they will be placed in the\n"
 "    same directory as ``a.txt``."
 msgstr ""
-"``internal:dump``\n"
+"``:dump``\n"
 "Cria três versões dos arquivos a serem mesclados, com os conteúdos\n"
 "    das versões local, outra e base. Estes arquivos podem então ser\n"
 "    usados para fazer uma mesclagem manual. Se o arquivo a ser mesclado\n"
@@ -16188,6 +16643,7 @@
 "``hgignore()``\n"
 "    O nome do arquivo combina com um padrão do arquivo .hgignore ativo."
 
+#. i18n: "hgignore" is a keyword
 msgid "hgignore takes no arguments"
 msgstr "hgignore não tem argumentos"
 
@@ -16285,12 +16741,16 @@
 msgid "subrepo takes at most one argument"
 msgstr "subrepo recebe um ou nenhum argumento"
 
+#. i18n: "subrepo" is a keyword
 msgid "subrepo requires a pattern or no arguments"
 msgstr "subrepo requer um padrão ou nenhum argumento"
 
 msgid "invalid token"
 msgstr "token inválido"
 
+msgid "custom templates not yet supported"
+msgstr "modelos personalizados ainda não são suportados"
+
 msgid "starting revisions are not directly related"
 msgstr "as revisões iniciais não são diretamente relacionadas"
 
@@ -16338,6 +16798,9 @@
 msgid "DEPRECATED"
 msgstr "OBSOLETO"
 
+msgid " ([+] can be repeated)"
+msgstr " ([+] pode ser repetido)"
+
 msgid "Configuration Files"
 msgstr "Arquivos de Configuração"
 
@@ -16417,32 +16880,29 @@
 msgstr "%s"
 
 #, python-format
-msgid "use \"hg help -e %s\" to show help for the %s extension"
-msgstr "use \"hg help -e %s\" para mostrar a ajuda para a extensão %s"
-
-msgid "options:"
-msgstr "opções:"
-
-msgid "global options:"
-msgstr "opções globais:"
-
-#, python-format
-msgid ""
-"\n"
-"use \"hg help %s\" to show the full help text\n"
-msgstr ""
-"\n"
-"use \"hg help %s\" para mostrar o texto completo de ajuda\n"
-
-#, python-format
-msgid "use \"hg -v help %s\" to show more complete help and the global options"
-msgstr ""
-"use \"hg -v help %s\" para mostrar um texto de ajuda mais completo e opções "
-"globais"
-
-#, python-format
-msgid "use \"hg -v help %s\" to show the global options"
-msgstr "use \"hg -v help %s\" para mostrar opções globais"
+msgid "(use \"hg help -e %s\" to show help for the %s extension)"
+msgstr "(use \"hg help -e %s\" para mostrar a ajuda para a extensão %s)"
+
+msgid "options"
+msgstr "opções"
+
+msgid "global options"
+msgstr "opções globais"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg %s -h\" to show more help)\n"
+msgstr ""
+"\n"
+"(use \"hg %s -h\" para mostrar mais ajuda)\n"
+
+msgid ""
+"\n"
+"(some details hidden, use --verbose to show complete help)"
+msgstr ""
+"\n"
+"(alguns detalhes foram omitidos, use --verbose para mostrar a ajuda completa)"
 
 msgid "basic commands:"
 msgstr "comandos básicos:"
@@ -16463,25 +16923,40 @@
 "\n"
 "tópicos adicionais de ajuda:"
 
-msgid "use \"hg help\" for the full list of commands"
-msgstr "use \"hg help\" para a lista completa de comandos"
-
-msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details"
-msgstr "use \"hg help\" para a lista completa de comandos ou \"hg -v\" para detalhes"
-
-#, python-format
-msgid "use \"hg help %s\" to show the full help text"
-msgstr "use \"hg help %s\" para mostrar o texto completo de ajuda"
-
-#, python-format
-msgid "use \"hg -v help%s\" to show builtin aliases and global options"
-msgstr ""
-"use \"hg -v help%s\" para mostrar apelidos pré-definidos de comandos e "
-"opções globais"
-
-#, python-format
-msgid "use \"hg help -v %s\" to show more complete help"
-msgstr "use \"hg help -v %s\" para mostrar um texto de ajuda mais completo"
+msgid ""
+"\n"
+"(use \"hg help\" for the full list of commands)\n"
+msgstr ""
+"\n"
+"(use \"hg help\" para a lista completa de comandos)\n"
+
+msgid ""
+"\n"
+"(use \"hg help\" for the full list of commands or \"hg -v\" for details)\n"
+msgstr ""
+"\n"
+"(use \"hg help\" para a lista completa de comandos ou \"hg -v\" para detalhes)\n"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg help %s\" to show the full help text)\n"
+msgstr ""
+"\n"
+"(use \"hg help %s\" para mostrar o texto completo de ajuda)\n"
+
+#, python-format
+msgid ""
+"\n"
+"(use \"hg help -v%s\" to show built-in aliases and global options)\n"
+msgstr ""
+"\n"
+"(use \"hg help -v%s\" para mostrar apelidos pré-definidos de comandos e opções globais)\n"
+
+msgid "(some details hidden, use --verbose to show complete help)"
+msgstr ""
+"(alguns detalhes foram omitidos, use --verbose para mostrar o texto de ajuda"
+" completo)"
 
 #, python-format
 msgid ""
@@ -16498,9 +16973,10 @@
 msgid "%s extension - %s"
 msgstr "extensão %s - %s"
 
-msgid "use \"hg help extensions\" for information on enabling extensions\n"
-msgstr ""
-"use \"hg help extensions\" para informações sobre como habilitar extensões\n"
+msgid "(use \"hg help extensions\" for information on enabling extensions)\n"
+msgstr ""
+"(use \"hg help extensions\" para informações sobre como habilitar "
+"extensões)\n"
 
 #, python-format
 msgid "'%s' is provided by the following extension:"
@@ -16616,131 +17092,45 @@
 "mencionados abaixo, definições de caminhos anteriores sobrepõe\n"
 "definições de caminhos posteriores."
 
-msgid "| (All) ``<repo>/.hg/hgrc``"
-msgstr "| (Todos) ``<repo>/.hg/hgrc``"
-
-msgid ""
-"    Per-repository configuration options that only apply in a\n"
-"    particular repository. This file is not version-controlled, and\n"
-"    will not get transferred during a \"clone\" operation. Options in\n"
-"    this file override options in all other configuration files. On\n"
-"    Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
-"    belong to a trusted user or to a trusted group. See the documentation\n"
-"    for the ``[trusted]`` section below for more details."
-msgstr ""
-"    Configurações específicas do repositório <repo>. Este arquivo\n"
-"    não é versionado, e não é transferido durante uma operação\n"
-"    \"clone\". Opções neste arquivo sobrepõe opções em qualquer outro\n"
-"    arquivo de configuração. No Plan 9 e Unix, a maior parte deste arquivo\n"
-"    será ignorada se ele não pertencer a um usuário ou grupo\n"
-"    confiável; veja abaixo a documentação sobre a seção [trusted]\n"
-"    para maiores detalhes."
-
-msgid ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-msgstr ""
-"| (Plan 9) ``$home/lib/hgrc``\n"
-"| (Unix) ``$HOME/.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\.hgrc``\n"
-"| (Windows) ``%USERPROFILE%\\Mercurial.ini``\n"
-"| (Windows) ``%HOME%\\.hgrc``\n"
-"| (Windows) ``%HOME%\\Mercurial.ini``"
-
-msgid ""
-"    Per-user configuration file(s), for the user running Mercurial. On\n"
-"    Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
-"    files apply to all Mercurial commands executed by this user in any\n"
-"    directory. Options in these files override per-system and per-installation\n"
-"    options."
-msgstr ""
-"    Arquivos de configuração específicos do usuário que executa o Mercurial.\n"
-"    No Windows 9x, ``%HOME%`` é substituído por ``%APPDATA%``. Opções nestes\n"
-"    arquivos se aplicam a todos os comandos do Mercurial executados por este\n"
-"    usuário em qualquer diretório. Opções nestes arquivos sobrepõe opções\n"
-"    por sistema e por instalação."
-
-msgid ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
-msgstr ""
-"| (Plan 9) ``/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``/etc/mercurial/hgrc``\n"
-"| (Unix) ``/etc/mercurial/hgrc.d/*.rc``"
-
-msgid ""
-"    Per-system configuration files, for the system on which Mercurial\n"
-"    is running. Options in these files apply to all Mercurial commands\n"
-"    executed by any user in any directory. Options in these files\n"
-"    override per-installation options."
-msgstr ""
-"    Arquivos de configuração por sistema, específicos do sistema no qual\n"
-"    o Mercurial é executado. Opções nestes arquivos se aplicam a todos\n"
-"    os comandos do Mercurial executados por qualquer usuário em qualquer\n"
-"    diretório. Opções nestes arquivos sobrepõe opções por instalação."
-
-msgid ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
-msgstr ""
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc``\n"
-"| (Plan 9) ``<install-root>/lib/mercurial/hgrc.d/*.rc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc``\n"
-"| (Unix) ``<install-root>/etc/mercurial/hgrc.d/*.rc``"
-
-msgid ""
-"    Per-installation configuration files, searched for in the\n"
-"    directory where Mercurial is installed. ``<install-root>`` is the\n"
-"    parent directory of the **hg** executable (or symlink) being run. For\n"
-"    example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
-"    in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
-"    to all Mercurial commands executed by any user in any directory."
-msgstr ""
-"    Arquivos de configuração por instalação, procurados no diretório onde\n"
-"    o Mercurial está instalado. ``<install-root>`` é o diretório pai do\n"
-"    executável **hg** (ou link simbólico) executado.\n"
-"    Por exemplo, se instalado em ``/shared/tools/bin/hg``, o Mercurial\n"
-"    procurará em ``/shared/tools/etc/mercurial/hgrc``.\n"
-"    Opções nestes arquivos se aplicam a todos os comandos do Mercurial\n"
-"    executados por qualquer usuário em qualquer diretório."
-
-msgid ""
-"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-msgstr ""
-"| (Windows) ``<install-dir>\\Mercurial.ini`` **or**\n"
-"| (Windows) ``<install-dir>\\hgrc.d\\*.rc`` **or**\n"
-"| (Windows) ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``"
-
-msgid ""
-"    Per-installation/system configuration files, for the system on\n"
-"    which Mercurial is running. Options in these files apply to all\n"
-"    Mercurial commands executed by any user in any directory. Registry\n"
-"    keys contain PATH-like strings, every part of which must reference\n"
-"    a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
-"    be read.  Mercurial checks each of these locations in the specified\n"
-"    order until one or more configuration files are detected."
-msgstr ""
-"    Arquivos de configuração por instalação e sistema, para o sistema\n"
-"    no qual o Mercurial está instalado.\n"
-"    Opções nestes arquivos se aplicam a todos os comandos do Mercurial\n"
-"    executados por qualquer usuário em qualquer diretório.\n"
-"    As chaves do registro contém strings semelhantes ao PATH; cada parte\n"
-"    delas deve fazer referência a um arquivo ``Mercurial.ini`` ou a um\n"
-"    diretório do qual arquivos ``*.rc`` serão lidos.\n"
-"    O Mercurial verifica cada uma destas localizações na ordem\n"
-"    especificada até que um ou mais arquivos de configuração sejam\n"
-"    encontrados."
+msgid "  On Unix, the following files are consulted:"
+msgstr "  Em Unix, os seguintes arquivos são consultados:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``$HOME/.hgrc`` (per-user)\n"
+"  - ``<install-root>/etc/mercurial/hgrc`` (per-installation)\n"
+"  - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)\n"
+"  - ``/etc/mercurial/hgrc`` (per-system)\n"
+"  - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)"
+msgstr ""
+"  - ``<repo>/.hg/hgrc`` (por repositório)\n"
+"  - ``$HOME/.hgrc`` (por usuário)\n"
+"  - ``<install-root>/etc/mercurial/hgrc`` (por instalação)\n"
+"  - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (por instalação)\n"
+"  - ``/etc/mercurial/hgrc`` (por sistema)\n"
+"  - ``/etc/mercurial/hgrc.d/*.rc`` (por sistema)"
+
+msgid "  On Windows, the following files are consulted:"
+msgstr "  Em Windows, os seguintes arquivos são consultados:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``%USERPROFILE%\\.hgrc`` (per-user)\n"
+"  - ``%USERPROFILE%\\Mercurial.ini`` (per-user)\n"
+"  - ``%HOME%\\.hgrc`` (per-user)\n"
+"  - ``%HOME%\\Mercurial.ini`` (per-user)\n"
+"  - ``<install-dir>\\Mercurial.ini`` (per-installation)\n"
+"  - ``<install-dir>\\hgrc.d\\*.rc`` (per-installation)\n"
+"  - ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (per-installation)"
+msgstr ""
+"  - ``<repo>/.hg/hgrc`` (por repositório)\n"
+"  - ``%USERPROFILE%\\.hgrc`` (por usuário)\n"
+"  - ``%USERPROFILE%\\Mercurial.ini`` (por usuário)\n"
+"  - ``%HOME%\\.hgrc`` (por usuário)\n"
+"  - ``%HOME%\\Mercurial.ini`` (por usuário)\n"
+"  - ``<install-dir>\\Mercurial.ini`` (por instalação)\n"
+"  - ``<install-dir>\\hgrc.d\\*.rc`` (por instalação)\n"
+"  - ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial`` (por instalação)"
 
 msgid ""
 "   The registry key ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Mercurial``\n"
@@ -16749,6 +17139,103 @@
 "   A chave de registro ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Mercurial``\n"
 "   será usada ao rodar um Python 32 bits em um Windows 64 bits."
 
+msgid "  On Plan9, the following files are consulted:"
+msgstr "  Em Plan9, os seguintes arquvos são consultados:"
+
+msgid ""
+"  - ``<repo>/.hg/hgrc`` (per-repository)\n"
+"  - ``$home/lib/hgrc`` (per-user)\n"
+"  - ``<install-root>/lib/mercurial/hgrc`` (per-installation)\n"
+"  - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)\n"
+"  - ``/lib/mercurial/hgrc`` (per-system)\n"
+"  - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)"
+msgstr ""
+"  - ``<repo>/.hg/hgrc`` (por repositório)\n"
+"  - ``$home/lib/hgrc`` (por usuário)\n"
+"  - ``<install-root>/lib/mercurial/hgrc`` (por instalação)\n"
+"  - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (por instalação)\n"
+"  - ``/lib/mercurial/hgrc`` (por sistema)\n"
+"  - ``/lib/mercurial/hgrc.d/*.rc`` (por sistema)"
+
+msgid ""
+"Per-repository configuration options only apply in a\n"
+"particular repository. This file is not version-controlled, and\n"
+"will not get transferred during a \"clone\" operation. Options in\n"
+"this file override options in all other configuration files. On\n"
+"Plan 9 and Unix, most of this file will be ignored if it doesn't\n"
+"belong to a trusted user or to a trusted group. See the documentation\n"
+"for the ``[trusted]`` section below for more details."
+msgstr ""
+"Configurações específicas por repositório só se aplicam a um\n"
+"repositório em particular. Este arquivo\n"
+"não é versionado, e não é transferido durante uma operação\n"
+"\"clone\". Opções neste arquivo sobrepõem opções em qualquer outro\n"
+"arquivo de configuração. No Plan 9 e Unix, a maior parte deste arquivo\n"
+"será ignorada se ele não pertencer a um usuário ou grupo\n"
+"confiável; veja abaixo a documentação sobre a seção [trusted]\n"
+"para maiores detalhes."
+
+msgid ""
+"Per-user configuration file(s) are for the user running Mercurial. On\n"
+"Windows 9x, ``%HOME%`` is replaced by ``%APPDATA%``. Options in these\n"
+"files apply to all Mercurial commands executed by this user in any\n"
+"directory. Options in these files override per-system and per-installation\n"
+"options."
+msgstr ""
+"Arquivos de configuração por usuário são específicos do usuário que\n"
+"executa o Mercurial.\n"
+"No Windows 9x, ``%HOME%`` é substituído por ``%APPDATA%``. Opções nestes\n"
+"arquivos se aplicam a todos os comandos do Mercurial executados por este\n"
+"usuário em qualquer diretório. Opções nestes arquivos sobrepõe opções\n"
+"por sistema e por instalação."
+
+msgid ""
+"Per-installation configuration files are searched for in the\n"
+"directory where Mercurial is installed. ``<install-root>`` is the\n"
+"parent directory of the **hg** executable (or symlink) being run. For\n"
+"example, if installed in ``/shared/tools/bin/hg``, Mercurial will look\n"
+"in ``/shared/tools/etc/mercurial/hgrc``. Options in these files apply\n"
+"to all Mercurial commands executed by any user in any directory."
+msgstr ""
+"Arquivos de configuração por instalação são procurados no diretório onde\n"
+"o Mercurial está instalado. ``<install-root>`` é o diretório pai do\n"
+"executável **hg** (ou link simbólico) executado.\n"
+"Por exemplo, se instalado em ``/shared/tools/bin/hg``, o Mercurial\n"
+"procurará em ``/shared/tools/etc/mercurial/hgrc``.\n"
+"Opções nestes arquivos se aplicam a todos os comandos do Mercurial\n"
+"executados por qualquer usuário em qualquer diretório."
+
+msgid ""
+"Per-installation configuration files are for the system on\n"
+"which Mercurial is running. Options in these files apply to all\n"
+"Mercurial commands executed by any user in any directory. Registry\n"
+"keys contain PATH-like strings, every part of which must reference\n"
+"a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will\n"
+"be read.  Mercurial checks each of these locations in the specified\n"
+"order until one or more configuration files are detected."
+msgstr ""
+"Arquivos de configuração por instalação dizem respeito ao sistema\n"
+"no qual o Mercurial está instalado.\n"
+"Opções nestes arquivos se aplicam a todos os comandos do Mercurial\n"
+"executados por qualquer usuário em qualquer diretório.\n"
+"As chaves do registro contém strings semelhantes ao PATH; cada parte\n"
+"delas deve fazer referência a um arquivo ``Mercurial.ini`` ou a um\n"
+"diretório do qual arquivos ``*.rc`` serão lidos.\n"
+"O Mercurial verifica cada uma destas localizações na ordem\n"
+"especificada até que um ou mais arquivos de configuração sejam\n"
+"encontrados."
+
+msgid ""
+"Per-system configuration files are for the system on which Mercurial\n"
+"is running. Options in these files apply to all Mercurial commands\n"
+"executed by any user in any directory. Options in these files\n"
+"override per-installation options."
+msgstr ""
+"Arquivos de configuração por sistema são específicos do sistema no qual\n"
+"o Mercurial é executado. Opções nestes arquivos se aplicam a todos\n"
+"os comandos do Mercurial executados por qualquer usuário em qualquer\n"
+"diretório. Opções nestes arquivos sobrepõe opções por instalação."
+
 msgid ""
 "Syntax\n"
 "======"
@@ -17043,13 +17530,16 @@
 "Positional arguments like ``$1``, ``$2``, etc. in the alias definition\n"
 "expand to the command arguments. Unmatched arguments are\n"
 "removed. ``$0`` expands to the alias name and ``$@`` expands to all\n"
-"arguments separated by a space. These expansions happen before the\n"
-"command is passed to the shell."
+"arguments separated by a space. ``\"$@\"`` (with quotes) expands to all\n"
+"arguments quoted individually and separated by a space. These expansions\n"
+"happen before the command is passed to the shell."
 msgstr ""
 "Argumentos posicionais como ``$1``, ``$2``, etc. na definição\n"
 "do apelido expandem para argumentos da linha de comando. Argumentos\n"
 "em excesso são removidos. ``$0`` expande para o nome do apelido e\n"
 "``$@`` expande para todos os argumentos, separados por espaços.\n"
+"``\"$@\"`` (com aspas) expande para todos os argumentos,\n"
+"com aspas individuais e separados por um espaço.\n"
 "Estas expansões são realizadas antes de o comando ser passado\n"
 "para o shell."
 
@@ -17390,6 +17880,118 @@
 "- :hg:`transplant`"
 
 msgid ""
+"Configuring items below instead of ``changeset`` allows showing\n"
+"customized message only for specific actions, or showing different\n"
+"messages for each action."
+msgstr ""
+"A configuração dos itens abaixo ao invés de ``changeset`` permite\n"
+"exibir mensagens personalizadas apenas para ações específicas, ou\n"
+"mostrar mensagens diferentes para cada ação."
+
+msgid ""
+"- ``changeset.backout`` for :hg:`backout`\n"
+"- ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges\n"
+"- ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other\n"
+"- ``changeset.commit.normal.merge`` for :hg:`commit` on merges\n"
+"- ``changeset.commit.normal.normal`` for :hg:`commit` on other\n"
+"- ``changeset.fetch`` for :hg:`fetch` (impling merge commit)\n"
+"- ``changeset.gpg.sign`` for :hg:`sign`\n"
+"- ``changeset.graft`` for :hg:`graft`\n"
+"- ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`\n"
+"- ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`\n"
+"- ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`\n"
+"- ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`\n"
+"- ``changeset.import.bypass`` for :hg:`import --bypass`\n"
+"- ``changeset.import.normal.merge`` for :hg:`import` on merges\n"
+"- ``changeset.import.normal.normal`` for :hg:`import` on other\n"
+"- ``changeset.mq.qnew`` for :hg:`qnew`\n"
+"- ``changeset.mq.qfold`` for :hg:`qfold`\n"
+"- ``changeset.mq.qrefresh`` for :hg:`qrefresh`\n"
+"- ``changeset.rebase.collapse`` for :hg:`rebase --collapse`\n"
+"- ``changeset.rebase.merge`` for :hg:`rebase` on merges\n"
+"- ``changeset.rebase.normal`` for :hg:`rebase` on other\n"
+"- ``changeset.shelve.shelve`` for :hg:`shelve`\n"
+"- ``changeset.tag.add`` for :hg:`tag` without ``--remove``\n"
+"- ``changeset.tag.remove`` for :hg:`tag --remove`\n"
+"- ``changeset.transplant.merge`` for :hg:`transplant` on merges\n"
+"- ``changeset.transplant.normal`` for :hg:`transplant` on other"
+msgstr ""
+"- ``changeset.backout`` para :hg:`backout`\n"
+"- ``changeset.commit.amend.merge`` para :hg:`commit --amend` em mesclagens\n"
+"- ``changeset.commit.amend.normal`` para :hg:`commit --amend` nas outras\n"
+"- ``changeset.commit.normal.merge`` para :hg:`commit` em mesclagens\n"
+"- ``changeset.commit.normal.normal`` para :hg:`commit` nas outras\n"
+"- ``changeset.fetch`` para :hg:`fetch` (implica mesclagem)\n"
+"- ``changeset.gpg.sign`` para :hg:`sign`\n"
+"- ``changeset.graft`` para :hg:`graft`\n"
+"- ``changeset.histedit.edit`` para ``edit`` de :hg:`histedit`\n"
+"- ``changeset.histedit.fold`` para ``fold`` de :hg:`histedit`\n"
+"- ``changeset.histedit.mess`` para ``mess`` de :hg:`histedit`\n"
+"- ``changeset.histedit.pick`` para ``pick`` de :hg:`histedit`\n"
+"- ``changeset.import.bypass`` para :hg:`import --bypass`\n"
+"- ``changeset.import.normal.merge`` para :hg:`import` em mesclagens\n"
+"- ``changeset.import.normal.normal`` para :hg:`import` nas outras\n"
+"- ``changeset.mq.qnew`` para :hg:`qnew`\n"
+"- ``changeset.mq.qfold`` para :hg:`qfold`\n"
+"- ``changeset.mq.qrefresh`` para :hg:`qrefresh`\n"
+"- ``changeset.rebase.collapse`` para :hg:`rebase --collapse`\n"
+"- ``changeset.rebase.merge`` para :hg:`rebase` em mesclagens\n"
+"- ``changeset.rebase.normal`` para :hg:`rebase` nas outras\n"
+"- ``changeset.shelve.shelve`` para :hg:`shelve`\n"
+"- ``changeset.tag.add`` para :hg:`tag` sem ``--remove``\n"
+"- ``changeset.tag.remove`` para :hg:`tag --remove`\n"
+"- ``changeset.transplant.merge`` para :hg:`transplant` em mesclagens\n"
+"- ``changeset.transplant.normal`` para :hg:`transplant` nas outras"
+
+msgid ""
+"These dot-separated lists of names are treated as hierarchical ones.\n"
+"For example, ``changeset.tag.remove`` customizes the commit message\n"
+"only for :hg:`tag --remove`, but ``changeset.tag`` customizes the\n"
+"commit message for :hg:`tag` regardless of ``--remove`` option."
+msgstr ""
+"Essas listas de nomes separadas por pontos são tratadas de forma\n"
+"hierárquica.\n"
+"Por exemplo, ``changeset.tag.remove`` customiza a mensagem de\n"
+"consolidação apenas para :hg:`tag --remove`, mas ``changeset.tag``\n"
+"customiza a mensagem de consolidação para :hg:`tag` com ou sem\n"
+"a opção ``--remove``."
+
+msgid ""
+"At the external editor invocation for committing, corresponding\n"
+"dot-separated list of names without ``changeset.`` prefix\n"
+"(e.g. ``commit.normal.normal``) is in ``HGEDITFORM`` environment variable."
+msgstr ""
+"Na chamada do editor externo da consolidação, a lista de nomes\n"
+"separados por pontos sem o prefixo ``changeset.`` (por exemplo,\n"
+"``commit.normal.normal``) estará na variável de ambiente\n"
+"``HGEDITFORM``."
+
+msgid ""
+"In this section, items other than ``changeset`` can be referred from\n"
+"others. For example, the configuration to list committed files up\n"
+"below can be referred as ``{listupfiles}``::"
+msgstr ""
+"Nesta seção, itens diferentes de ``changeset`` podem ser referidos\n"
+"por outros.\n"
+"Por exemplo, a configuração para listar arquivos consolidados abaixo\n"
+"pode ser referida como ``{listupfiles}``::"
+
+msgid ""
+"    [committemplate]\n"
+"    listupfiles = {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"
+"    listupfiles = {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 ""
 "``decode/encode``\n"
 "-----------------"
 msgstr ""
@@ -17567,6 +18169,13 @@
 "    usa o formato estendido de diff do git"
 
 msgid ""
+"``nobinary``\n"
+"    Omit git binary patches."
+msgstr ""
+"``nobinary``\n"
+"    Omite patches binários do git."
+
+msgid ""
 "``nodates``\n"
 "    Don't include dates in diff headers."
 msgstr ""
@@ -18524,15 +19133,20 @@
 msgid ""
 "``premerge``\n"
 "  Attempt to run internal non-interactive 3-way merge tool before\n"
-"  launching external tool.  Options are ``true``, ``false``, or ``keep``\n"
-"  to leave markers in the file if the premerge fails.\n"
+"  launching external tool.  Options are ``true``, ``false``, ``keep`` or\n"
+"  ``keep-merge3``. The ``keep`` option will leave markers in the file if the\n"
+"  premerge fails. The ``keep-merge3`` will do the same but include information\n"
+"  about the base of the merge in the marker (see internal :merge3 in\n"
+"  :hg:`help merge-tools`).\n"
 "  Default: True"
 msgstr ""
 "``premerge``\n"
 "  Tenta executar a ferramenta interna não interativa de mesclagem de\n"
 "  3 vias antes de executar a ferramenta externa. As opções são\n"
-"  ``true``, ``false``, ou ``keep`` para deixar marcações no conteúdo\n"
-"  do arquivo se o premerge falhar.\n"
+"  ``true``, ``false``, ``keep`` para deixar marcações no conteúdo\n"
+"  do arquivo se o premerge falhar, ou ``keep-merge3`` para incluir\n"
+"  nas tais marcações informações sobre a base da mesclagem\n"
+"  (veja a ferramenta interna :merge3 em :hg:`help merge-tools`).\n"
 "  Padrão: True"
 
 msgid ""
@@ -20052,17 +20666,24 @@
 
 msgid ""
 "``style``\n"
-"    Which template map style to use."
+"    Which template map style to use. The available options are the names of\n"
+"    subdirectories in the HTML templates path. Default is ``paper``.\n"
+"    Example: ``monoblue``"
 msgstr ""
 "``style``\n"
-"    Estilo a ser usado para exibição."
+"    Qual estilo de mapa de modelo usar. As opções disponíveis são\n"
+"    os nomes dos subdiretórios no caminho de modelos HTML.\n"
+"    O padrão é ``paper``.\n"
+"    Exemplo: ``monoblue``"
 
 msgid ""
 "``templates``\n"
-"    Where to find the HTML templates. Default is install path."
+"    Where to find the HTML templates. The default path to the HTML templates\n"
+"    can be obtained from ``hg debuginstall``."
 msgstr ""
 "``templates``\n"
-"    Onde modelos HTML são encontrados. O padrão é o caminho de instalação."
+"    Onde modelos HTML são encontrados. O caminho padrão para os\n"
+"    modelos pode ser obtido com ``hg debuginstall``."
 
 msgid ""
 "``websub``\n"
@@ -20720,14 +21341,14 @@
 msgid "- Find text files that contain a string::"
 msgstr "- Encontra arquivos texto que contém uma string::"
 
-msgid "    hg locate \"set:grep(magic) and not binary()\""
-msgstr "    hg locate \"set:grep(magic) and not binary()\""
+msgid "    hg files \"set:grep(magic) and not binary()\""
+msgstr "    hg files \"set:grep(magic) and not binary()\""
 
 msgid "- Find C files in a non-standard encoding::"
 msgstr "- Encontra arquivos C em uma codificação não padrão::"
 
-msgid "    hg locate \"set:**.c and not encoding('UTF-8')\""
-msgstr "    hg locate \"set:**.c and not encoding('UTF-8')\""
+msgid "    hg files \"set:**.c and not encoding('UTF-8')\""
+msgstr "    hg files \"set:**.c and not encoding('UTF-8')\""
 
 msgid "- Revert copies of large binary files::"
 msgstr "- Reverte cópias de arquivos binários grandes::"
@@ -21153,6 +21774,14 @@
 "    de pais que uma revisão pode ter."
 
 msgid ""
+"Deprecated\n"
+"    Feature removed from documentation, but not scheduled for removal."
+msgstr ""
+"Obsoleto (Deprecated)\n"
+"    Funcionalidade removida da documentação, mas que não está\n"
+"    programada para ser removida."
+
+msgid ""
 "Default branch\n"
 "    See 'Branch, default'."
 msgstr ""
@@ -21244,6 +21873,14 @@
 "    Veja :hg:`help phases`."
 
 msgid ""
+"Experimental\n"
+"    Feature that may change or be removed at a later date."
+msgstr ""
+"Experimental\n"
+"    Funcionalidade que está sujeita a mudanças ou a ser removida\n"
+"    em um momento posterior."
+
+msgid ""
 "Graph\n"
 "    See DAG and :hg:`log --graph`."
 msgstr ""
@@ -22558,10 +23195,10 @@
 
 msgid ""
 "7. If the file to be merged is not binary and is not a symlink, then\n"
-"   ``internal:merge`` is used."
+"   internal ``:merge`` is used."
 msgstr ""
 "7. Se o arquivo a ser mesclado não for um link simbólico nem\n"
-"   um arquivo binário, ``internal:merge`` será usado."
+"   um arquivo binário, a ferramenta ``:merge`` interna será usada."
 
 msgid "8. The merge of the file fails and must be resolved before commit."
 msgstr ""
@@ -23696,6 +24333,9 @@
 msgid "- date(date[, fmt])"
 msgstr "- date(data[, formato])"
 
+msgid "- diff([includepattern [, excludepattern]])"
+msgstr "- diff([padrãodeinclusão [, padrãodeexclusão]])"
+
 msgid "- fill(text[, width])"
 msgstr "- fill(texto[, comprimento])"
 
@@ -24249,10 +24889,11 @@
 msgid "warning: tag %s conflicts with existing branch name\n"
 msgstr "aviso: a etiqueta %s conflita com um nome de ramo existente\n"
 
-msgid "working copy of .hgtags is changed (please commit .hgtags manually)"
-msgstr ""
-"a cópia de trabalho de .hgtags foi modificada (por favor consolide .hgtags "
-"manualmente)"
+msgid "working copy of .hgtags is changed"
+msgstr "a cópia de trabalho de .hgtags foi modificada"
+
+msgid "please commit .hgtags manually"
+msgstr "por favor consolide .hgtags manualmente"
 
 msgid "abandoned transaction found"
 msgstr "transação abandonada encontrada"
@@ -24450,14 +25091,14 @@
 msgstr "endereço local inválido: %s"
 
 #, python-format
+msgid "failed to remove %s from manifest"
+msgstr "falha ao remover %s do manifesto"
+
+#, python-format
 msgid "'\\n' and '\\r' disallowed in filenames: %r"
 msgstr "'\\n' e '\\r' proibidos em nomes de arquivos: %r"
 
 #, python-format
-msgid "failed to remove %s from manifest"
-msgstr "falha ao remover %s do manifesto"
-
-#, python-format
 msgid "invalid pattern (%s): %s"
 msgstr "padrão inválido (%s): %s"
 
@@ -24620,16 +25261,19 @@
 msgstr "Aviso!"
 
 #, python-format
-msgid "parsing obsolete marker: unknown version %r"
-msgstr "decodificando marcações de obsolescência: versão desconhecida %r"
-
-#, python-format
 msgid ""
 "parsing obsolete marker: metadata is too short, %d bytes expected, got %d"
 msgstr ""
 "decodificando marcações de obsolescência: metadados são curtos demais, %d "
 "bytes esperados, %d obtidos"
 
+msgid "cannot handle sha256 with old obsstore format"
+msgstr "não é possível lidar com sha256 com o formato obsstore antigo"
+
+#, python-format
+msgid "parsing obsolete marker: unknown version %r"
+msgstr "decodificando marcações de obsolescência: versão desconhecida %r"
+
 #, python-format
 msgid "in-marker cycle with %s"
 msgstr "ciclo nos marcadores com %s"
@@ -24646,6 +25290,13 @@
 msgid "unexpected old value for %r"
 msgstr "valor antigo inesperado para %r"
 
+msgid ""
+"'createmarkers' obsolete option must be enabled if other obsolete options "
+"are enabled"
+msgstr ""
+"a opção obsoleta 'createmarkers' deve ser habilitada se outras opções "
+"obsoletas forem habilitadas"
+
 #, python-format
 msgid "unexpected token: %s"
 msgstr "token inesperado: %s"
@@ -24857,6 +25508,9 @@
 msgid "index %s is corrupted"
 msgstr "índice %s corrompido"
 
+msgid "no node"
+msgstr "nenhum nó"
+
 msgid "ambiguous identifier"
 msgstr "identificador ambíguo"
 
@@ -25927,8 +26581,8 @@
 msgid "%s looks like a binary file."
 msgstr "%s parece um arquivo binário."
 
-msgid "can only specify two labels."
-msgstr "só pode especificar dois rótulos."
+msgid "can only specify three labels."
+msgstr "só pode especificar três rótulos."
 
 msgid "warning: conflicts during merge.\n"
 msgstr "atenção: conflitos durante a mesclagem.\n"
@@ -26107,23 +26761,11 @@
 
 #, python-format
 msgid ""
-" subrepository sources for %s differ\n"
-"use (l)ocal source (%s) or (r)emote source (%s)?\n"
-"$$ &Local $$ &Remote"
-msgstr ""
-" as origens do sub-repositório %s diferem\n"
-"usar origem (l)ocal (%s) ou (r)emota (%s)?\n"
-"$$ &Local $$ &Remota"
-
-#, python-format
-msgid ""
 " subrepository sources for %s differ (in checked out version)\n"
-"use (l)ocal source (%s) or (r)emote source (%s)?\n"
-"$$ &Local $$ &Remote"
+"use (l)ocal source (%s) or (r)emote source (%s)?$$ &Local $$ &Remote"
 msgstr ""
 " as origens do sub-repositório %s diferem (na versão do diretório de trabalho)\n"
-"usar origem (l)ocal (%s) ou (r)emota (%s)?\n"
-"$$ &Local $$ &Remota"
+"usar origem (l)ocal (%s) ou (r)emota (%s)?$$ &Local $$ &Remota"
 
 msgid "default path for subrepository not found"
 msgstr "o caminho padrão para o sub-repositório não foi encontrado"
@@ -26297,6 +26939,9 @@
 "    direita). Por exemple, \"foo/bar/baz\" se torna \"baz\"\n"
 "    e \"foo/bar//\" se torna \"bar\"."
 
+msgid ":count: List or text. Returns the length as an integer."
+msgstr ":count: Lista ou texto. Retorna o comprimento como um inteiro."
+
 msgid ""
 ":date: Date. Returns a date in a Unix date format, including the\n"
 "    timezone: \"Mon Sep 04 15:13:13 2006 0700\"."
@@ -26612,15 +27257,15 @@
 ":p1rev: Integer. The repository-local revision number of the changeset's\n"
 "    first parent, or -1 if the changeset has no parents."
 msgstr ""
-":p1rev: Inteiro. O número de revisão local do primeiro pai da revisão,     "
-"ou -1 se a revisão não tiver pais."
+":p1rev: Inteiro. O número de revisão local do primeiro pai da revisão,\n"
+"    ou -1 se a revisão não tiver pais."
 
 msgid ""
 ":p2rev: Integer. The repository-local revision number of the changeset's\n"
 "    second parent, or -1 if the changeset has no second parent."
 msgstr ""
-":p2rev: Inteiro. O número de revisão local do segundo pai da revisão,     ou"
-" -1 se a revisão não tiver um segundo pai."
+":p2rev: Inteiro. O número de revisão local do segundo pai da revisão,\n"
+"    ou -1 se a revisão não tiver um segundo pai."
 
 msgid ""
 ":p1node: String. The identification hash of the changeset's first parent,\n"
@@ -26687,15 +27332,23 @@
 msgid "filter %s expects one argument"
 msgstr "o filtro %s espera um argumento"
 
+#. i18n: "date" is a keyword
 msgid "date expects one or two arguments"
-msgstr "data espera um ou dois argumentos"
-
+msgstr "date espera um ou dois argumentos"
+
+#. i18n: "diff" is a keyword
+msgid "diff expects one, two or no arguments"
+msgstr "diff espera um, dois ou nenhum argumento"
+
+#. i18n: "fill" is a keyword
 msgid "fill expects one to four arguments"
 msgstr "fill espera de um a quatro argumentos"
 
+#. i18n: "fill" is a keyword
 msgid "fill expects an integer width"
 msgstr "fill espera um número inteiro"
 
+#. i18n: "pad" is a keyword
 msgid "pad() expects two to four arguments"
 msgstr "pad() espera de dois a quatro argumentos"
 
@@ -26731,9 +27384,11 @@
 msgid "rstdoc expects two arguments"
 msgstr "rstdoc espera dois argumentos"
 
+#. i18n: "shortest" is a keyword
 msgid "shortest() expects one or two arguments"
 msgstr "shortest() espera um ou dois argumentos"
 
+#. i18n: "strip" is a keyword
 msgid "strip expects one or two arguments"
 msgstr "strip espera um ou dois argumentos"
 
@@ -26801,6 +27456,9 @@
 msgid "couldn't read journal entry %r!\n"
 msgstr "não foi possível ler a entrada do jornal %r!\n"
 
+msgid "journal was created by a newer version of Mercurial"
+msgstr "o journal foi criado por uma versão mais nova do Mercurial"
+
 msgid "already have changeset "
 msgstr "já possui a revisão "
 
@@ -26881,6 +27539,19 @@
 msgstr "autenticação http: usuário %s, senha %s\n"
 
 #, python-format
+msgid "unknown digest type: %s"
+msgstr "tipo de digest desconhecido: %s"
+
+#, python-format
+msgid "size mismatch: expected %d, got %d"
+msgstr "tamanho inválido: esperado %d, obtido %d"
+
+#. i18n: first parameter is a digest name
+#, python-format
+msgid "%s mismatch: expected %s, got %s"
+msgstr "%s não bate: esperado %s, obtido %s"
+
+#, python-format
 msgid "command '%s' failed: %s"
 msgstr "falha ao executar o comando '%s' : %s"
 
@@ -27173,6 +27844,9 @@
 msgid "unpacked size is %s, %s expected"
 msgstr "o tamanho descompactado é %s, esperado %s"
 
+msgid "censored file data"
+msgstr "dados de arquivo censurados"
+
 #, python-format
 msgid "unpacking %s"
 msgstr "descompactando %s"
--- a/i18n/ru.po	Fri Oct 17 02:17:36 2014 -0700
+++ b/i18n/ru.po	Mon Nov 03 14:01:52 2014 -0600
@@ -180,7 +180,7 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2014-08-04 19:05+0400\n"
+"POT-Creation-Date: 2014-10-13 14:18+0400\n"
 "PO-Revision-Date: 2011-05-12 23:48+0400\n"
 "Last-Translator: Alexander Sauta <demosito@gmail.com>\n"
 "Language-Team: Russian\n"
@@ -4600,6 +4600,9 @@
 msgid "cannot edit immutable changeset: %s"
 msgstr "невозможно редактировать неизменяемый набор изменений: %s"
 
+msgid "no histedit in progress"
+msgstr "нет текущего редактирования истории"
+
 #, python-format
 msgid "malformed line \"%s\""
 msgstr "неверный формат строки \"%s\""
@@ -9574,14 +9577,14 @@
 "this changeset$$ &merge at this changeset$$ show &patch$$ &commit selected "
 "changesets$$ &quit and cancel transplant$$ &? (show this help)"
 msgstr ""
-# FIXME - run check-translations.py
-# "y: (&yes) пересадить этот набор изменений\n"
-# "n: (&no) пропустить этот набор изменений\n"
-# "m: (&merge) слить в этом наборе изменений\n"
-# "p: (&patch) показать патч\n"
-# "c: (&commit) зафиксировать выбранные наборы изменений\n"
-# "q: (&quit) отказаться от пересадки\n"
-# "?: (показать эту справку)"
+"применить набор изменений? [ynmpcq?]:$$\n"
+"y: (&yes) пересадить этот набор изменений$$\n"
+"n: (&no) пропустить этот набор изменений$$\n"
+"m: (&merge) слить на этом наборе изменений$$\n"
+"p: (&patch) показать патч$$\n"
+"c: (&commit) зафиксировать выбранные наборы изменений$$\n"
+"q: (&quit) отказаться от пересадки$$\n"
+"&?: (показать эту справку)"
 
 msgid "transplant changesets from REPO"
 msgstr "пересадить наборы изменений из ХРАНИЛИЩА"
@@ -10292,6 +10295,13 @@
 msgid "not a Mercurial patch"
 msgstr "не патч Mercurial"
 
+msgid ""
+"warning: import the patch as a normal revision\n"
+"(use --exact to import the patch as a merge)\n"
+msgstr ""
+"внимание: патч импортируется как обычная ревизия\n"
+"(используйте --exact чтобы импортитровать как ревизию слияния)\n"
+
 msgid "patch is damaged or loses information"
 msgstr "патч поврежден или в нем недостает данных"
 
@@ -11324,20 +11334,17 @@
 
 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 "
+"    The active bookmark is indicated with a '*'.\n"
+"    When a commit is made, the 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"
-"    будет передвигаться на новую ревизию. Обычный :hg:`update` также "
-"передвигает\n"
-"    активную закладку при возможности. Обновление на другую ревизию "
-"деактивирует\n"
-"    закладку."
+"    Создание или обновление на закладку помечает ее как 'активную'.\n"
+"    Активные закладки отображаются с символом '*'. При фиксации \n"
+"    будет передвигаться на новую ревизию. Обычный :hg:`update` также\n"
+"    активная закладка при возможности передвигает активную закладку.\n"
+"    Обновление на другую ревизию деактивирует закладку."
 
 msgid ""
 "    Bookmarks can be pushed and pulled between repositories (see\n"
@@ -12055,6 +12062,9 @@
 msgid "    See :hg:`help config` for more information about config files."
 msgstr "    См. :hg:`help config` для справки по файлам конфигурации."
 
+msgid "    Returns 0 on success, 1 if NAME does not exist."
+msgstr "    В случае успеха возвращает 0, 1 если ИМЯ не существует."
+
 msgid "    "
 msgstr "    "
 
@@ -12497,6 +12507,10 @@
 msgid "    With no arguments, displays the list of obsolescence markers."
 msgstr "    Без аргументов, показывает список маркеров устаревания."
 
+#, python-format
+msgid "bad obsmarker input: %s"
+msgstr "неверный ввод для obsmarker: %s"
+
 msgid "complete an entire path"
 msgstr "завершить весь патч"
 
@@ -13141,6 +13155,10 @@
 msgstr "пропускаю ревизию %s (уже перенесена на %s)\n"
 
 #, python-format
+msgid "skipping already grafted revision %s (%s also has unknown origin %s)\n"
+msgstr "пропускаю уже перенесенную ревизию %s (%s имеет также неизвестный источник %s)\n"
+
+#, python-format
 msgid "skipping already grafted revision %s (%s also has origin %d)\n"
 msgstr "пропускаю уже перенесенную ревизию %s (%s имеет также источник %d)\n"
 
@@ -13824,15 +13842,13 @@
 
 msgid ""
 "       for performance reasons, log FILE may omit duplicate changes\n"
-"       made on branches and will not show deletions. To see all\n"
-"       changes including duplicates and deletions, use the --removed\n"
-"       switch."
+"       made on branches and will not show removals or mode changes. To\n"
+"       see all such changes, use the --removed switch."
 msgstr ""
 "       из соображений производительности, в ФАЙЛе журнала могут\n"
 "       отсутствовать дублирующиеся изменения, сделанные на ветках,\n"
-"       а также там будут отсутствовать удаления. Чтобы увидеть все\n"
-"       изменения, включая дубликаты и удаления, используйте параметр\n"
-"       --removed."
+"       а также там будут отсутствовать удаления и изменения прав доступа.\n"
+"       Чтобы увидеть все эти изменения, используйте параметр --removed."
 
 msgid "      - changesets with full descriptions and file lists::"
 msgstr "      - наборы изменений с полными описаниями и списками файлов::"
@@ -13882,8 +13898,7 @@
 msgid "          hg log -T list"
 msgstr "          hg log -T list"
 
-# BUG
-msgid "      - check if a given changeset is included is a tagged release::"
+msgid "      - check if a given changeset is included in a tagged release::"
 msgstr ""
 "      - проверить, входит ли заданный набор изменений в помеченный релиз::"
 
@@ -15733,6 +15748,9 @@
 msgid "and %s others"
 msgstr "и %s других"
 
+msgid "remote has heads that are not known locally\n"
+msgstr "на отдаленной стороне есть головы, неизвестные локально\n"
+
 #, python-format
 msgid "remote has heads that are not known locally: %s\n"
 msgstr "на отдаленной стороне есть головы, неизвестные локально: %s\n"
@@ -23727,6 +23745,9 @@
 msgid "- label(label, expr)"
 msgstr "- label(метка, выражение)"
 
+msgid "- pad(text, width[, fillchar, right])"
+msgstr "- pad(текст, ширина[, символ-заполнитель, правый])"
+
 msgid "- revset(query[, formatargs])"
 msgstr "- revset(запрос[, формат])"
 
@@ -24639,6 +24660,10 @@
 "ошибка разбора маркера устаревшей ревизии: слишком малая длина метаданных,\n"
 "ожидалось %d байт, получено %d"
 
+#, python-format
+msgid "in-marker cycle with %s"
+msgstr "зацикливание на маркере %s"
+
 msgid "bad obsolescence marker detected: invalid successors nullid"
 msgstr "неверный маркер устаревшей ревизии: неверный nullid потомков"
 
@@ -27499,13 +27524,6 @@
 #~ "укомплектовать только наборы изменений с локальными номерами ревизий "
 #~ "большими, чем РЕВ, и не являющимися потомками РЕВизии (УСТАРЕЛО)"
 
-#~ msgid ""
-#~ "    Returns 0 on success, 1 if nothing to rebase.\n"
-#~ "    "
-#~ msgstr ""
-#~ "    В случае успеха возвращает 0, 1 если нечего перебазировать.\n"
-#~ "    "
-
 #~ msgid "apply changeset? [ynmpcq?]:"
 #~ msgstr "применить набор изменений? [ynmpcq?]:"
 
--- a/mercurial/bookmarks.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/bookmarks.py	Mon Nov 03 14:01:52 2014 -0600
@@ -271,6 +271,7 @@
     :diverge: diverge
     :differ:  changed, but changeset referred on src is unknown on dst
     :invalid: unknown on both side
+    :same:    same on both side
 
     Each elements of lists in result tuple is tuple "(bookmark name,
     changeset ID on source side, changeset ID on destination
@@ -299,12 +300,9 @@
     else:
         srcmarkset = set(srcmarks)
         dstmarkset = set(dstmarks)
-        bset = srcmarkset ^ dstmarkset
-        for b in srcmarkset & dstmarkset:
-            if srchex(srcmarks[b]) != dsthex(dstmarks[b]):
-                bset.add(b)
+        bset = srcmarkset | dstmarkset
 
-    results = ([], [], [], [], [], [], [])
+    results = ([], [], [], [], [], [], [], [])
     addsrc = results[0].append
     adddst = results[1].append
     advsrc = results[2].append
@@ -312,6 +310,7 @@
     diverge = results[4].append
     differ = results[5].append
     invalid = results[6].append
+    same = results[7].append
 
     for b in sorted(bset):
         if b not in srcmarks:
@@ -324,7 +323,9 @@
         else:
             scid = srchex(srcmarks[b])
             dcid = dsthex(dstmarks[b])
-            if scid in repo and dcid in repo:
+            if scid == dcid:
+                same((b, scid, dcid))
+            elif scid in repo and dcid in repo:
                 sctx = repo[scid]
                 dctx = repo[dcid]
                 if sctx.rev() < dctx.rev():
@@ -365,7 +366,7 @@
 def updatefromremote(ui, repo, remotemarks, path, trfunc, explicit=()):
     ui.debug("checking for updated bookmarks\n")
     localmarks = repo._bookmarks
-    (addsrc, adddst, advsrc, advdst, diverge, differ, invalid
+    (addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same
      ) = compare(repo, remotemarks, localmarks, dsthex=hex)
 
     status = ui.status
--- a/mercurial/bundle2.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/bundle2.py	Mon Nov 03 14:01:52 2014 -0600
@@ -145,6 +145,7 @@
 preserve.
 """
 
+import sys
 import util
 import struct
 import urllib
@@ -673,9 +674,22 @@
         yield _pack(_fpartheadersize, len(headerchunk))
         yield headerchunk
         ## payload
-        for chunk in self._payloadchunks():
-            yield _pack(_fpayloadsize, len(chunk))
-            yield chunk
+        try:
+            for chunk in self._payloadchunks():
+                yield _pack(_fpayloadsize, len(chunk))
+                yield chunk
+        except Exception, exc:
+            # backup exception data for later
+            exc_info = sys.exc_info()
+            msg = 'unexpected error: %s' % exc
+            interpart = bundlepart('b2x:error:abort', [('message', msg)])
+            interpart.id = 0
+            yield _pack(_fpayloadsize, -1)
+            for chunk in interpart.getchunks():
+                yield chunk
+            # abort current part payload
+            yield _pack(_fpayloadsize, 0)
+            raise exc_info[0], exc_info[1], exc_info[2]
         # end of payload
         yield _pack(_fpayloadsize, 0)
         self._generated = True
@@ -695,6 +709,61 @@
         elif len(self.data):
             yield self.data
 
+
+flaginterrupt = -1
+
+class interrupthandler(unpackermixin):
+    """read one part and process it with restricted capability
+
+    This allows to transmit exception raised on the producer size during part
+    iteration while the consumer is reading a part.
+
+    Part processed in this manner only have access to a ui object,"""
+
+    def __init__(self, ui, fp):
+        super(interrupthandler, self).__init__(fp)
+        self.ui = ui
+
+    def _readpartheader(self):
+        """reads a part header size and return the bytes blob
+
+        returns None if empty"""
+        headersize = self._unpack(_fpartheadersize)[0]
+        if headersize < 0:
+            raise error.BundleValueError('negative part header size: %i'
+                                         % headersize)
+        self.ui.debug('part header size: %i\n' % headersize)
+        if headersize:
+            return self._readexact(headersize)
+        return None
+
+    def __call__(self):
+        self.ui.debug('bundle2 stream interruption, looking for a part.\n')
+        headerblock = self._readpartheader()
+        if headerblock is None:
+            self.ui.debug('no part found during iterruption.\n')
+            return
+        part = unbundlepart(self.ui, headerblock, self._fp)
+        op = interruptoperation(self.ui)
+        _processpart(op, part)
+
+class interruptoperation(object):
+    """A limited operation to be use by part handler during interruption
+
+    It only have access to an ui object.
+    """
+
+    def __init__(self, ui):
+        self.ui = ui
+        self.reply = None
+
+    @property
+    def repo(self):
+        raise RuntimeError('no repo access from stream interruption')
+
+    def gettransaction(self):
+        raise TransactionUnavailable('no repo access from stream interruption')
+
 class unbundlepart(unpackermixin):
     """a bundle part read from a bundle"""
 
@@ -772,10 +841,15 @@
             payloadsize = self._unpack(_fpayloadsize)[0]
             self.ui.debug('payload chunk size: %i\n' % payloadsize)
             while payloadsize:
-                if payloadsize < 0:
-                    msg = 'negative payload chunk size: %i' % payloadsize
+                if payloadsize == flaginterrupt:
+                    # interruption detection, the handler will now read a
+                    # single part and process it.
+                    interrupthandler(self.ui, self._fp)()
+                elif payloadsize < 0:
+                    msg = 'negative payload chunk size: %i' %  payloadsize
                     raise error.BundleValueError(msg)
-                yield self._readexact(payloadsize)
+                else:
+                    yield self._readexact(payloadsize)
                 payloadsize = self._unpack(_fpayloadsize)[0]
                 self.ui.debug('payload chunk size: %i\n' % payloadsize)
         self._payloadstream = util.chunkbuffer(payloadchunks())
--- a/mercurial/changelog.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/changelog.py	Mon Nov 03 14:01:52 2014 -0600
@@ -172,10 +172,10 @@
     def headrevs(self):
         if self.filteredrevs:
             try:
-                return self.index.headrevs(self.filteredrevs)
-            # AttributeError covers non-c-extension environments.
-            # TypeError allows us work with old c extensions.
-            except (AttributeError, TypeError):
+                return self.index.headrevsfiltered(self.filteredrevs)
+            # AttributeError covers non-c-extension environments and
+            # old c extensions without filter handling.
+            except AttributeError:
                 return self._headrevs()
 
         return super(changelog, self).headrevs()
--- a/mercurial/cmdutil.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/cmdutil.py	Mon Nov 03 14:01:52 2014 -0600
@@ -2121,6 +2121,11 @@
                       scmutil.match(repo[None], pats, opts), opts)
 
 def amend(ui, repo, commitfunc, old, extra, pats, opts):
+    # amend will reuse the existing user if not specified, but the obsolete
+    # marker creation requires that the current user's name is specified.
+    if obsolete._enabled:
+        ui.username() # raise exception if username not set
+
     ui.note(_('amending changeset %s\n') % old)
     base = old.p1()
 
--- a/mercurial/commands.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/commands.py	Mon Nov 03 14:01:52 2014 -0600
@@ -853,7 +853,7 @@
     Bookmarks can be pushed and pulled between repositories (see
     :hg:`help push` and :hg:`help pull`). If a shared bookmark has
     diverged, a new 'divergent bookmark' of the form 'name@path' will
-    be created. Using :hg:'merge' will resolve the divergence.
+    be created. Using :hg:`merge` will resolve the divergence.
 
     A bookmark named '@' has the special property that :hg:`clone` will
     check it out by default if it exists.
@@ -2352,7 +2352,7 @@
          [('L', 'force-lock', None, _('free the store lock (DANGEROUS)')),
           ('W', 'force-wlock', None,
            _('free the working state lock (DANGEROUS)'))],
-         _(''))
+         _('[OPTION]...'))
 def debuglocks(ui, repo, **opts):
     """show or modify state of locks
 
@@ -3204,7 +3204,7 @@
 
           hg files "set:binary()"
 
-      - find files containing a regular expression:
+      - find files containing a regular expression::
 
           hg files "set:grep('bob')"
 
@@ -3212,7 +3212,7 @@
 
           hg files -0 | xargs -0 grep foo
 
-    See :hg:'help pattern' and :hg:'help revsets' for more information
+    See :hg:`help pattern` and :hg:`help filesets` for more information
     on specifying file patterns.
 
     Returns 0 if a match is found, 1 otherwise.
@@ -3837,7 +3837,7 @@
 
     section = None
     if name and '.' in name:
-        name, section = name.split('.')
+        name, section = name.split('.', 1)
 
     text = help.help_(ui, name, **opts)
 
@@ -4322,7 +4322,7 @@
     ('C', 'copies', None, _('show copied files')),
     ('k', 'keyword', [],
      _('do case-insensitive search for a given text'), _('TEXT')),
-    ('r', 'rev', [], _('show the specified revision or range'), _('REV')),
+    ('r', 'rev', [], _('show the specified revision or revset'), _('REV')),
     ('', 'removed', None, _('include revisions where files were removed')),
     ('m', 'only-merges', None, _('show only merges (DEPRECATED)')),
     ('u', 'user', [], _('revisions committed by user'), _('USER')),
--- a/mercurial/context.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/context.py	Mon Nov 03 14:01:52 2014 -0600
@@ -121,10 +121,11 @@
 
         modified, added, clean = [], [], []
         deleted, unknown, ignored = s[3], s[4], s[5]
+        deletedset = set(deleted)
         withflags = mf1.withflags() | mf2.withflags()
         for fn, mf2node in mf2.iteritems():
             if fn in mf1:
-                if (fn not in deleted and
+                if (fn not in deletedset and
                     ((fn in withflags and mf1.flags(fn) != mf2.flags(fn)) or
                      (mf1[fn] != mf2node and
                       (mf2node or self[fn].cmp(other[fn]))))):
@@ -132,7 +133,7 @@
                 elif listclean:
                     clean.append(fn)
                 del mf1[fn]
-            elif fn not in deleted:
+            elif fn not in deletedset:
                 added.append(fn)
         removed = mf1.keys()
         if removed:
@@ -952,7 +953,7 @@
             if self._repo.ui.config("censor", "policy", "abort") == "ignore":
                 return ""
             raise util.Abort(_("censored node: %s") % short(self._filenode),
-                             hint="set censor.policy to ignore errors")
+                             hint=_("set censor.policy to ignore errors"))
 
     def size(self):
         return self._filelog.size(self._filerev)
@@ -1499,13 +1500,9 @@
                listclean=False, listunknown=False, listsubrepos=False):
         # yet to be determined: what to do if 'other' is a 'workingctx' or a
         # 'memctx'?
-        s = super(workingctx, self).status(other, match, listignored, listclean,
-                                           listunknown, listsubrepos)
-        # calling 'super' subtly reveresed the contexts, so we flip the results
-        # (s[1] is 'added' and s[2] is 'removed')
-        s = list(s)
-        s[1], s[2] = s[2], s[1]
-        return scmutil.status(*s)
+        return super(workingctx, self).status(other, match, listignored,
+                                              listclean, listunknown,
+                                              listsubrepos)
 
 class committablefilectx(basefilectx):
     """A committablefilectx provides common functionality for a file context
--- a/mercurial/copies.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/copies.py	Mon Nov 03 14:01:52 2014 -0600
@@ -19,9 +19,15 @@
     return f[:s]
 
 def _findlimit(repo, a, b):
-    """Find the earliest revision that's an ancestor of a or b but not both,
+    """
+    Find the last revision that needs to be checked to ensure that a full
+    transitive closure for file copies can be properly calculated.
+    Generally, this means finding the earliest revision number that's an
+    ancestor of a or b but not both, except when a or b is a direct descendent
+    of the other, in which case we can return the minimum revnum of a and b.
     None if no such revision exists.
     """
+
     # basic idea:
     # - mark a and b with different sides
     # - if a parent's children are all on the same side, the parent is
@@ -73,7 +79,29 @@
 
     if not hascommonancestor:
         return None
-    return limit
+
+    # Consider the following flow (see test-commit-amend.t under issue4405):
+    # 1/ File 'a0' committed
+    # 2/ File renamed from 'a0' to 'a1' in a new commit (call it 'a1')
+    # 3/ Move back to first commit
+    # 4/ Create a new commit via revert to contents of 'a1' (call it 'a1-amend')
+    # 5/ Rename file from 'a1' to 'a2' and commit --amend 'a1-msg'
+    #
+    # During the amend in step five, we will be in this state:
+    #
+    # @  3 temporary amend commit for a1-amend
+    # |
+    # o  2 a1-amend
+    # |
+    # | o  1 a1
+    # |/
+    # o  0 a0
+    #
+    # When findlimit is called, a and b are revs 3 and 0, so limit will be 2,
+    # yet the filelog has the copy information in rev 1 and we will not look
+    # back far enough unless we also look at the a and b as candidates.
+    # This only occurs when a is a descendent of b or visa-versa.
+    return min(limit, a, b)
 
 def _chain(src, dst, a, b):
     '''chain two sets of copies a->b'''
--- a/mercurial/exchange.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/exchange.py	Mon Nov 03 14:01:52 2014 -0600
@@ -333,7 +333,7 @@
     explicit = set(pushop.bookmarks)
 
     comp = bookmod.compare(repo, repo._bookmarks, remotebookmark, srchex=hex)
-    addsrc, adddst, advsrc, advdst, diverge, differ, invalid = comp
+    addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = comp
     for b, scid, dcid in advsrc:
         if b in explicit:
             explicit.remove(b)
@@ -355,6 +355,10 @@
             explicit.remove(b)
             # treat as "deleted locally"
             pushop.outbookmarks.append((b, dcid, ''))
+    # identical bookmarks shouldn't get reported
+    for b, scid, dcid in same:
+        if b in explicit:
+            explicit.remove(b)
 
     if explicit:
         explicit = sorted(explicit)
--- a/mercurial/fileset.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/fileset.py	Mon Nov 03 14:01:52 2014 -0600
@@ -251,6 +251,7 @@
     """``hgignore()``
     File that matches the active .hgignore pattern.
     """
+    # i18n: "hgignore" is a keyword
     getargs(x, 0, 0, _("hgignore takes no arguments"))
     ignore = mctx.ctx._repo.dirstate._ignore
     return [f for f in mctx.subset if ignore(f)]
@@ -388,6 +389,7 @@
     ctx = mctx.ctx
     sstate = sorted(ctx.substate)
     if x:
+        # i18n: "subrepo" is a keyword
         pat = getstring(x, _("subrepo requires a pattern or no arguments"))
 
         import match as matchmod # avoid circular import issues
--- a/mercurial/help/config.txt	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/help/config.txt	Mon Nov 03 14:01:52 2014 -0600
@@ -403,7 +403,7 @@
 
 Configuring items below instead of ``changeset`` allows showing
 customized message only for specific actions, or showing different
-messages for each actions.
+messages for each action.
 
 - ``changeset.backout`` for :hg:`backout`
 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
@@ -982,7 +982,8 @@
   launching external tool.  Options are ``true``, ``false``, ``keep`` or
   ``keep-merge3``. The ``keep`` option will leave markers in the file if the
   premerge fails. The ``keep-merge3`` will do the same but include information
-  about the base of the merge in the marker (see internal:merge3).
+  about the base of the merge in the marker (see internal :merge3 in
+  :hg:`help merge-tools`).
   Default: True
 
 ``binary``
@@ -1381,7 +1382,7 @@
     remote command to use for clone/push/pull operations. Default is ``hg``.
 
 ``reportoldssl``
-    Warn if an SSL certificate is unable to be due to using Python
+    Warn if an SSL certificate is unable to be used due to using Python
     2.5 or earlier. True or False. Default is True.
 
 ``report_untrusted``
--- a/mercurial/help/filesets.txt	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/help/filesets.txt	Mon Nov 03 14:01:52 2014 -0600
@@ -48,11 +48,11 @@
 
 - Find text files that contain a string::
 
-    hg locate "set:grep(magic) and not binary()"
+    hg files "set:grep(magic) and not binary()"
 
 - Find C files in a non-standard encoding::
 
-    hg locate "set:**.c and not encoding('UTF-8')"
+    hg files "set:**.c and not encoding('UTF-8')"
 
 - Revert copies of large binary files::
 
--- a/mercurial/hgweb/server.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/hgweb/server.py	Mon Nov 03 14:01:52 2014 -0600
@@ -208,7 +208,7 @@
             OpenSSL.SSL.Context
         except ImportError:
             raise util.Abort(_("SSL support is unavailable"))
-        ctx = OpenSSL.SSL.Context(OpenSSL.SSL.SSLv23_METHOD)
+        ctx = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
         ctx.use_privatekey_file(ssl_cert)
         ctx.use_certificate_file(ssl_cert)
         sock = socket.socket(httpserver.address_family, httpserver.socket_type)
@@ -249,8 +249,9 @@
             ssl.wrap_socket
         except ImportError:
             raise util.Abort(_("SSL support is unavailable"))
-        httpserver.socket = ssl.wrap_socket(httpserver.socket, server_side=True,
-            certfile=ssl_cert, ssl_version=ssl.PROTOCOL_SSLv23)
+        httpserver.socket = ssl.wrap_socket(
+            httpserver.socket, server_side=True,
+            certfile=ssl_cert, ssl_version=ssl.PROTOCOL_TLSv1)
 
     def setup(self):
         self.connection = self.request
--- a/mercurial/httppeer.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/httppeer.py	Mon Nov 03 14:01:52 2014 -0600
@@ -214,6 +214,7 @@
 
     def _calltwowaystream(self, cmd, fp, **args):
         fh = None
+        fp_ = None
         filename = None
         try:
             # dump bundle to disk
@@ -225,10 +226,12 @@
                 d = fp.read(4096)
             fh.close()
             # start http push
-            fp = httpconnection.httpsendfile(self.ui, filename, "rb")
+            fp_ = httpconnection.httpsendfile(self.ui, filename, "rb")
             headers = {'Content-Type': 'application/mercurial-0.1'}
-            return self._callstream(cmd, data=fp, headers=headers, **args)
+            return self._callstream(cmd, data=fp_, headers=headers, **args)
         finally:
+            if fp_ is not None:
+                fp_.close()
             if fh is not None:
                 fh.close()
                 os.unlink(filename)
--- a/mercurial/localrepo.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/localrepo.py	Mon Nov 03 14:01:52 2014 -0600
@@ -1370,7 +1370,11 @@
             wlock.release()
 
         def commithook(node=hex(ret), parent1=hookp1, parent2=hookp2):
-            self.hook("commit", node=node, parent1=parent1, parent2=parent2)
+            # hack for command that use a temporary commit (eg: histedit)
+            # temporary commit got stripped before hook release
+            if node in self:
+                self.hook("commit", node=node, parent1=parent1,
+                          parent2=parent2)
         self._afterlock(commithook)
         return ret
 
@@ -1680,15 +1684,22 @@
 
             if rbranchmap:
                 rbheads = []
+                closed = []
                 for bheads in rbranchmap.itervalues():
                     rbheads.extend(bheads)
+                    for h in bheads:
+                        r = self.changelog.rev(h)
+                        b, c = self.changelog.branchinfo(r)
+                        if c:
+                            closed.append(h)
 
                 if rbheads:
                     rtiprev = max((int(self.changelog.rev(node))
                             for node in rbheads))
                     cache = branchmap.branchcache(rbranchmap,
                                                   self[rtiprev].node(),
-                                                  rtiprev)
+                                                  rtiprev,
+                                                  closednodes=closed)
                     # Try to stick it as low as possible
                     # filter above served are unlikely to be fetch from a clone
                     for candidate in ('base', 'immutable', 'served'):
@@ -1724,14 +1735,15 @@
         if stream and not heads:
             # 'stream' means remote revlog format is revlogv1 only
             if remote.capable('stream'):
-                return self.stream_in(remote, set(('revlogv1',)))
-            # otherwise, 'streamreqs' contains the remote revlog format
-            streamreqs = remote.capable('streamreqs')
-            if streamreqs:
-                streamreqs = set(streamreqs.split(','))
-                # if we support it, stream in and adjust our requirements
-                if not streamreqs - self.supportedformats:
-                    return self.stream_in(remote, streamreqs)
+                self.stream_in(remote, set(('revlogv1',)))
+            else:
+                # otherwise, 'streamreqs' contains the remote revlog format
+                streamreqs = remote.capable('streamreqs')
+                if streamreqs:
+                    streamreqs = set(streamreqs.split(','))
+                    # if we support it, stream in and adjust our requirements
+                    if not streamreqs - self.supportedformats:
+                        self.stream_in(remote, streamreqs)
 
         quiet = self.ui.backupconfig('ui', 'quietbookmarkmove')
         try:
--- a/mercurial/parsers.c	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/parsers.c	Mon Nov 03 14:01:52 2014 -0600
@@ -873,12 +873,13 @@
 	return newlist;
 }
 
-static int check_filter(PyObject *filter, Py_ssize_t arg) {
+/* arg should be Py_ssize_t but Python 2.4 do not support the n format */
+static int check_filter(PyObject *filter, unsigned long arg) {
 	if (filter) {
 		PyObject *arglist, *result;
 		int isfiltered;
 
-		arglist = Py_BuildValue("(n)", arg);
+		arglist = Py_BuildValue("(k)", arg);
 		if (!arglist) {
 			return -1;
 		}
@@ -2108,7 +2109,9 @@
 	{"get", (PyCFunction)index_m_get, METH_VARARGS,
 	 "get an index entry"},
 	{"headrevs", (PyCFunction)index_headrevs, METH_VARARGS,
-	 "get head revisions"},
+	 "get head revisions"}, /* Can do filtering since 3.2 */
+	{"headrevsfiltered", (PyCFunction)index_headrevs, METH_VARARGS,
+	 "get filtered head revisions"}, /* Can always do filtering */
 	{"insert", (PyCFunction)index_insert, METH_VARARGS,
 	 "insert an index entry"},
 	{"partialmatch", (PyCFunction)index_partialmatch, METH_VARARGS,
--- a/mercurial/revset.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/revset.py	Mon Nov 03 14:01:52 2014 -0600
@@ -526,14 +526,15 @@
 def checkstatus(repo, subset, pat, field):
     hasset = matchmod.patkind(pat) == 'set'
 
+    mcache = [None]
     def matches(x):
-        m = None
-        fname = None
         c = repo[x]
-        if not m or hasset:
-            m = matchmod.match(repo.root, repo.getcwd(), [pat], ctx=c)
-            if not m.anypats() and len(m.files()) == 1:
-                fname = m.files()[0]
+        if not mcache[0] or hasset:
+            mcache[0] = matchmod.match(repo.root, repo.getcwd(), [pat], ctx=c)
+        m = mcache[0]
+        fname = None
+        if not m.anypats() and len(m.files()) == 1:
+            fname = m.files()[0]
         if fname is not None:
             if fname not in c.files():
                 return False
@@ -899,7 +900,6 @@
     # i18n: "_matchfiles" is a keyword
     l = getargs(x, 1, -1, _("_matchfiles requires at least one argument"))
     pats, inc, exc = [], [], []
-    hasset = False
     rev, default = None, None
     for arg in l:
         # i18n: "_matchfiles" is a keyword
@@ -926,21 +926,14 @@
         else:
             # i18n: "_matchfiles" is a keyword
             raise error.ParseError(_('invalid _matchfiles prefix: %s') % prefix)
-        if not hasset and matchmod.patkind(value) == 'set':
-            hasset = True
     if not default:
         default = 'glob'
 
+    m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
+                       exclude=exc, ctx=repo[rev], default=default)
+
     def matches(x):
-        m = None
-        c = repo[x]
-        if not m or (hasset and rev is None):
-            ctx = c
-            if rev is not None:
-                ctx = repo[rev or None]
-            m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
-                               exclude=exc, ctx=ctx, default=default)
-        for f in c.files():
+        for f in repo[x].files():
             if m(f):
                 return True
         return False
@@ -1359,6 +1352,8 @@
     except (TypeError, ValueError):
         # i18n: "rev" is a keyword
         raise error.ParseError(_("rev expects a number"))
+    if l not in fullreposet(repo):
+        return baseset()
     return subset & baseset([l])
 
 def matching(repo, subset, x):
@@ -2506,7 +2501,7 @@
         return len(self._list)
 
     def __nonzero__(self):
-        return bool(self._r1 or self._r2)
+        return bool(self._r1) or bool(self._r2)
 
     @util.propertycache
     def _list(self):
@@ -2647,14 +2642,15 @@
             self._ascending = not self._ascending
 
     def first(self):
-        if self:
-            return self._list.first()
+        for x in self:
+            return x
         return None
 
     def last(self):
-        if self:
-            return self._list.last()
-        return None
+        self.reverse()
+        val = self.first()
+        self.reverse()
+        return val
 
 class generatorset(abstractsmartset):
     """Wrap a generator for lazy iteration
--- a/mercurial/setdiscovery.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/setdiscovery.py	Mon Nov 03 14:01:52 2014 -0600
@@ -105,14 +105,19 @@
     # update from roots
     _updatesample(dag.inverse(), nodes, sample, always)
     assert sample
-    if len(sample) > desiredlen:
-        sample = set(random.sample(sample, desiredlen))
-    elif len(sample) < desiredlen:
+    sample = _limitsample(sample, desiredlen)
+    if len(sample) < desiredlen:
         more = desiredlen - len(sample)
         sample.update(random.sample(list(nodes - sample - always), more))
     sample.update(always)
     return sample
 
+def _limitsample(sample, desiredlen):
+    """return a random subset of sample of at most desiredlen item"""
+    if len(sample) > desiredlen:
+        sample = set(random.sample(sample, desiredlen))
+    return sample
+
 def findcommonheads(ui, local, remote,
                     initialsamplesize=100,
                     fullsamplesize=200,
@@ -128,7 +133,7 @@
     ui.debug("query 1; heads\n")
     roundtrips += 1
     ownheads = dag.heads()
-    sample = ownheads
+    sample = _limitsample(ownheads, initialsamplesize)
     if remote.local():
         # stopgap until we have a proper localpeer that supports batch()
         srvheadhashes = remote.heads()
@@ -198,15 +203,19 @@
         if full:
             ui.note(_("sampling from both directions\n"))
             sample = _takefullsample(dag, undecided, size=fullsamplesize)
+            targetsize = fullsamplesize
         elif common:
             # use cheapish initial sample
             ui.debug("taking initial sample\n")
             sample = _takefullsample(dag, undecided, size=fullsamplesize)
+            targetsize = fullsamplesize
         else:
             # use even cheaper initial sample
             ui.debug("taking quick initial sample\n")
             sample = _takequicksample(dag, undecided, size=initialsamplesize,
                                       initial=True)
+            targetsize = initialsamplesize
+        sample = _limitsample(sample, targetsize)
 
         roundtrips += 1
         ui.progress(_('searching'), roundtrips, unit=_('queries'))
--- a/mercurial/sslutil.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/sslutil.py	Mon Nov 03 14:01:52 2014 -0600
@@ -14,7 +14,6 @@
     # avoid using deprecated/broken FakeSocket in python 2.6
     import ssl
     CERT_REQUIRED = ssl.CERT_REQUIRED
-    PROTOCOL_SSLv23 = ssl.PROTOCOL_SSLv23
     PROTOCOL_TLSv1 = ssl.PROTOCOL_TLSv1
     def ssl_wrap_socket(sock, keyfile, certfile, ssl_version=PROTOCOL_TLSv1,
                 cert_reqs=ssl.CERT_NONE, ca_certs=None):
@@ -29,7 +28,6 @@
 except ImportError:
     CERT_REQUIRED = 2
 
-    PROTOCOL_SSLv23 = 2
     PROTOCOL_TLSv1 = 3
 
     import socket, httplib
@@ -103,12 +101,7 @@
             exe.startswith('/system/library/frameworks/python.framework/'))
 
 def sslkwargs(ui, host):
-    forcetls = ui.configbool('ui', 'tls', default=True)
-    if forcetls:
-        ssl_version = PROTOCOL_TLSv1
-    else:
-        ssl_version = PROTOCOL_SSLv23
-    kws = {'ssl_version': ssl_version,
+    kws = {'ssl_version': PROTOCOL_TLSv1,
            }
     hostfingerprint = ui.config('hostfingerprints', host)
     if hostfingerprint:
--- a/mercurial/templater.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/templater.py	Mon Nov 03 14:01:52 2014 -0600
@@ -217,6 +217,7 @@
 
 def date(context, mapping, args):
     if not (1 <= len(args) <= 2):
+        # i18n: "date" is a keyword
         raise error.ParseError(_("date expects one or two arguments"))
 
     date = args[0][0](context, mapping, args[0][1])
@@ -244,6 +245,7 @@
 
 def fill(context, mapping, args):
     if not (1 <= len(args) <= 4):
+        # i18n: "fill" is a keyword
         raise error.ParseError(_("fill expects one to four arguments"))
 
     text = stringify(args[0][0](context, mapping, args[0][1]))
@@ -254,6 +256,7 @@
         try:
             width = int(stringify(args[1][0](context, mapping, args[1][1])))
         except ValueError:
+            # i18n: "fill" is a keyword
             raise error.ParseError(_("fill expects an integer width"))
         try:
             initindent = stringify(_evalifliteral(args[2], context, mapping))
@@ -267,6 +270,7 @@
     """usage: pad(text, width, fillchar=' ', right=False)
     """
     if not (2 <= len(args) <= 4):
+        # i18n: "pad" is a keyword
         raise error.ParseError(_("pad() expects two to four arguments"))
 
     width = int(args[1][1])
@@ -422,6 +426,7 @@
     """usage: shortest(node, minlength=4)
     """
     if not (1 <= len(args) <= 2):
+        # i18n: "shortest" is a keyword
         raise error.ParseError(_("shortest() expects one or two arguments"))
 
     node = stringify(args[0][0](context, mapping, args[0][1]))
@@ -471,6 +476,7 @@
 
 def strip(context, mapping, args):
     if not (1 <= len(args) <= 2):
+        # i18n: "strip" is a keyword
         raise error.ParseError(_("strip expects one or two arguments"))
 
     text = stringify(args[0][0](context, mapping, args[0][1]))
--- a/mercurial/transaction.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/transaction.py	Mon Nov 03 14:01:52 2014 -0600
@@ -15,6 +15,8 @@
 import errno
 import error, util
 
+version = 1
+
 def active(func):
     def _active(self, *args, **kwds):
         if self.count == 0:
@@ -92,6 +94,7 @@
         self.backupjournal = "%s.backupfiles" % journal
         self.file = opener.open(self.journal, "w")
         self.backupsfile = opener.open(self.backupjournal, 'w')
+        self.backupsfile.write('%d\n' % version)
         if createmode is not None:
             opener.chmod(self.journal, createmode & 0666)
             opener.chmod(self.backupjournal, createmode & 0666)
@@ -125,7 +128,7 @@
         self.file.write(d)
         self.file.flush()
 
-        d = ''.join(['%s\0%s\0' % (f, b) for f, b in backups])
+        d = ''.join(['%s\0%s\n' % (f, b) for f, b in backups])
         self.backupsfile.write(d)
         self.backupsfile.flush()
 
@@ -174,7 +177,7 @@
 
         self.backupentries.append((file, backupfile, None))
         self.backupmap[file] = len(self.backupentries) - 1
-        self.backupsfile.write("%s\0%s\0" % (file, backupfile))
+        self.backupsfile.write("%s\0%s\n" % (file, backupfile))
         self.backupsfile.flush()
 
     @active
@@ -202,6 +205,26 @@
         assert vfs is None or filenames == ('bookmarks',)
         self._filegenerators[genid] = (order, filenames, genfunc, vfs)
 
+    def _generatefiles(self):
+        # write files registered for generation
+        for entry in sorted(self._filegenerators.values()):
+            order, filenames, genfunc, vfs = entry
+            if vfs is None:
+                vfs = self.opener
+            files = []
+            try:
+                for name in filenames:
+                    # Some files are already backed up when creating the
+                    # localrepo. Until this is properly fixed we disable the
+                    # backup for them.
+                    if name not in ('phaseroots', 'bookmarks'):
+                        self.addbackup(name)
+                    files.append(vfs(name, 'w', atomictemp=True))
+                genfunc(*files)
+            finally:
+                for f in files:
+                    f.close()
+
     @active
     def find(self, file):
         if file in self.map:
@@ -243,26 +266,8 @@
     @active
     def close(self):
         '''commit the transaction'''
-        # write files registered for generation
-        for entry in sorted(self._filegenerators.values()):
-            order, filenames, genfunc, vfs = entry
-            if vfs is None:
-                vfs = self.opener
-            files = []
-            try:
-                for name in filenames:
-                    # Some files are already backed up when creating the
-                    # localrepo. Until this is properly fixed we disable the
-                    # backup for them.
-                    if name not in ('phaseroots', 'bookmarks'):
-                        self.addbackup(name)
-                    files.append(vfs(name, 'w', atomictemp=True))
-                genfunc(*files)
-            finally:
-                for f in files:
-                    f.close()
-
         if self.count == 1 and self.onclose is not None:
+            self._generatefiles()
             self.onclose()
 
         self.count -= 1
@@ -346,11 +351,18 @@
     backupjournal = "%s.backupfiles" % file
     if opener.exists(backupjournal):
         fp = opener.open(backupjournal)
-        data = fp.read()
-        if len(data) > 0:
-            parts = data.split('\0')
-            for i in xrange(0, len(parts), 2):
-                f, b = parts[i:i + 1]
-                backupentries.append((f, b, None))
+        lines = fp.readlines()
+        if lines:
+            ver = lines[0][:-1]
+            if ver == str(version):
+                for line in lines[1:]:
+                    if line:
+                        # Shave off the trailing newline
+                        line = line[:-1]
+                        f, b = line.split('\0')
+                        backupentries.append((f, b, None))
+            else:
+                report(_("journal was created by a newer version of "
+                         "Mercurial"))
 
     _playback(file, report, opener, entries, backupentries)
--- a/mercurial/ui.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/ui.py	Mon Nov 03 14:01:52 2014 -0600
@@ -711,11 +711,7 @@
             r = self._readline(self.label(msg, 'ui.prompt'))
             if not r:
                 r = default
-            # sometimes self.interactive disagrees with isatty,
-            # show response provided on stdin when simulating
-            # but commandserver
-            if (not util.isatty(self.fin)
-                and not self.configbool('ui', 'nontty')):
+            if self.configbool('ui', 'promptecho'):
                 self.write(r, "\n")
             return r
         except EOFError:
--- a/mercurial/util.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/mercurial/util.py	Mon Nov 03 14:01:52 2014 -0600
@@ -211,6 +211,7 @@
                 (self._size, self._got))
         for k, v in self._digests.items():
             if v != self._digester[k]:
+                # i18n: first parameter is a digest name
                 raise Abort(_('%s mismatch: expected %s, got %s') %
                     (k, v, self._digester[k]))
 
@@ -898,11 +899,8 @@
 
     The root should be normcase-ed, too.
     '''
-    def find(p, contents):
-        for n in contents:
-            if normcase(n) == p:
-                return n
-        return None
+    def _makefspathcacheentry(dir):
+        return dict((normcase(n), n) for n in os.listdir(dir))
 
     seps = os.sep
     if os.altsep:
@@ -918,16 +916,15 @@
             continue
 
         if dir not in _fspathcache:
-            _fspathcache[dir] = os.listdir(dir)
+            _fspathcache[dir] = _makefspathcacheentry(dir)
         contents = _fspathcache[dir]
 
-        found = find(part, contents)
+        found = contents.get(part)
         if not found:
             # retry "once per directory" per "dirstate.walk" which
             # may take place for each patches of "hg qpush", for example
-            contents = os.listdir(dir)
-            _fspathcache[dir] = contents
-            found = find(part, contents)
+            _fspathcache[dir] = contents = _makefspathcacheentry(dir)
+            found = contents.get(part)
 
         result.append(found or part)
         dir = os.path.join(dir, part)
--- a/tests/run-tests.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/run-tests.py	Mon Nov 03 14:01:52 2014 -0600
@@ -298,6 +298,7 @@
     lines = []
     for line in difflib.unified_diff(expected, output, ref, err):
         if line.startswith('+++') or line.startswith('---'):
+            line = line.replace('\\', '/')
             if line.endswith(' \n'):
                 line = line[:-2] + '\n'
         lines.append(line)
@@ -681,6 +682,7 @@
         hgrc.write('slash = True\n')
         hgrc.write('interactive = False\n')
         hgrc.write('mergemarkers = detailed\n')
+        hgrc.write('promptecho = True\n')
         hgrc.write('[defaults]\n')
         hgrc.write('backout = -d "0 0"\n')
         hgrc.write('commit = -d "0 0"\n')
--- a/tests/test-alias.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-alias.t	Mon Nov 03 14:01:52 2014 -0600
@@ -394,9 +394,18 @@
   $ cat >> .hg/hgrc <<EOF
   > [extensions]
   > hgext.rebase =
+  > EOF
+#if windows
+  $ cat >> .hg/hgrc <<EOF
+  > [alias]
+  > rebate = !echo this is %HG_ARGS%
+  > EOF
+#else
+  $ cat >> .hg/hgrc <<EOF
   > [alias]
   > rebate = !echo this is \$HG_ARGS
   > EOF
+#endif
   $ hg reba
   hg: command 'reba' is ambiguous:
       rebase rebate
--- a/tests/test-basic.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-basic.t	Mon Nov 03 14:01:52 2014 -0600
@@ -8,6 +8,7 @@
   ui.slash=True
   ui.interactive=False
   ui.mergemarkers=detailed
+  ui.promptecho=True
   $ hg init t
   $ cd t
 
--- a/tests/test-bookmarks-pushpull.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-bookmarks-pushpull.t	Mon Nov 03 14:01:52 2014 -0600
@@ -438,3 +438,29 @@
   cc978a373a53 tip W
 
   $ cd ..
+
+pushing an unchanged bookmark should result in no changes
+
+  $ hg init unchanged-a
+  $ hg init unchanged-b
+  $ cd unchanged-a
+  $ echo initial > foo
+  $ hg commit -A -m initial
+  adding foo
+  $ hg bookmark @
+  $ hg push -B @ ../unchanged-b
+  pushing to ../unchanged-b
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  exporting bookmark @
+
+  $ hg push -B @ ../unchanged-b
+  pushing to ../unchanged-b
+  searching for changes
+  no changes found
+  [1]
+
+  $ cd ..
--- a/tests/test-bundle2-format.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-bundle2-format.t	Mon Nov 03 14:01:52 2014 -0600
@@ -777,25 +777,22 @@
 
 Check handling of exception during generation.
 ----------------------------------------------
-(is currently not right)
 
   $ hg bundle2 --genraise > ../genfailed.hg2
   abort: Someone set up us the bomb!
   [255]
 
 Should still be a valid bundle
-(is currently not right)
 
   $ cat ../genfailed.hg2
   HG2Y\x00\x00\x00\x00\x00\x00\x00\x11 (esc)
-  b2x:output\x00\x00\x00\x00\x00\x00 (no-eol) (esc)
+  b2x:output\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00L\x0fb2x:error:abort\x00\x00\x00\x00\x01\x00\x07-messageunexpected error: Someone set up us the bomb!\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc)
 
 And its handling on the other size raise a clean exception
-(is currently not right)
 
   $ cat ../genfailed.hg2 | hg unbundle2
   0 unread bytes
-  abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  abort: unexpected error: Someone set up us the bomb!
   [255]
 
 
--- a/tests/test-clone.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-clone.t	Mon Nov 03 14:01:52 2014 -0600
@@ -67,7 +67,6 @@
 #else
   $ hg --debug clone -U . ../c
   copied 8 files
-  listing keys for "bookmarks"
 #endif
   $ cd ../c
 
@@ -555,9 +554,15 @@
 
 No remote source
 
+#if windows
+  $ hg clone http://127.0.0.1:3121/a b
+  abort: error: * (glob)
+  [255]
+#else
   $ hg clone http://127.0.0.1:3121/a b
   abort: error: *refused* (glob)
   [255]
+#endif
   $ rm -rf b # work around bug with http clone
 
 
--- a/tests/test-commandserver.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-commandserver.t	Mon Nov 03 14:01:52 2014 -0600
@@ -5,6 +5,11 @@
 #endif
   $ export PYTHONPATH
 
+typical client does not want echo-back messages, so test without it:
+
+  $ grep -v '^promptecho ' < $HGRCPATH >> $HGRCPATH.new
+  $ mv $HGRCPATH.new $HGRCPATH
+
   $ hg init repo
   $ cd repo
 
@@ -552,7 +557,7 @@
   $ cd repo
   $ hg update -q
 
-#if unix-socket
+#if unix-socket unix-permissions
 
   >>> import cStringIO
   >>> from hgclient import unixserver, readchannel, runcommand, check
@@ -597,8 +602,8 @@
   listening at .hg/server.sock
   abort: unknown command unknowncommand
   killed!
-
-#else
+#endif
+#if no-unix-socket
 
   $ hg serve --cmdserver unix -a .hg/server.sock
   abort: unsupported platform
--- a/tests/test-commit-amend.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-commit-amend.t	Mon Nov 03 14:01:52 2014 -0600
@@ -854,3 +854,61 @@
   HG: changed foo
   $ hg parents --template "{desc}\n"
   editor should be invoked
+
+Check for issue4405
+-------------------
+
+Setup the repo with a file that gets moved in a second commit.
+  $ hg init repo
+  $ cd repo
+  $ touch a0
+  $ hg add a0
+  $ hg commit -m a0
+  $ hg mv a0 a1
+  $ hg commit -m a1
+  $ hg up -q 0
+  $ hg log -G --template '{rev} {desc}'
+  o  1 a1
+  |
+  @  0 a0
+  
+
+Now we branch the repro, but re-use the file contents, so we have a divergence
+in the file revlog topology and the changelog topology.
+  $ hg revert --rev 1 --all
+  removing a0
+  adding a1
+  $ hg ci -qm 'a1-amend'
+  $ hg log -G --template '{rev} {desc}'
+  @  2 a1-amend
+  |
+  | o  1 a1
+  |/
+  o  0 a0
+  
+
+The way mercurial does amends is to create a temporary commit (rev 3) and then
+fold the new and old commits together into another commit (rev 4). During this
+process, findlimit is called to check how far back to look for the transitive
+closure of file copy information, but due to the divergence of the filelog
+and changelog graph topologies, before findlimit was fixed, it returned a rev
+which was not far enough back in this case.
+  $ hg mv a1 a2
+  $ hg status --copies --rev 0
+  A a2
+    a0
+  R a0
+  $ hg ci --amend -q
+  $ hg log -G --template '{rev} {desc}'
+  @  4 a1-amend
+  |
+  | o  1 a1
+  |/
+  o  0 a0
+  
+
+Before the fix, the copy information was lost.
+  $ hg status --copies --rev 0
+  A a2
+    a0
+  R a0
--- a/tests/test-context.py	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-context.py	Mon Nov 03 14:01:52 2014 -0600
@@ -7,7 +7,7 @@
 os.chdir('test1')
 
 # create 'foo' with fixed time stamp
-f = open('foo', 'w')
+f = open('foo', 'wb')
 f.write('foo\n')
 f.close()
 os.utime('foo', (1000, 1000))
--- a/tests/test-convert-svn-sink.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-convert-svn-sink.t	Mon Nov 03 14:01:52 2014 -0600
@@ -224,15 +224,21 @@
   adding link
   $ hg --cwd a mv link newlink
   $ hg --cwd a commit -m 'move symlink'
-  $ hg convert -d svn a
-  assuming destination a-hg
-  initializing svn working copy 'a-hg-wc'
+  $ hg convert -d svn a a-svnlink
+  initializing svn repository 'a-svnlink'
+  initializing svn working copy 'a-svnlink-wc'
   scanning source...
   sorting...
   converting...
+  7 add a file
+  6 modify a file
+  5 rename a file
+  4 copy a file
+  3 remove a file
+  2 make a file executable
   1 add symlink
   0 move symlink
-  $ svnupanddisplay a-hg-wc 1
+  $ svnupanddisplay a-svnlink-wc 1
    8 1 test d1
    8 1 test d1/d2
    8 1 test d1/d2/b
@@ -245,6 +251,13 @@
    D /link
    A /newlink (from /link@7)
 
+Make sure our changes don't affect the rest of the test cases
+
+  $ hg --cwd a up 5
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg --cwd a --config extensions.strip= strip -r 6
+  saved backup bundle to $TESTTMP/a/.hg/strip-backup/bd4f7b7a7067-backup.hg (glob)
+
 #endif
 
 Convert with --full adds and removes files that didn't change
@@ -260,17 +273,16 @@
   converting...
   0 f
   $ svnupanddisplay a-hg-wc 1
-   9 9 test .
-   9 9 test d
-   9 9 test f
-  revision: 9
+   7 7 test .
+   7 7 test d
+   7 7 test f
+  revision: 7
   author: test
   msg: f
    D /c
    A /d
    D /d1
    A /f
-   D /newlink
 
   $ rm -rf a a-hg a-hg-wc
 
--- a/tests/test-diff-reverse.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-diff-reverse.t	Mon Nov 03 14:01:52 2014 -0600
@@ -42,3 +42,24 @@
   -g
   -h
 
+should show removed file 'a' as being added
+  $ hg revert a
+  $ hg rm a
+  $ hg diff --reverse --nodates a
+  diff -r 2855cdcfcbb7 a
+  --- /dev/null
+  +++ b/a
+  @@ -0,0 +1,3 @@
+  +d
+  +e
+  +f
+
+should show added file 'b' as being removed
+  $ echo b >> b
+  $ hg add b
+  $ hg diff --reverse --nodates b
+  diff -r 2855cdcfcbb7 b
+  --- a/b
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -b
--- a/tests/test-eol.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-eol.t	Mon Nov 03 14:01:52 2014 -0600
@@ -525,4 +525,19 @@
   fourth
   fifth
 
+amend of changesets with renamed/deleted files expose new code paths
+
+  $ hg mv a.txt b.txt
+  $ hg ci --amend -q
+  $ hg diff -c.
+  diff --git a/a.txt b/b.txt
+  rename from a.txt
+  rename to b.txt
+  --- a/a.txt
+  +++ b/b.txt
+  @@ -1,2 +1,3 @@
+   third
+   fourth
+  +fifth
+
   $ cd ..
--- a/tests/test-fncache.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-fncache.t	Mon Nov 03 14:01:52 2014 -0600
@@ -236,3 +236,46 @@
   [255]
   $ cat .hg/store/fncache
   data/y.i
+
+Aborted transactions can be recovered later
+
+  $ cat > ../exceptionext.py <<EOF
+  > import os
+  > from mercurial import commands, util, transaction
+  > from mercurial.extensions import wrapfunction
+  > 
+  > def closewrapper(orig, self, *args, **kwargs):
+  >     origonclose = self.onclose
+  >     def onclose():
+  >         origonclose()
+  >         raise util.Abort("forced transaction failure")
+  >     self.onclose = onclose
+  >     return orig(self, *args, **kwargs)
+  > 
+  > def abortwrapper(orig, self, *args, **kwargs):
+  >     raise util.Abort("forced transaction failure")
+  > 
+  > def uisetup(ui):
+  >     wrapfunction(transaction.transaction, 'close', closewrapper)
+  >     wrapfunction(transaction.transaction, '_abort', abortwrapper)
+  > 
+  > cmdtable = {}
+  > 
+  > EOF
+  $ rm -f "${extpath}c"
+  $ hg up -q 1
+  $ touch z
+  $ hg ci -qAm z 2>/dev/null
+  [255]
+  $ cat .hg/store/fncache | sort
+  data/y.i
+  data/z.i
+  $ hg recover
+  rolling back interrupted transaction
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  1 files, 1 changesets, 1 total revisions
+  $ cat .hg/store/fncache
+  data/y.i
--- a/tests/test-help.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-help.t	Mon Nov 03 14:01:52 2014 -0600
@@ -1094,6 +1094,10 @@
   abort: help section not found
   [255]
 
+  $ hg help glossary.mc.guffin
+  abort: help section not found
+  [255]
+
 Test usage of section marks in help documents
 
   $ cd "$TESTDIR"/../doc
--- a/tests/test-hgrc.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-hgrc.t	Mon Nov 03 14:01:52 2014 -0600
@@ -30,7 +30,7 @@
   $ cat .hg/hgrc
   # example repository config (see "hg help config" for more info)
   [paths]
-  default = $TESTTMP/foo%bar
+  default = $TESTTMP/foo%bar (glob)
   
   # path aliases to other clones of this repo in URLs or filesystem paths
   # (see "hg help config.paths" for more info)
@@ -224,4 +224,4 @@
   $ hg showconfig --debug paths
   plain: True
   read config from: $TESTTMP/hgrc
-  $TESTTMP/hgrc:17: paths.foo=$TESTTMP/bar
+  $TESTTMP/hgrc:17: paths.foo=$TESTTMP/bar (glob)
--- a/tests/test-histedit-fold.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-histedit-fold.t	Mon Nov 03 14:01:52 2014 -0600
@@ -446,3 +446,45 @@
   0:6c795aa153cb a
 
   $ cd ..
+
+Folding with swapping
+---------------------
+
+This is an excuse to test hook with histedit temporary commit (issue4422)
+
+
+  $ hg init issue4422
+  $ cd issue4422
+  $ echo a > a.txt
+  $ hg add a.txt
+  $ hg commit -m a
+  $ echo b > b.txt
+  $ hg add b.txt
+  $ hg commit -m b
+  $ echo c > c.txt
+  $ hg add c.txt
+  $ hg commit -m c
+
+  $ hg logt
+  2:a1a953ffb4b0 c
+  1:199b6bb90248 b
+  0:6c795aa153cb a
+
+  $ hg histedit 6c795aa153cb --config hooks.commit="echo commit \$HG_NODE" --commands - 2>&1 << EOF | fixbundle
+  > pick 199b6bb90248 b
+  > fold a1a953ffb4b0 c
+  > pick 6c795aa153cb a
+  > EOF
+  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  commit 9599899f62c05f4377548c32bf1c9f1a39634b0c
+
+  $ hg logt
+  1:9599899f62c0 a
+  0:79b99e9c8e49 b
+
+  $ cd ..
--- a/tests/test-http-proxy.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-http-proxy.t	Mon Nov 03 14:01:52 2014 -0600
@@ -18,6 +18,8 @@
   streaming all changes
   3 files to transfer, 303 bytes of data
   transferred * bytes in * seconds (*/sec) (glob)
+  searching for changes
+  no changes found
   updating to branch default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd b
@@ -101,6 +103,9 @@
   * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
   * - - [*] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - (glob)
   * - - [*] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - (glob)
+  * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
+  * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
+  * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
   * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
   *- - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=bookmarks (glob)
   *- - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
--- a/tests/test-http.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-http.t	Mon Nov 03 14:01:52 2014 -0600
@@ -35,6 +35,8 @@
   streaming all changes
   6 files to transfer, 606 bytes of data
   transferred * bytes in * seconds (*/sec) (glob)
+  searching for changes
+  no changes found
   updating to branch default
   4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg verify -R copy
@@ -195,6 +197,8 @@
   streaming all changes
   7 files to transfer, 916 bytes of data
   transferred * bytes in * seconds (*/sec) (glob)
+  searching for changes
+  no changes found
   updating to branch default
   5 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -251,6 +255,9 @@
   "GET /?cmd=branchmap HTTP/1.1" 200 -
   "GET /?cmd=stream_out HTTP/1.1" 401 -
   "GET /?cmd=stream_out HTTP/1.1" 200 -
+  "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
+  "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D5fed3813f7f5e1824344fdc9cf8f63bb662c292d
+  "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
   "GET /?cmd=capabilities HTTP/1.1" 200 -
   "GET /?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=tip
   "GET /?cmd=listkeys HTTP/1.1" 401 - x-hgarg-1:namespace=namespaces
--- a/tests/test-largefiles-update.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-largefiles-update.t	Mon Nov 03 14:01:52 2014 -0600
@@ -116,8 +116,13 @@
   $ hg commit -m 'will be rollback-ed soon'
   $ echo largeY > largeY
   $ hg add --large largeY
+#if windows
+  $ hg status -A large1
+  large1: * (glob)
+#else
   $ hg status -A large1
   large1: No such file or directory
+#endif
   $ hg status -A large2
   ? large2
   $ hg status -A largeX
@@ -202,24 +207,39 @@
   $ hg commit -m '#4'
 
   $ hg rebase -s 1 -d 2 --keep
+#if windows
+  $ hg status -A large1
+  large1: * (glob)
+#else
   $ hg status -A large1
   large1: No such file or directory
+#endif
   $ hg status -A largeX
   C largeX
   $ hg strip -q 5
 
   $ hg update -q -C 2
   $ hg transplant -q 1 4
+#if windows
+  $ hg status -A large1
+  large1: * (glob)
+#else
   $ hg status -A large1
   large1: No such file or directory
+#endif
   $ hg status -A largeX
   C largeX
   $ hg strip -q 5
 
   $ hg update -q -C 2
   $ hg transplant -q --merge 1 --merge 4
+#if windows
+  $ hg status -A large1
+  large1: * (glob)
+#else
   $ hg status -A large1
   large1: No such file or directory
+#endif
   $ hg status -A largeX
   C largeX
   $ hg strip -q 5
@@ -523,4 +543,40 @@
   $ cat largeX
   largeX
 
+Test that "hg status" doesn't show removal of largefiles not managed
+in the target context.
+
+  $ hg update -q -C 4
+  $ hg remove largeX
+  $ hg status -A largeX
+  R largeX
+  $ hg status -A --rev '.^1' largeX
+
+#if execbit
+
+Test that "hg status" against revisions other than parent notices exec
+bit changes of largefiles.
+
+  $ hg update -q -C 4
+
+(the case that large2 doesn't have exec bit in the target context but
+in the working context)
+
+  $ chmod +x large2
+  $ hg status -A --rev 0 large2
+  M large2
+  $ hg commit -m 'chmod +x large2'
+
+(the case that large2 has exec bit in the target context but not in
+the working context)
+
+  $ echo dummy > dummy
+  $ hg add dummy
+  $ hg commit -m 'revision for separation'
+  $ chmod -x large2
+  $ hg status -A --rev '.^1' large2
+  M large2
+
+#endif
+
   $ cd ..
--- a/tests/test-mq.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-mq.t	Mon Nov 03 14:01:52 2014 -0600
@@ -1581,3 +1581,26 @@
   tip	[0-9a-f]{40} (re)
 
   $ cd ..
+
+Test interraction with revset (issue4426)
+
+  $ hg init issue4426
+  $ cd issue4426
+
+  $ echo a > a
+  $ hg ci -Am a
+  adding a
+  $ echo a >> a
+  $ hg ci -m a
+  $ echo a >> a
+  $ hg ci -m a
+  $ hg qimport -r 0::
+
+reimport things
+
+  $ hg qimport -r 1::
+  abort: revision 2 is already managed
+  [255]
+
+
+  $ cd ..
--- a/tests/test-obsolete.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-obsolete.t	Mon Nov 03 14:01:52 2014 -0600
@@ -83,7 +83,7 @@
   $ mkcommit new_c
   created new head
   $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
-  $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c`  `getid new_c` -d '56 120'
+  $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c`  `getid new_c` -d '121 120'
   $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
   2:245bde4270cd add original_c
   $ hg debugrevlog -cd
@@ -93,7 +93,7 @@
       2     1    -1   118   204         59   59   59    0      76       192           0     1        1
       3     1    -1   204   271        204  204   59    0      66       258           0     2        0
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
 
 (check for version number of the obsstore)
 
@@ -108,7 +108,7 @@
   created new head
   $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
 
 Register two markers with a missing node
@@ -120,7 +120,7 @@
   $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
   $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -185,6 +185,8 @@
   abort: hidden revision '4'!
   (use --hidden to access hidden revisions)
   [255]
+  $ hg debugrevspec 'rev(6)'
+  $ hg debugrevspec 'rev(4)'
 
 Check that public changeset are not accounted as obsolete:
 
@@ -279,7 +281,7 @@
   added 4 changesets with 4 changes to 4 files (+1 heads)
   (run 'hg heads' to see heads, 'hg merge' to merge)
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -289,7 +291,7 @@
 
   $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -300,7 +302,7 @@
   $ hg rollback
   repository tip rolled back to revision 3 (undo debugobsolete)
   $ hg debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -320,7 +322,7 @@
   added 4 changesets with 4 changes to 4 files (+1 heads)
   $ hg -R tmpd debugobsolete | sort
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
@@ -358,7 +360,7 @@
   o  0:1f0dee641bb7 (public) [ ] add a
   
   $ hg -R clone-dest debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -383,7 +385,7 @@
   (run 'hg heads' to see heads, 'hg merge' to merge)
   $ hg debugobsolete
   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -398,7 +400,7 @@
   no changes found
   [1]
   $ hg -R ../tmpc debugobsolete
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -546,7 +548,7 @@
 
   $ hg debugobsolete
   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
@@ -568,7 +570,7 @@
   $ hg debugobsolete --hidden --rev 3
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
@@ -579,7 +581,7 @@
   $ hg debugobsolete --hidden --rev 3::6
   1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Wed Dec 31 23:58:56 1969 -0002) {'user': 'test'}
+  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
   5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
   94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
   ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
--- a/tests/test-record.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-record.t	Mon Nov 03 14:01:52 2014 -0600
@@ -963,12 +963,14 @@
   > EOF
   diff --git a/subdir/f1 b/subdir/f1
   1 hunks, 1 lines changed
-  examine changes to 'subdir/f1'? [Ynesfdaq?] 
+  examine changes to 'subdir/f1'? [Ynesfdaq?] y
+  
   @@ -1,2 +1,3 @@
    a
    a
   +a
-  record this change to 'subdir/f1'? [Ynesfdaq?] 
+  record this change to 'subdir/f1'? [Ynesfdaq?] y
+  
 
   $ hg tip --config diff.git=True -p
   changeset:   22:0d463bd428f5
@@ -996,13 +998,15 @@
   > EOF
   diff --git a/subdir/f1 b/subdir/f1
   1 hunks, 1 lines changed
-  examine changes to 'subdir/f1'? [Ynesfdaq?] 
+  examine changes to 'subdir/f1'? [Ynesfdaq?] y
+  
   @@ -1,3 +1,4 @@
    a
    a
    a
   +b
-  record this change to 'subdir/f1'? [Ynesfdaq?] 
+  record this change to 'subdir/f1'? [Ynesfdaq?] y
+  
 
   $ hg tip --config diff.git=True -p
   changeset:   23:0eab41a3e524
@@ -1032,13 +1036,15 @@
   > EOF
   diff --git a/subdir/f1 b/subdir/f1
   1 hunks, 1 lines changed
-  examine changes to 'subdir/f1'? [Ynesfdaq?] 
+  examine changes to 'subdir/f1'? [Ynesfdaq?] y
+  
   @@ -2,3 +2,4 @@
    a
    a
    b
   +c
-  record this change to 'subdir/f1'? [Ynesfdaq?] 
+  record this change to 'subdir/f1'? [Ynesfdaq?] y
+  
 
   $ hg tip --config diff.git=True -p
   changeset:   24:f4f718f27b7c
--- a/tests/test-revset-outgoing.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-revset-outgoing.t	Mon Nov 03 14:01:52 2014 -0600
@@ -38,7 +38,7 @@
   $ cat .hg/hgrc
   # example repository config (see "hg help config" for more info)
   [paths]
-  default = $TESTTMP/a#stable
+  default = $TESTTMP/a#stable (glob)
   
   # path aliases to other clones of this repo in URLs or filesystem paths
   # (see "hg help config.paths" for more info)
@@ -90,7 +90,7 @@
   $ cat .hg/hgrc
   # example repository config (see "hg help config" for more info)
   [paths]
-  default = $TESTTMP/a#stable
+  default = $TESTTMP/a#stable (glob)
   
   # path aliases to other clones of this repo in URLs or filesystem paths
   # (see "hg help config.paths" for more info)
--- a/tests/test-revset.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-revset.t	Mon Nov 03 14:01:52 2014 -0600
@@ -437,6 +437,18 @@
   4
   8
   9
+
+Test explicit numeric revision
+  $ log 'rev(-1)'
+  $ log 'rev(0)'
+  0
+  $ log 'rev(9)'
+  9
+  $ log 'rev(10)'
+  $ log 'rev(tip)'
+  hg: parse error: rev expects a number
+  [255]
+
   $ log 'outgoing()'
   8
   9
--- a/tests/test-run-tests.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-run-tests.t	Mon Nov 03 14:01:52 2014 -0600
@@ -206,30 +206,8 @@
 (duplicate the failing test to get predictable output)
   $ cp test-failure.t test-failure-copy.t
 
-  $ $TESTDIR/run-tests.py --with-hg=`which hg` --jobs 2 test-failure*.t
-  
-  --- $TESTTMP/test-failure*.t (glob)
-  +++ $TESTTMP/test-failure*.t.err (glob)
-  @@ -1,4 +1,4 @@
-     $ echo babar
-  -  rataxes
-  +  babar
-   This is a noop statement so that
-   this test is still more bytes than success.
-  
-  ERROR: test-failure*.t output changed (glob)
-  !
-  --- $TESTTMP/test-failure*.t (glob)
-  +++ $TESTTMP/test-failure*.t.err (glob)
-  @@ -1,4 +1,4 @@
-     $ echo babar
-  -  rataxes
-  +  babar
-   This is a noop statement so that
-   this test is still more bytes than success.
-  
-  ERROR: test-failure*.t output changed (glob)
-  !
+  $ $TESTDIR/run-tests.py --with-hg=`which hg` --jobs 2 test-failure*.t -n
+  !!
   Failed test-failure*.t: output changed (glob)
   Failed test-failure*.t: output changed (glob)
   # Ran 2 tests, 0 skipped, 0 warned, 2 failed.
--- a/tests/test-setdiscovery.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-setdiscovery.t	Mon Nov 03 14:01:52 2014 -0600
@@ -311,17 +311,23 @@
   searching for changes
   taking quick initial sample
   searching: 2 queries
-  query 2; still undecided: 1080, sample size is: 260
+  query 2; still undecided: 1240, sample size is: 100
   sampling from both directions
   searching: 3 queries
-  query 3; still undecided: 820, sample size is: 260
+  query 3; still undecided: 1140, sample size is: 200
   sampling from both directions
   searching: 4 queries
-  query 4; still undecided: 560, sample size is: 260
+  query 4; still undecided: 940, sample size is: 200
   sampling from both directions
   searching: 5 queries
-  query 5; still undecided: 300, sample size is: 200
-  5 total queries
+  query 5; still undecided: 740, sample size is: 200
+  sampling from both directions
+  searching: 6 queries
+  query 6; still undecided: 540, sample size is: 200
+  sampling from both directions
+  searching: 7 queries
+  query 7; still undecided: 44, sample size is: 44
+  7 total queries
   common heads: 3ee37d65064a
 
 Test actual protocol when pulling one new head in addition to common heads
--- a/tests/test-ssh.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-ssh.t	Mon Nov 03 14:01:52 2014 -0600
@@ -9,6 +9,20 @@
   $ echo this > foo
   $ echo this > fooO
   $ hg ci -A -m "init" foo fooO
+
+insert a closed branch (issue4428)
+
+  $ hg up null
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ hg branch closed
+  marked working directory as branch closed
+  (branches are permanent and global, did you want a bookmark?)
+  $ hg ci -mc0
+  $ hg ci --close-branch -mc1
+  $ hg up -q default
+
+configure for serving
+
   $ cat <<EOF > .hg/hgrc
   > [server]
   > uncompressed = True
@@ -36,8 +50,10 @@
 
   $ hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed ssh://user@dummy/remote local-stream
   streaming all changes
-  4 files to transfer, 392 bytes of data
-  transferred 392 bytes in * seconds (*/sec) (glob)
+  4 files to transfer, 615 bytes of data
+  transferred 615 bytes in * seconds (*) (glob)
+  searching for changes
+  no changes found
   updating to branch default
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd local-stream
@@ -46,9 +62,28 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-  2 files, 1 changesets, 2 total revisions
+  2 files, 3 changesets, 2 total revisions
+  $ hg branches
+  default                        0:1160648e36ce
   $ cd ..
 
+clone bookmarks via stream
+
+  $ hg -R local-stream book mybook
+  $ hg clone -e "python \"$TESTDIR/dummyssh\"" --uncompressed ssh://user@dummy/local-stream stream2
+  streaming all changes
+  4 files to transfer, 615 bytes of data
+  transferred 615 bytes in * seconds (*) (glob)
+  searching for changes
+  no changes found
+  updating to branch default
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd stream2
+  $ hg book
+     mybook                    0:1160648e36ce
+  $ cd ..
+  $ rm -rf local-stream stream2
+
 clone remote via pull
 
   $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local
@@ -56,7 +91,7 @@
   adding changesets
   adding manifests
   adding file changes
-  added 1 changesets with 2 changes to 2 files
+  added 3 changesets with 2 changes to 2 files
   updating to branch default
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -68,7 +103,7 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-  2 files, 1 changesets, 2 total revisions
+  2 files, 3 changesets, 2 total revisions
   $ echo '[hooks]' >> .hg/hgrc
   $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup-in-local 0 ../dummylog" >> .hg/hgrc
 
@@ -97,8 +132,9 @@
   $ hg out ssh://user@dummy/remote
   comparing with ssh://user@dummy/remote
   searching for changes
-  changeset:   1:a28a9d1a809c
+  changeset:   3:a28a9d1a809c
   tag:         tip
+  parent:      0:1160648e36ce
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     add
@@ -109,8 +145,9 @@
   $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/local
   comparing with ssh://user@dummy/local
   searching for changes
-  changeset:   1:a28a9d1a809c
+  changeset:   3:a28a9d1a809c
   tag:         tip
+  parent:      0:1160648e36ce
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     add
@@ -121,8 +158,9 @@
   $ hg incoming -R ../remote -e "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/`pwd`"
   comparing with ssh://user@dummy/$TESTTMP/local
   searching for changes
-  changeset:   1:a28a9d1a809c
+  changeset:   3:a28a9d1a809c
   tag:         tip
+  parent:      0:1160648e36ce
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     add
@@ -142,8 +180,9 @@
 check remote tip
 
   $ hg tip
-  changeset:   1:a28a9d1a809c
+  changeset:   3:a28a9d1a809c
   tag:         tip
+  parent:      0:1160648e36ce
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     add
@@ -153,7 +192,7 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-  2 files, 2 changesets, 3 total revisions
+  2 files, 4 changesets, 3 total revisions
   $ hg cat -r tip foo
   bleah
   $ echo z > z
@@ -229,14 +268,14 @@
   remote: added 1 changesets with 1 changes to 1 files
   remote: KABOOM
   $ hg -R ../remote heads
-  changeset:   3:1383141674ec
+  changeset:   5:1383141674ec
   tag:         tip
-  parent:      1:a28a9d1a809c
+  parent:      3:a28a9d1a809c
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     z
   
-  changeset:   2:6c0482d977a3
+  changeset:   4:6c0482d977a3
   parent:      0:1160648e36ce
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
@@ -247,17 +286,17 @@
 
   $ hg -R ../remote bookmark test
   $ hg -R ../remote bookmarks
-   * test                      2:6c0482d977a3
+   * test                      4:6c0482d977a3
   $ hg clone -e "python \"$TESTDIR/dummyssh\"" ssh://user@dummy/remote local-bookmarks
   requesting all changes
   adding changesets
   adding manifests
   adding file changes
-  added 4 changesets with 5 changes to 4 files (+1 heads)
+  added 6 changesets with 5 changes to 4 files (+1 heads)
   updating to branch default
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R local-bookmarks bookmarks
-     test                      2:6c0482d977a3
+     test                      4:6c0482d977a3
 
 passwords in ssh urls are not supported
 (we use a glob here because different Python versions give different
@@ -340,7 +379,7 @@
   adding changesets
   adding manifests
   adding file changes
-  added 4 changesets with 5 changes to 4 files (+1 heads)
+  added 6 changesets with 5 changes to 4 files (+1 heads)
   updating to branch default
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -404,6 +443,7 @@
   Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
   Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio
   Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio
   Got arguments 1:user@dummy 2:hg -R remote serve --stdio
   Got arguments 1:user@dummy 2:hg -R remote serve --stdio
   Got arguments 1:user@dummy 2:hg -R remote serve --stdio
--- a/tests/test-transplant.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-transplant.t	Mon Nov 03 14:01:52 2014 -0600
@@ -99,7 +99,11 @@
   > env | grep HGEDITFORM
   > true
   > EOF
-  $ HGEDITOR="sh $TESTTMP/checkeditform.sh; cat" hg transplant --edit 7
+  $ cat > $TESTTMP/checkeditform-n-cat.sh <<EOF
+  > env | grep HGEDITFORM
+  > cat \$*
+  > EOF
+  $ HGEDITOR="sh $TESTTMP/checkeditform-n-cat.sh" hg transplant --edit 7
   applying ffd6818a3975
   HGEDITFORM=transplant.normal
   b3
--- a/tests/test-url-rev.t	Fri Oct 17 02:17:36 2014 -0700
+++ b/tests/test-url-rev.t	Mon Nov 03 14:01:52 2014 -0600
@@ -43,7 +43,7 @@
   $ cat clone/.hg/hgrc
   # example repository config (see "hg help config" for more info)
   [paths]
-  default = $TESTTMP/repo#foo
+  default = $TESTTMP/repo#foo (glob)
   
   # path aliases to other clones of this repo in URLs or filesystem paths
   # (see "hg help config.paths" for more info)