diff --git a/i18n/ja.po b/i18n/ja.po --- a/i18n/ja.po +++ b/i18n/ja.po @@ -162,8 +162,8 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 22:30+0900\n" -"PO-Revision-Date: 2016-02-01 22:50+0900\n" +"POT-Creation-Date: 2016-02-29 21:02+0900\n" +"PO-Revision-Date: 2016-02-29 22:32+0900\n" "Last-Translator: Japanese translation team \n" "Language-Team: Japanese\n" "Language: ja\n" @@ -1493,15 +1493,13 @@ msgid "" " replace os.environ completely" msgstr "" -#, fuzzy msgid "" "'SIGHUP' signal\n" " reload configuration files\n" -msgstr " (非推奨: 設定ファイル経由で指定してください)" - -#, fuzzy +msgstr "" + msgid "invalid response" -msgstr "引数が不正です" +msgstr "" #, python-format msgid "abort: %s\n" @@ -5042,12 +5040,12 @@ msgstr "" msgid "" "By default each edited revision needs to be present in histedit commands.\n" "To remove revision you need to use ``drop`` operation. You can configure\n" -"the drop to be implicit for missing commits by adding:" +"the drop to be implicit for missing commits by adding::" msgstr "" "全ての改変対象リビジョンに対して、 改変指示の記述が必要になります。\n" "特定のリビジョンを破棄する場合は ``drop`` 操作を指定してください。\n" "以下の記述を追加することで、 改変指示のないリビジョンに対して、\n" -"``drop`` 操作を実施させることができます:" +"``drop`` 操作を実施させることができます::" msgid "" " [histedit]\n" @@ -5186,11 +5184,11 @@ msgstr "対話的な履歴の改変" msgid "" " This command lets you edit a linear series of changesets (up to\n" " and including the working directory, which should be clean).\n" -" You can::" +" You can:" msgstr "" " 本コマンドは、 作業領域の親と、 その直系の祖先の履歴改変を行います\n" " (作業領域中の変更は、 事前にコミット/破棄してください)。\n" -" 利用可能な改変操作機能は以下の通りです::" +" 利用可能な改変操作機能は以下の通りです:" msgid " - `pick` to [re]order a changeset" msgstr " - `pick` でリビジョンを採用" @@ -5210,18 +5208,18 @@ msgstr " - `roll` で fold 同様併合するが、コミットログは破棄" msgid " - `edit` to edit this changeset" msgstr " - `edit` で変更内容を再編集" -msgid " There are a number of ways to select the root changset::" -msgstr " 改変対象リビジョンの指定には、 以下の様な方法があります::" +msgid " There are a number of ways to select the root changeset:" +msgstr " 改変対象リビジョンの指定には、 以下の様な方法があります:" msgid " - Specify ANCESTOR directly" msgstr " - 引数で改変対象の祖先 (ANCESTOR) を直接指定" msgid "" " - Use --outgoing -- it will be the first linear changeset not\n" -" included in destination. (See :hg:\"help default-push\")" +" included in destination. (See :hg:`help config.default-push`)" msgstr "" " - ``--outgoing`` 指定時は、 連携先への反映候補リビジョンのうち、\n" -" 作業領域の親の直系の祖先を改変 (:hg:`help default-push` 参照)" +" 作業領域の親の直系の祖先を改変 (:hg:`help config.default-push` 参照)" msgid "" " - Otherwise, the value from the \"histedit.defaultrev\" config option\n" @@ -5264,9 +5262,11 @@ msgid "" " - A number of changes have been made.\n" " Revision 3 is no longer needed." msgstr "" +" - 複数のリビジョンがコミット済みの状態。\n" +" リビジョン 3 が不要になったケース。" msgid " Start history editing from revision 3::" -msgstr "" +msgstr " リビジョン 3 以降の履歴の編集を開始してください::" msgid " hg histedit -r 3" msgstr " hg histedit -r 3" @@ -5275,6 +5275,8 @@ msgid "" " An editor opens, containing the list of revisions,\n" " with specific actions specified::" msgstr "" +" 以下のようなリビジョンと改変操作の一覧と共に、\n" +" エディタが起動されます::" msgid "" " pick 5339bf82f0ca 3 Zworgle the foobar\n" @@ -5289,12 +5291,15 @@ msgid "" " Additional information about the possible actions\n" " to take appears below the list of revisions." msgstr "" +" リビジョン一覧に続けて、 指定可能な改変操作一覧も表示されます。" msgid "" " To remove revision 3 from the history,\n" " its action (at the beginning of the relevant line)\n" " is changed to 'drop'::" msgstr "" +" 履歴からリビジョン 3 を取り除くには、 \n" +" リビジョン 3 の対応行の冒頭の改変操作を 'drop' に変更します::" msgid "" " drop 5339bf82f0ca 3 Zworgle the foobar\n" @@ -5309,9 +5314,11 @@ msgid "" " - A number of changes have been made.\n" " Revision 2 and 4 need to be swapped." msgstr "" +" - 複数のリビジョンがコミット済みの状態。\n" +" リビジョン 2 と 4 の順序を入れ替えたいケース。" msgid " Start history editing from revision 2::" -msgstr "" +msgstr " リビジョン 2 以降の履歴の編集を開始してください::" msgid " hg histedit -r 2" msgstr " hg histedit -r 2" @@ -5329,6 +5336,8 @@ msgid "" " To swap revision 2 and 4, its lines are swapped\n" " in the editor::" msgstr "" +" エディタ上での対応行の入れ替えで、 リビジョン 2 と 4 の、\n" +" 順序を入れ替えできます::" msgid "" " pick 8ef592ce7cc4 4 Bedazzle the zerlog\n" @@ -5436,7 +5445,7 @@ msgid "%s \"%s\" changeset was not a can msgstr "改変対象以外への操作 %s \"%s\" が検出されました" msgid "only use listed changesets" -msgstr "" +msgstr "予め列挙されたリビジョンへの操作のみを指定してください" #, python-format msgid "%s \"%s\" changeset was not an edited list candidate" @@ -8011,11 +8020,8 @@ msgstr "mq: %s\n" msgid "mq: (empty queue)\n" msgstr "mq: (キューは空です)\n" -#, fuzzy msgid "Changesets managed by MQ." -msgstr "" -"``mq()``\n" -" MQ 管理下にあるリビジョン" +msgstr "MQ 管理下にあるリビジョン。" msgid "mq takes no arguments" msgstr "mq には引数が指定できません" @@ -9116,30 +9122,31 @@ msgstr "" " (移動先リビジョン自身は改変されませんが、 移動先の子孫として、\n" " 新規リビジョンが追加されます)" -msgid " Here are the ways to select changesets::" -msgstr " 移動対象リビジョンの指定には、 以下の様な方法があります::" +msgid " Here are the ways to select changesets:" +msgstr " 移動対象リビジョンの指定には、 以下の様な方法があります:" msgid " 1. Explicitly select them using ``--rev``." msgstr " 1. ``--rev`` は、 移動対象の直接指定" msgid "" " 2. Use ``--source`` to select a root changeset and include all of its\n" -" descendants." +" descendants." msgstr " 2. ``--source`` は、 指定リビジョン、 およびその子孫の移動" msgid "" " 3. Use ``--base`` to select a changeset; rebase will find ancestors\n" -" and their descendants which are not also ancestors of the destination." +" and their descendants which are not also ancestors of the " +"destination." msgstr "" " 3. ``--base`` は、 移動「先」と指定リビジョンとの共通祖先、\n" -" およびその子孫の移動 (但し、 移動「先」の祖先は含まず)" +" およびその子孫の移動 (但し、 移動「先」の祖先は含まず)" msgid "" " 4. If you do not specify any of ``--rev``, ``source``, or ``--base``,\n" -" rebase will use ``--base .`` as above." +" rebase will use ``--base .`` as above." msgstr "" " 4. 上記 ``--rev``, ``source``, ``--base`` の指定がない場合、\n" -" ``--base .`` 相当の指定で移動を実施" +" ``--base .`` 相当の指定で移動を実施" msgid "" " Rebase will destroy original changesets unless you use ``--keep``.\n" @@ -10521,11 +10528,8 @@ msgstr "マージが未コミットです" msgid "outstanding local changes" msgstr "変更が未コミットです" -#, fuzzy msgid "Transplanted changesets in set, or all transplanted changesets." -msgstr "" -"``transplanted([set])``\n" -" set 中の移植先リビジョン、 または全移植先リビジョン。" +msgstr "transplant による全ての (又は set 中の) 移植先リビジョン。" msgid "" ":transplanted: String. The node identifier of the transplanted\n" @@ -12034,6 +12038,9 @@ msgstr "" msgid "cannot use --commit with --no-commit" msgstr "--commit と --no-commit は併用できません" +msgid "cannot use --merge with --no-commit" +msgstr "--merge と --no-commit は併用できません" + msgid "please specify just one revision" msgstr "リビジョン指定は1つだけです" @@ -18300,6 +18307,10 @@ msgstr "" " バイナリファイルは除外されます。 複数形式が混在するファイルは、\n" " 複数の形式指定に合致します。" +#. i18n: "eol" is a keyword +msgid "eol requires a style name" +msgstr "eol には改行形式指定が必要です" + msgid "" "``copied()``\n" " File that is recorded as being copied." @@ -18715,11 +18726,11 @@ msgstr "リポジトリ毎の局所的な設定は ``<リポジトリ>/.hg/hgrc`` に記述します。" msgid "Global configuration like the username setting is typically put into:" msgstr "「ユーザ名」のような、 広範囲で有効な設定は、 以下で記述します:" -msgid " ``%USERPROFILE%\\mercurial.ini``" -msgstr " ``%USERPROFILE%\\mercurial.ini``" - -msgid " ``$HOME/.hgrc``" -msgstr " ``$HOME/.hgrc``" +msgid " - ``%USERPROFILE%\\mercurial.ini`` (on Windows)" +msgstr " - ``%USERPROFILE%\\mercurial.ini`` (on Windows)" + +msgid " - ``$HOME/.hgrc`` (on Unix, Plan9)" +msgstr " - ``$HOME/.hgrc`` (on Unix, Plan9)" msgid "" "The names of these files depend on the system on which Mercurial is\n" @@ -19183,8 +19194,8 @@ msgstr "" "``hg echo foo`` 実行は、 端末に ``foo`` を表示します。\n" "より実践的な例としては::" -msgid " purge = !$HG status --no-status --unknown -0 | xargs -0 rm" -msgstr " purge = !$HG status --no-status --unknown -0 | xargs -0 rm" +msgid " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm" +msgstr " purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm" msgid "" "which will make ``hg purge`` delete all unknown files in the\n" @@ -19306,12 +19317,12 @@ msgstr "" "``<名前>`` は引数群を1つの認証情報エントリに束ねる働きをします。 例えば::" msgid "" -" foo.prefix = hg.intevation.org/mercurial\n" +" foo.prefix = hg.intevation.de/mercurial\n" " foo.username = foo\n" " foo.password = bar\n" " foo.schemes = http https" msgstr "" -" foo.prefix = hg.intevation.org/mercurial\n" +" foo.prefix = hg.intevation.de/mercurial\n" " foo.username = foo\n" " foo.password = bar\n" " foo.schemes = http https" @@ -20676,12 +20687,16 @@ msgstr "記述例を以下に示します::" msgid "" " [hostfingerprints]\n" -" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:" -"b8:58:28:7d:8b:d0" +" hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:" +"cd:33\n" +" hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:" +"e6:cd:33" msgstr "" " [hostfingerprints]\n" -" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:" -"b8:58:28:7d:8b:d0" +" hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:" +"cd:33\n" +" hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:" +"e6:cd:33" msgid "This feature is only supported when using Python 2.6 or later." msgstr "本機能は、 Python 2.6 以降でのみ使用可能です。" @@ -22909,7 +22924,7 @@ msgid "" " Whether to enable closing file handles on background threads during " "certain\n" " operations. Some platforms aren't very efficient at closing file\n" -" handles that have been written or appened to. By performing file " +" handles that have been written or appended to. By performing file " "closing\n" " on background threads, file write rate can increase substantially.\n" " (default: true on Windows, false elsewhere)" @@ -26955,21 +26970,22 @@ msgstr "フィルタの他に、 以下の様な基本的な組み込み関数があります:" msgid ".. functionsmarker" msgstr ".. functionsmarker" -msgid "Also, for any expression that returns a list, there is a list operator:" -msgstr "また、 列挙形式を返す expr に対しては、 以下の様な記述が可能です:" - -msgid "- expr % \"{template}\"" -msgstr "- expr % \"{template}\"" - -msgid "" -"As seen in the above example, \"{template}\" is interpreted as a template.\n" -"To prevent it from being interpreted, you can use an escape character " -"\"\\{\"\n" -"or a raw string prefix, \"r'...'\"." -msgstr "" -"上記例で見られるように、 \"{template}\" はテンプレートとして解釈されます。\n" -"テンプレートとしての解釈を抑止する場合は、 \"\\{\" で開始するか、\n" -"文字列指定の冒頭に ``r`` を付けて下さい (例: \"r'...'\")" +msgid "" +"Also, for any expression that returns a list, there is a list operator::" +msgstr "また、 列挙形式を返す expr に対しては、 以下の様な記述が可能です::" + +msgid " expr % \"{template}\"" +msgstr " expr % \"{template}\"" + +msgid "" +"As seen in the above example, ``{template}`` is interpreted as a template.\n" +"To prevent it from being interpreted, you can use an escape character ``" +"\\{``\n" +"or a raw string prefix, ``r'...'``." +msgstr "" +"上記例で見られるように、 ``{template}`` はテンプレートとして解釈されます。\n" +"テンプレートとしての解釈を抑止する場合は、 ``\\{`` で開始するか、\n" +"文字列指定の冒頭に ``r`` を付けて下さい (例: ``r'...'``)" msgid "Some sample command line templates:" msgstr "コマンドラインでのテンプレート指定例:" diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -325,7 +325,8 @@ class bundlerepository(localrepo.localre self.bundle.seek(self.manstart) # consume the header if it exists self.bundle.manifestheader() - m = bundlemanifest(self.svfs, self.bundle, self.changelog.rev) + linkmapper = self.unfiltered().changelog.rev + m = bundlemanifest(self.svfs, self.bundle, linkmapper) # XXX: hack to work with changegroup3, but we still don't handle # tree manifests correctly if self.bundle.version == "03": diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2143,9 +2143,15 @@ def getlogrevs(repo, pats, opts): # Revset matches can reorder revisions. "A or B" typically returns # returns the revision matching A then the revision matching B. Sort # again to fix that. + fixopts = ['branch', 'only_branch', 'keyword', 'user'] + oldrevs = revs revs = matcher(repo, revs) if not opts.get('rev'): revs.sort(reverse=True) + elif len(pats) > 1 or any(len(opts.get(op, [])) > 1 for op in fixopts): + # XXX "A or B" is known to change the order; fix it by filtering + # matched set again (issue5100) + revs = oldrevs & revs if limit is not None: limitedrevs = [] for idx, r in enumerate(revs): diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py --- a/mercurial/demandimport.py +++ b/mercurial/demandimport.py @@ -235,6 +235,8 @@ def _demandimport(name, globals=None, lo ignore = [ '__future__', '_hashlib', + # ImportError during pkg_resources/__init__.py:fixup_namespace_package + '_imp', '_xmlplus', 'fcntl', 'win32com.gen_py', diff --git a/mercurial/unionrepo.py b/mercurial/unionrepo.py --- a/mercurial/unionrepo.py +++ b/mercurial/unionrepo.py @@ -211,14 +211,14 @@ class unionrepository(localrepo.localrep @localrepo.unfilteredpropertycache def manifest(self): return unionmanifest(self.svfs, self.repo2.svfs, - self._clrev) + self.unfiltered()._clrev) def url(self): return self._url def file(self, f): return unionfilelog(self.svfs, f, self.repo2.svfs, - self._clrev, self) + self.unfiltered()._clrev, self) def close(self): self.repo2.close() diff --git a/tests/test-log.t b/tests/test-log.t --- a/tests/test-log.t +++ b/tests/test-log.t @@ -920,6 +920,116 @@ log -r tip --stat $ cd .. +Test that log should respect the order of -rREV even if multiple OR conditions +are specified (issue5100): + + $ hg init revorder + $ cd revorder + + $ hg branch -q b0 + $ echo 0 >> f0 + $ hg ci -qAm k0 -u u0 + $ hg branch -q b1 + $ echo 1 >> f1 + $ hg ci -qAm k1 -u u1 + $ hg branch -q b2 + $ echo 2 >> f2 + $ hg ci -qAm k2 -u u2 + + $ hg update -q b2 + $ echo 3 >> f2 + $ hg ci -qAm k2 -u u2 + $ hg update -q b1 + $ echo 4 >> f1 + $ hg ci -qAm k1 -u u1 + $ hg update -q b0 + $ echo 5 >> f0 + $ hg ci -qAm k0 -u u0 + + summary of revisions: + + $ hg log -G -T '{rev} {branch} {author} {desc} {files}\n' + @ 5 b0 u0 k0 f0 + | + | o 4 b1 u1 k1 f1 + | | + | | o 3 b2 u2 k2 f2 + | | | + | | o 2 b2 u2 k2 f2 + | |/ + | o 1 b1 u1 k1 f1 + |/ + o 0 b0 u0 k0 f0 + + + log -b BRANCH in ascending order: + + $ hg log -r0:tip -T '{rev} {branch}\n' -b b0 -b b1 + 0 b0 + 1 b1 + 4 b1 + 5 b0 + $ hg log -r0:tip -T '{rev} {branch}\n' -b b1 -b b0 + 0 b0 + 1 b1 + 4 b1 + 5 b0 + + log --only-branch BRANCH in descending order: + + $ hg log -rtip:0 -T '{rev} {branch}\n' --only-branch b1 --only-branch b2 + 4 b1 + 3 b2 + 2 b2 + 1 b1 + $ hg log -rtip:0 -T '{rev} {branch}\n' --only-branch b2 --only-branch b1 + 4 b1 + 3 b2 + 2 b2 + 1 b1 + + log -u USER in ascending order, against compound set: + + $ hg log -r'::head()' -T '{rev} {author}\n' -u u0 -u u2 + 0 u0 + 2 u2 + 3 u2 + 5 u0 + $ hg log -r'::head()' -T '{rev} {author}\n' -u u2 -u u0 + 0 u0 + 2 u2 + 3 u2 + 5 u0 + + log -k TEXT in descending order, against compound set: + + $ hg log -r'5 + reverse(::3)' -T '{rev} {desc}\n' -k k0 -k k1 -k k2 + 5 k0 + 3 k2 + 2 k2 + 1 k1 + 0 k0 + $ hg log -r'5 + reverse(::3)' -T '{rev} {desc}\n' -k k2 -k k1 -k k0 + 5 k0 + 3 k2 + 2 k2 + 1 k1 + 0 k0 + + log FILE in ascending order, against dagrange: + + $ hg log -r1:: -T '{rev} {files}\n' f1 f2 + 1 f1 + 2 f2 + 3 f2 + 4 f1 + $ hg log -r1:: -T '{rev} {files}\n' f2 f1 + 1 f1 + 2 f2 + 3 f2 + 4 f1 + + $ cd .. User