Hello community, here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2014-03-14 15:16:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mercurial (Old) and /work/SRC/openSUSE:Factory/.mercurial.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mercurial" Changes: -------- --- /work/SRC/openSUSE:Factory/mercurial/mercurial.changes 2014-02-18 14:45:16.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.mercurial.new/mercurial.changes 2014-03-14 15:16:49.000000000 +0100 @@ -1,0 +2,19 @@ +Thu Mar 13 21:07:15 UTC 2014 - devel...@develop7.info + +- update to version 2.9.1 + * coal: hgweb style adds extra blank line in file view (issue4136) + * hg.openpath: use url.islocal to tell if the path is local (issue3624) + * hgweb: hack around mimetypes encoding thinko (issue4160) + * hooks: only disable/re-enable demandimport when it's already enabled + * merge: add "other" file node in the merge state file + * merge: audit the right destination file when merging with dir rename + * merge: don't overwrite file untracked after remove, abort with 'untracked files' + * merge: record the "other" node in merge state + * pathencode: eliminate signed integer warnings + * pull: close peer repo on completion (issue2491) (issue2797) + * purge: avoid duplicate output for --print (issue4092) + * rebase: do not try to reactivate deleted divergent bookmark + * resolve: use "other" changeset from merge state (issue4163) + * verify: do not prevent verify repository containing hidden changesets + +------------------------------------------------------------------- Old: ---- mercurial-2.9.tar.gz New: ---- mercurial-2.9.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mercurial.spec ++++++ --- /var/tmp/diff_new_pack.5DxGfQ/_old 2014-03-14 15:16:50.000000000 +0100 +++ /var/tmp/diff_new_pack.5DxGfQ/_new 2014-03-14 15:16:50.000000000 +0100 @@ -17,7 +17,7 @@ Name: mercurial -Version: 2.9 +Version: 2.9.1 Release: 0 Summary: Scalable Distributed SCM License: GPL-2.0+ ++++++ mercurial-2.9.tar.gz -> mercurial-2.9.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/.hgsigs new/mercurial-2.9.1/.hgsigs --- old/mercurial-2.9/.hgsigs 2014-02-01 22:20:49.000000000 +0100 +++ new/mercurial-2.9.1/.hgsigs 2014-03-01 22:22:50.000000000 +0100 @@ -83,3 +83,4 @@ 209e04a06467e2969c0cc6501335be0406d46ef0 0 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/.hgtags new/mercurial-2.9.1/.hgtags --- old/mercurial-2.9/.hgtags 2014-02-01 22:20:49.000000000 +0100 +++ new/mercurial-2.9.1/.hgtags 2014-03-01 22:22:50.000000000 +0100 @@ -96,3 +96,4 @@ 209e04a06467e2969c0cc6501335be0406d46ef0 2.8.1 ca387377df7a3a67dbb90b6336b781cdadc3ef41 2.8.2 8862469e16f9236208581b20de5f96bd13cc039d 2.9-rc +3cec5134e9c4bceab6a00c60f52a4f80677a78f2 2.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/PKG-INFO new/mercurial-2.9.1/PKG-INFO --- old/mercurial-2.9/PKG-INFO 2014-02-01 22:20:57.000000000 +0100 +++ new/mercurial-2.9.1/PKG-INFO 2014-03-01 22:22:58.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: mercurial -Version: 2.9 +Version: 2.9.1 Summary: Fast scalable distributed SCM (revision control, version control) system Home-page: http://mercurial.selenic.com/ Author: Matt Mackall and many others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/doc/hgrc.5 new/mercurial-2.9.1/doc/hgrc.5 --- old/mercurial-2.9/doc/hgrc.5 2014-02-01 22:20:52.000000000 +0100 +++ new/mercurial-2.9.1/doc/hgrc.5 2014-03-01 22:22:53.000000000 +0100 @@ -948,7 +948,7 @@ .nf .ft C [hostfingerprints] -hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:d4:89:2a:9d +hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0 .ft P .fi .sp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/doc/hgrc.5.html new/mercurial-2.9.1/doc/hgrc.5.html --- old/mercurial-2.9/doc/hgrc.5.html 2014-02-01 22:20:55.000000000 +0100 +++ new/mercurial-2.9.1/doc/hgrc.5.html 2014-03-01 22:22:56.000000000 +0100 @@ -756,7 +756,7 @@ <p>For example:</p> <pre class="literal-block"> [hostfingerprints] -hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:d4:89:2a:9d +hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0 </pre> <p>This feature is only supported when using Python 2.6 or later.</p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/hgext/purge.py new/mercurial-2.9.1/hgext/purge.py --- old/mercurial-2.9/hgext/purge.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/hgext/purge.py 2014-03-01 22:22:30.000000000 +0100 @@ -101,10 +101,12 @@ status = repo.status(match=match, ignored=opts['all'], unknown=True) for f in sorted(status[4] + status[5]): - ui.note(_('removing file %s\n') % f) + if act: + ui.note(_('removing file %s\n') % f) remove(removefile, f) for f in sorted(directories, reverse=True): if match(f) and not os.listdir(repo.wjoin(f)): - ui.note(_('removing directory %s\n') % f) + if act: + ui.note(_('removing directory %s\n') % f) remove(os.rmdir, f) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/hgext/rebase.py new/mercurial-2.9.1/hgext/rebase.py --- old/mercurial-2.9/hgext/rebase.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/hgext/rebase.py 2014-03-01 22:22:30.000000000 +0100 @@ -404,6 +404,9 @@ if currentbookmarks: updatebookmarks(repo, targetnode, nstate, currentbookmarks) + if activebookmark not in repo._bookmarks: + # active bookmark was divergent one and has been deleted + activebookmark = None clearstatus(repo) ui.note(_("rebase completed\n")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/i18n/ja.po new/mercurial-2.9.1/i18n/ja.po --- old/mercurial-2.9/i18n/ja.po 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/i18n/ja.po 2014-03-01 22:22:30.000000000 +0100 @@ -149,8 +149,8 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: <mercurial-de...@selenic.com>\n" -"POT-Creation-Date: 2014-01-29 17:19+0900\n" -"PO-Revision-Date: 2014-01-31 16:19+0900\n" +"POT-Creation-Date: 2014-02-23 17:05+0900\n" +"PO-Revision-Date: 2014-02-23 17:58+0900\n" "Last-Translator: Japanese translation team <mercurial...@googlegroups.com>\n" "Language-Team: Japanese\n" "Language: ja\n" @@ -2286,7 +2286,7 @@ " :convert.hg.clonebranches: dispatch source branches in separate\n" " clones. The default is False." msgstr "" -" :convert.hg.clonebranches: 変換元ブランチの別複製への振り分けの要否。\n" +" :convert.hg.clonebranches: 変換元ブランチ毎に変換先リポジトリを作成。\n" " デフォルト値は False。" msgid "" @@ -2301,7 +2301,7 @@ " True.\n" " " msgstr "" -" :convert.hg.usebranchnames: ブランチ名維持の要否。\n" +" :convert.hg.usebranchnames: 変換元におけるブランチ名の維持の要否。\n" " デフォルト値は True。\n" " " @@ -8485,6 +8485,9 @@ msgid "cannot use revision %d as base, result would have 3 parents" msgstr "親リビジョンが 3 つになるので、 リビジョン %d をベースにできません" +msgid ".hg/rebasestate is incomplete" +msgstr "管理情報 (.hg/rebasestate) が破損しています" + msgid "no rebase in progress" msgstr "未完了な rebase による移動はありません" @@ -17649,12 +17652,12 @@ msgid "" " [hostfingerprints]\n" -" hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:" -"d4:89:2a:9d" +" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:" +"b8:58:28:7d:8b:d0" msgstr "" " [hostfingerprints]\n" -" hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:" -"d4:89:2a:9d" +" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:" +"b8:58:28:7d:8b:d0" msgid "This feature is only supported when using Python 2.6 or later." msgstr "本機能は、 Python 2.6 以降でのみ使用可能です。" @@ -18079,31 +18082,38 @@ " 新規作成されるリビジョンのフェーズ。\n" " デフォルト値: draft" -msgid "``checksubrepos``" -msgstr "``checksubrepos``" - msgid "" -" Check phase of state in each subrepositories, allowed values are\n" -" \"ignore\", \"follow\" or \"abort\". For settings other than \"ignore" -"\",\n" -" the phase of each subrepository commit is checked before committing\n" -" in the parent repository. If there is any greater phase than the parent\n" -" (\"secret\" vs \"draft\", for example), the commit is either aborted\n" -" with \"abort\" or the higher phase is used with \"follow\". Default: " -"\"follow\"." +"``checksubrepos``\n" +" Check the phase of the current revision of each subrepository. Allowed\n" +" values are \"ignore\", \"follow\" and \"abort\". For settings other " +"than\n" +" \"ignore\", the phase of the current revision of each subrepository is\n" +" checked before committing the parent repository. If any of those phases " +"is\n" +" greater than the phase of the parent repository (e.g. if a subrepo is in " +"a\n" +" \"secret\" phase while the parent repo is in \"draft\" phase), the " +"commit is\n" +" either aborted (if checksubrepos is set to \"abort\") or the higher " +"phase is\n" +" used for the parent repository commit (if set to \"follow\").\n" +" Default: \"follow\"" msgstr "" -" サブリポジトリのフェーズ確認の有無。\"ignore\"、 \"follow\" または\n" +"``checksubrepos``\n" +" サブリポジトリのフェーズ確認の有無。 \"ignore\"、 \"follow\" または\n" " \"abort\" が指定可能です。 \"ignore\" 以外が指定された場合、\n" " 親リポジトリのコミット前に、 サブリポジトリのフェーズを確認します。\n" " 親リポジトリ側フェーズよりも、サブリポジトリ側の公開度合が低い場合\n" -" (例: \"draft\" に対する \"secret\")、 \"abort\" ならコミット中断し、\n" -" \"follow\" ならコミット時にサブリポジトリ側フェーズ値に従います。 デ" -"フォルト値: \"follow\"" +" (例: 親側の \"draft\" に対して、サブリポジトリ側が \"secret\")、\n" +" コミット中断 (\"abort\" 時)か、 サブリポジトリ側フェーズ値でコミット\n" +" (\"follow\" 時)します。 デフォルト値: \"follow\"" msgid "" +"\n" "``profiling``\n" "-------------" msgstr "" +"\n" "``profiling``\n" "-------------" @@ -21319,8 +21329,9 @@ " Please see :hg:`help patterns` for details." msgstr "" ".. note::\n" -" ``.hgignore`` 以外の記述では、 作業領域ルートからの相対パスに対して、\n" -" パス先頭からのパターン合致が要求されます。 詳細は :hg:`help patterns`\n" +" ``.hgignore`` 記述の場合、 作業領域ルートからの相対パスに対して、\n" +" 途中要素の部分一致でも合致とみなされますが、 通常のパターン指定では、\n" +" 相対パスの先頭からの合致が要求されます。 詳細は :hg:`help patterns`\n" " を参照してください。" msgid "" @@ -21864,15 +21875,13 @@ msgid "" "All patterns, except for ``glob:`` specified in command line (not for\n" -"``-I`` or ``-X`` options) or ``.hgignore`` file, can match also\n" -"against directories: files under matched directories are treated as\n" -"matched." -msgstr "" -"コマンドライン引数 (但し ``-I`` や ``-X`` 向けを除く) や ``.hgignore``\n" -"ファイルでの ``glob:`` 形式以外のパターンは、 ディレクトリにも合致します:\n" -"合致対象ディレクトリ配下のファイルも、 合致したのとみなされます。\n" -"(※ 訳注: コマンドラインや ``.hgignore`` での ``glob:`` パターンは、\n" -"ファイルにしか合致しません。 必要に応じて末尾 ``**`` 等を補ってください)" +"``-I`` or ``-X`` options), can match also against directories: files\n" +"under matched directories are treated as matched." +msgstr "" +"パターンはディレクトリにも合致します。 合致ディレクトリ配下のファイルも、\n" +"パターンに合致したものとみなされます。但し( ``-I`` や ``-X`` 向けを除く)\n" +"コマンドライン引数での ``glob:`` 形式指定は、ファイルにしか合致しません。\n" +"(※ 訳注: 必要に応じて末尾 ``**`` 等を補ってください)" msgid "Plain examples::" msgstr "パターン合致未使用例::" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/i18n/pt_BR.po new/mercurial-2.9.1/i18n/pt_BR.po --- old/mercurial-2.9/i18n/pt_BR.po 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/i18n/pt_BR.po 2014-03-01 22:22:30.000000000 +0100 @@ -17978,10 +17978,10 @@ msgid "" " [hostfingerprints]\n" -" hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:d4:89:2a:9d" +" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" msgstr "" " [hostfingerprints]\n" -" hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:d4:89:2a:9d" +" hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0" msgid "This feature is only supported when using Python 2.6 or later." msgstr "" @@ -18414,30 +18414,36 @@ " Fase de revisões criadas usando commit.\n" " Padrão: draft (rascunho)" -msgid "``checksubrepos``" -msgstr "``checksubrepos``" - msgid "" -" Check phase of state in each subrepositories, allowed values are\n" -" \"ignore\", \"follow\" or \"abort\". For settings other than \"ignore\",\n" -" the phase of each subrepository commit is checked before committing\n" -" in the parent repository. If there is any greater phase than the parent\n" -" (\"secret\" vs \"draft\", for example), the commit is either aborted\n" -" with \"abort\" or the higher phase is used with \"follow\". Default: \"follow\"." +"``checksubrepos``\n" +" Check the phase of the current revision of each subrepository. Allowed\n" +" values are \"ignore\", \"follow\" and \"abort\". For settings other than\n" +" \"ignore\", the phase of the current revision of each subrepository is\n" +" checked before committing the parent repository. If any of those phases is\n" +" greater than the phase of the parent repository (e.g. if a subrepo is in a\n" +" \"secret\" phase while the parent repo is in \"draft\" phase), the commit is\n" +" either aborted (if checksubrepos is set to \"abort\") or the higher phase is\n" +" used for the parent repository commit (if set to \"follow\").\n" +" Default: \"follow\"" msgstr "" -" Verifica a fase do estado de cada sub-repositório. Os valores\n" +"``checksubrepos``\n" +" Verifica a fase da revisão atual de cada sub-repositório. Os valores\n" " possíveis são \"ignore\", \"follow\" ou \"abort\". Para valores\n" -" diferentes de \"ignore\", a fase da consolidação de cada\n" +" diferentes de \"ignore\", a fase da revisão atual de cada\n" " sub-repositório será verificada antes da consolidação no repositório\n" -" pai. Se houver qualquer fase maior que a do pai (\"secret\" versus\n" -" \"draft\", por exemplo), o valor \"abort\" faz com que a consolidação\n" -" seja abortada, e \"follow\" faz com que seja usada a fase mais\n" -" alta. O valor padrão é: \"follow\"." +" pai. Se houver qualquer fase maior que a do pai (por exemplo, se um\n" +" sub-repositório estiver na fase \"secret\" e o repositório pai estiver\n" +" na fase \"draft\"), o valor \"abort\" faz com que a consolidação\n" +" seja abortada, e \"follow\" faz com que a fase mais alta seja usada\n" +" na consolidação do repositório pai.\n" +" O valor padrão é: \"follow\"." msgid "" +"\n" "``profiling``\n" "-------------" msgstr "" +"\n" "``profiling``\n" "-------------" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/__version__.py new/mercurial-2.9.1/mercurial/__version__.py --- old/mercurial-2.9/mercurial/__version__.py 2014-02-01 22:20:55.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/__version__.py 2014-03-01 22:22:56.000000000 +0100 @@ -1,2 +1,2 @@ # this file is autogenerated by setup.py -version = "2.9" +version = "2.9.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/commands.py new/mercurial-2.9.1/mercurial/commands.py --- old/mercurial-2.9/mercurial/commands.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/commands.py 2014-03-01 22:22:30.000000000 +0100 @@ -4605,47 +4605,50 @@ """ source, branches = hg.parseurl(ui.expandpath(source), opts.get('branch')) other = hg.peer(repo, opts, source) - ui.status(_('pulling from %s\n') % util.hidepassword(source)) - revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev')) - - remotebookmarks = other.listkeys('bookmarks') - - if opts.get('bookmark'): - if not revs: - revs = [] - for b in opts['bookmark']: - if b not in remotebookmarks: - raise util.Abort(_('remote bookmark %s not found!') % b) - revs.append(remotebookmarks[b]) - - if revs: - try: - revs = [other.lookup(rev) for rev in revs] - except error.CapabilityError: - err = _("other repository doesn't support revision lookup, " - "so a rev cannot be specified.") - raise util.Abort(err) - - modheads = repo.pull(other, heads=revs, force=opts.get('force')) - bookmarks.updatefromremote(ui, repo, remotebookmarks, source) - if checkout: - checkout = str(repo.changelog.rev(other.lookup(checkout))) - repo._subtoppath = source try: - ret = postincoming(ui, repo, modheads, opts.get('update'), checkout) + ui.status(_('pulling from %s\n') % util.hidepassword(source)) + revs, checkout = hg.addbranchrevs(repo, other, branches, + opts.get('rev')) + + remotebookmarks = other.listkeys('bookmarks') + + if opts.get('bookmark'): + if not revs: + revs = [] + for b in opts['bookmark']: + if b not in remotebookmarks: + raise util.Abort(_('remote bookmark %s not found!') % b) + revs.append(remotebookmarks[b]) + + if revs: + try: + revs = [other.lookup(rev) for rev in revs] + except error.CapabilityError: + err = _("other repository doesn't support revision lookup, " + "so a rev cannot be specified.") + raise util.Abort(err) + + modheads = repo.pull(other, heads=revs, force=opts.get('force')) + bookmarks.updatefromremote(ui, repo, remotebookmarks, source) + if checkout: + checkout = str(repo.changelog.rev(other.lookup(checkout))) + repo._subtoppath = source + try: + ret = postincoming(ui, repo, modheads, opts.get('update'), checkout) - finally: - del repo._subtoppath - - # update specified bookmarks - if opts.get('bookmark'): - marks = repo._bookmarks - for b in opts['bookmark']: - # explicit pull overrides local bookmark if any - ui.status(_("importing bookmark %s\n") % b) - marks[b] = repo[remotebookmarks[b]].node() - marks.write() + finally: + del repo._subtoppath + # update specified bookmarks + if opts.get('bookmark'): + marks = repo._bookmarks + for b in opts['bookmark']: + # explicit pull overrides local bookmark if any + ui.status(_("importing bookmark %s\n") % b) + marks[b] = repo[remotebookmarks[b]].node() + marks.write() + finally: + other.close() return ret @command('^push', @@ -4958,7 +4961,6 @@ ms.mark(f, "u") else: wctx = repo[None] - mctx = wctx.parents()[-1] # backup pre-resolve (merge uses .orig for its own purposes) a = repo.wjoin(f) @@ -4967,7 +4969,7 @@ try: # resolve file ui.setconfig('ui', 'forcemerge', opts.get('tool', '')) - if ms.resolve(f, wctx, mctx): + if ms.resolve(f, wctx): ret = 1 finally: ui.setconfig('ui', 'forcemerge', '') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/demandimport.py new/mercurial-2.9.1/mercurial/demandimport.py --- old/mercurial-2.9/mercurial/demandimport.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/demandimport.py 2014-03-01 22:22:30.000000000 +0100 @@ -162,6 +162,9 @@ 'mimetools', ] +def isenabled(): + return __builtin__.__import__ == _demandimport + def enable(): "enable global demand-loading of modules" __builtin__.__import__ = _demandimport diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/help/config.txt new/mercurial-2.9.1/mercurial/help/config.txt --- old/mercurial-2.9/mercurial/help/config.txt 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/help/config.txt 2014-03-01 22:22:30.000000000 +0100 @@ -748,7 +748,7 @@ For example:: [hostfingerprints] - hg.intevation.org = 44:ed:af:1f:97:11:b6:01:7a:48:45:fc:10:3c:b7:f9:d4:89:2a:9d + hg.intevation.org = fa:1f:d9:48:f1:e7:74:30:38:8d:d8:58:b6:94:b8:58:28:7d:8b:d0 This feature is only supported when using Python 2.6 or later. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/hg.py new/mercurial-2.9.1/mercurial/hg.py --- old/mercurial-2.9/mercurial/hg.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/hg.py 2014-03-01 22:22:30.000000000 +0100 @@ -82,7 +82,7 @@ return thing def islocal(repo): - '''return true if repo or path is local''' + '''return true if repo (or path pointing to repo) is local''' if isinstance(repo, str): try: return _peerlookup(repo).islocal(repo) @@ -92,8 +92,9 @@ def openpath(ui, path): '''open path with open if local, url.open if remote''' - if islocal(path): - return util.posixfile(util.urllocalpath(path), 'rb') + pathurl = util.url(path, parsequery=False, parsefragment=False) + if pathurl.islocal(): + return util.posixfile(pathurl.localpath(), 'rb') else: return url.open(ui, path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/hgweb/hgwebdir_mod.py new/mercurial-2.9.1/mercurial/hgweb/hgwebdir_mod.py --- old/mercurial-2.9/mercurial/hgweb/hgwebdir_mod.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/hgweb/hgwebdir_mod.py 2014-03-01 22:22:30.000000000 +0100 @@ -365,7 +365,8 @@ description_sort=description.upper() or "unknown", lastchange=d, lastchange_sort=d[1]-d[0], - archives=archivelist(u, "tip", url)) + archives=archivelist(u, "tip", url), + isdirectory=None) seenrepos.add(name) yield row diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/hgweb/server.py new/mercurial-2.9.1/mercurial/hgweb/server.py --- old/mercurial-2.9/mercurial/hgweb/server.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/hgweb/server.py 2014-03-01 22:22:30.000000000 +0100 @@ -322,7 +322,21 @@ cls = MercurialHTTPServer # ugly hack due to python issue5853 (for threaded use) - import mimetypes; mimetypes.init() + try: + import mimetypes + mimetypes.init() + except UnicodeDecodeError: + # Python 2.x's mimetypes module attempts to decode strings + # from Windows' ANSI APIs as ascii (fail), then re-encode them + # as ascii (clown fail), because the default Python Unicode + # codec is hardcoded as ascii. + + sys.argv # unwrap demand-loader so that reload() works + reload(sys) # resurrect sys.setdefaultencoding() + oldenc = sys.getdefaultencoding() + sys.setdefaultencoding("latin1") # or any full 8-bit encoding + mimetypes.init() + sys.setdefaultencoding(oldenc) address = ui.config('web', 'address', '') port = util.getport(ui.config('web', 'port', 8000)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/hook.py new/mercurial-2.9.1/mercurial/hook.py --- old/mercurial-2.9/mercurial/hook.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/hook.py 2014-03-01 22:22:30.000000000 +0100 @@ -36,28 +36,33 @@ if modpath and modfile: sys.path = sys.path[:] + [modpath] modname = modfile - try: + demandimportenabled = demandimport.isenabled() + if demandimportenabled: demandimport.disable() - obj = __import__(modname) - demandimport.enable() - except ImportError: - e1 = sys.exc_type, sys.exc_value, sys.exc_traceback + try: try: - # extensions are loaded with hgext_ prefix - obj = __import__("hgext_%s" % modname) - demandimport.enable() + obj = __import__(modname) except ImportError: + e1 = sys.exc_type, sys.exc_value, sys.exc_traceback + try: + # extensions are loaded with hgext_ prefix + obj = __import__("hgext_%s" % modname) + except ImportError: + e2 = sys.exc_type, sys.exc_value, sys.exc_traceback + if ui.tracebackflag: + ui.warn(_('exception from first failed import ' + 'attempt:\n')) + ui.traceback(e1) + if ui.tracebackflag: + ui.warn(_('exception from second failed import ' + 'attempt:\n')) + ui.traceback(e2) + raise util.Abort(_('%s hook is invalid ' + '(import of "%s" failed)') % + (hname, modname)) + finally: + if demandimportenabled: demandimport.enable() - e2 = sys.exc_type, sys.exc_value, sys.exc_traceback - if ui.tracebackflag: - ui.warn(_('exception from first failed import attempt:\n')) - ui.traceback(e1) - if ui.tracebackflag: - ui.warn(_('exception from second failed import attempt:\n')) - ui.traceback(e2) - raise util.Abort(_('%s hook is invalid ' - '(import of "%s" failed)') % - (hname, modname)) sys.path = oldpaths try: for p in funcname.split('.')[1:]: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/merge.py new/mercurial-2.9.1/mercurial/merge.py --- old/mercurial-2.9/mercurial/merge.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/merge.py 2014-03-01 22:22:30.000000000 +0100 @@ -5,52 +5,172 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. +import struct + from node import nullid, nullrev, hex, bin from i18n import _ from mercurial import obsolete import error, util, filemerge, copies, subrepo, worker, dicthelpers import errno, os, shutil +_pack = struct.pack +_unpack = struct.unpack + +def _droponode(data): + # used for compatibility for v1 + bits = data.split("\0") + bits = bits[:-2] + bits[-1:] + return "\0".join(bits) + class mergestate(object): - '''track 3-way merge state of individual files''' + '''track 3-way merge state of individual files + + it is stored on disk when needed. Two file are used, one with an old + format, one with a new format. Both contains similar data, but the new + format can store new kind of field. + + Current new format is a list of arbitrary record of the form: + + [type][length][content] + + Type is a single character, length is a 4 bytes integer, content is an + arbitrary suites of bytes of lenght `length`. + + Type should be a letter. Capital letter are mandatory record, Mercurial + should abort if they are unknown. lower case record can be safely ignored. + + Currently known record: + + L: the node of the "local" part of the merge (hexified version) + O: the node of the "other" part of the merge (hexified version) + F: a file to be merged entry + ''' + statepathv1 = "merge/state" + statepathv2 = "merge/state2" def __init__(self, repo): self._repo = repo self._dirty = False self._read() - def reset(self, node=None): + def reset(self, node=None, other=None): self._state = {} if node: self._local = node + self._other = other shutil.rmtree(self._repo.join("merge"), True) self._dirty = False def _read(self): self._state = {} + records = self._readrecords() + for rtype, record in records: + if rtype == 'L': + self._local = bin(record) + elif rtype == 'O': + self._other = bin(record) + elif rtype == "F": + bits = record.split("\0") + self._state[bits[0]] = bits[1:] + elif not rtype.islower(): + raise util.Abort(_('unsupported merge state record:' + % rtype)) + self._dirty = False + def _readrecords(self): + v1records = self._readrecordsv1() + v2records = self._readrecordsv2() + oldv2 = set() # old format version of v2 record + for rec in v2records: + if rec[0] == 'L': + oldv2.add(rec) + elif rec[0] == 'F': + # drop the onode data (not contained in v1) + oldv2.add(('F', _droponode(rec[1]))) + for rec in v1records: + if rec not in oldv2: + # v1 file is newer than v2 file, use it + # we have to infer the "other" changeset of the merge + # we cannot do better than that with v1 of the format + mctx = self._repo[None].parents()[-1] + v1records.append(('O', mctx.hex())) + # add place holder "other" file node information + # nobody is using it yet so we do no need to fetch the data + # if mctx was wrong `mctx[bits[-2]]` may fails. + for idx, r in enumerate(v1records): + if r[0] == 'F': + bits = r[1].split("\0") + bits.insert(-2, '') + v1records[idx] = (r[0], "\0".join(bits)) + return v1records + else: + return v2records + def _readrecordsv1(self): + records = [] try: - f = self._repo.opener("merge/state") + f = self._repo.opener(self.statepathv1) for i, l in enumerate(f): if i == 0: - self._local = bin(l[:-1]) + records.append(('L', l[:-1])) else: - bits = l[:-1].split("\0") - self._state[bits[0]] = bits[1:] + records.append(('F', l[:-1])) f.close() except IOError, err: if err.errno != errno.ENOENT: raise - self._dirty = False + return records + def _readrecordsv2(self): + records = [] + try: + f = self._repo.opener(self.statepathv2) + data = f.read() + off = 0 + end = len(data) + while off < end: + rtype = data[off] + off += 1 + lenght = _unpack('>I', data[off:(off + 4)])[0] + off += 4 + record = data[off:(off + lenght)] + off += lenght + records.append((rtype, record)) + f.close() + except IOError, err: + if err.errno != errno.ENOENT: + raise + return records def commit(self): if self._dirty: - f = self._repo.opener("merge/state", "w") - f.write(hex(self._local) + "\n") + records = [] + records.append(("L", hex(self._local))) + records.append(("O", hex(self._other))) for d, v in self._state.iteritems(): - f.write("\0".join([d] + v) + "\n") - f.close() + records.append(("F", "\0".join([d] + v))) + self._writerecords(records) self._dirty = False + def _writerecords(self, records): + self._writerecordsv1(records) + self._writerecordsv2(records) + def _writerecordsv1(self, records): + f = self._repo.opener(self.statepathv1, "w") + irecords = iter(records) + lrecords = irecords.next() + assert lrecords[0] == 'L' + f.write(hex(self._local) + "\n") + for rtype, data in irecords: + if rtype == "F": + f.write("%s\n" % _droponode(data)) + f.close() + def _writerecordsv2(self, records): + f = self._repo.opener(self.statepathv2, "w") + for key, data in records: + assert len(key) == 1 + format = ">sI%is" % len(data) + f.write(_pack(format, key, len(data), data)) + f.close() def add(self, fcl, fco, fca, fd): hash = util.sha1(fcl.path()).hexdigest() self._repo.opener.write("merge/" + hash, fcl.data()) - self._state[fd] = ['u', hash, fcl.path(), fca.path(), - hex(fca.filenode()), fco.path(), fcl.flags()] + self._state[fd] = ['u', hash, fcl.path(), + fca.path(), hex(fca.filenode()), + fco.path(), hex(fco.filenode()), + fcl.flags()] self._dirty = True def __contains__(self, dfile): return dfile in self._state @@ -66,10 +186,12 @@ def mark(self, dfile, state): self._state[dfile][0] = state self._dirty = True - def resolve(self, dfile, wctx, octx): + def resolve(self, dfile, wctx): if self[dfile] == 'r': return 0 - state, hash, lfile, afile, anode, ofile, flags = self._state[dfile] + stateentry = self._state[dfile] + state, hash, lfile, afile, anode, ofile, onode, flags = stateentry + octx = self._repo[self._other] fcd = wctx[dfile] fco = octx[ofile] fca = self._repo.filectx(afile, fileid=anode) @@ -343,7 +465,12 @@ else: actions.append((f, "g", (fl2,), "remote created")) elif n2 and n2 != ma[f]: - prompts.append((f, "dc")) # prompt deleted/changed + different = _checkunknownfile(repo, wctx, p2, f) + if not force and different: + aborts.append((f, "ud")) + else: + # if different: old untracked f may be overwritten and lost + prompts.append((f, "dc")) # prompt deleted/changed for f, m in sorted(aborts): if m == "ud": @@ -435,7 +562,7 @@ updated, merged, removed, unresolved = 0, 0, 0, 0 ms = mergestate(repo) - ms.reset(wctx.p1().node()) + ms.reset(wctx.p1().node(), mctx.node()) moves = [] actions.sort(key=actionkey) @@ -515,7 +642,7 @@ overwrite) continue audit(fd) - r = ms.resolve(fd, wctx, mctx) + r = ms.resolve(fd, wctx) if r is not None and r > 0: unresolved += 1 else: @@ -527,7 +654,7 @@ f2, fd, flags = args if f: repo.ui.note(_("moving %s to %s\n") % (f, fd)) - audit(f) + audit(fd) repo.wwrite(fd, wctx.filectx(f).data(), flags) util.unlinkpath(repo.wjoin(f)) if f2: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/pathencode.c new/mercurial-2.9.1/mercurial/pathencode.c --- old/mercurial-2.9/mercurial/pathencode.c 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/pathencode.c 2014-03-01 22:22:30.000000000 +0100 @@ -530,7 +530,7 @@ static const uint32_t twobytes[8]; static const uint32_t onebyte[8] = { - ~0, 0xffff3ffe, ~0, ~0, ~0, ~0, ~0, ~0, + ~0U, 0xffff3ffe, ~0U, ~0U, ~0U, ~0U, ~0U, ~0U, }; return _encode(twobytes, onebyte, dest, 0, destsize, src, len, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/templates/static/style-coal.css new/mercurial-2.9.1/mercurial/templates/static/style-coal.css --- old/mercurial-2.9/mercurial/templates/static/style-coal.css 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/templates/static/style-coal.css 2014-03-01 22:22:30.000000000 +0100 @@ -214,6 +214,13 @@ .source a { color: #999; font-size: smaller; font-family: monospace;} .bottomline { border-bottom: 1px solid #999; } +.sourcelines > div { + display: inline-block; + width: 100%; + padding: 1px 0px; + counter-increment: lineno; +} + .fileline { font-family: monospace; } .fileline img { border: 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/util.py new/mercurial-2.9.1/mercurial/util.py --- old/mercurial-2.9/mercurial/util.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/util.py 2014-03-01 22:22:30.000000000 +0100 @@ -1875,6 +1875,11 @@ return path return self._origpath + def islocal(self): + '''whether localpath will return something that posixfile can open''' + return (not self.scheme or self.scheme == 'file' + or self.scheme == 'bundle') + def hasscheme(path): return bool(url(path).scheme) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/mercurial/verify.py new/mercurial-2.9.1/mercurial/verify.py --- old/mercurial-2.9/mercurial/verify.py 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/mercurial/verify.py 2014-03-01 22:22:30.000000000 +0100 @@ -38,7 +38,7 @@ mf = repo.manifest lrugetctx = util.lrucachefunc(repo.changectx) - if not repo.cancopy(): + if not repo.url().startswith('file:'): raise util.Abort(_("cannot verify bundle or remote repos")) def err(linkrev, msg, filename=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-backout.t new/mercurial-2.9.1/tests/test-backout.t --- old/mercurial-2.9/tests/test-backout.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-backout.t 2014-03-01 22:22:30.000000000 +0100 @@ -408,3 +408,93 @@ update: (current) $ cd .. + + +Test usage of `hg resolve` in case of conflict +(issue4163) + + $ hg init issue4163 + $ cd issue4163 + $ touch foo + $ hg add foo + $ cat > foo << EOF + > one + > two + > three + > four + > five + > six + > seven + > height + > nine + > ten + > EOF + $ hg ci -m 'initial' + $ cat > foo << EOF + > one + > two + > THREE + > four + > five + > six + > seven + > height + > nine + > ten + > EOF + $ hg ci -m 'capital three' + $ cat > foo << EOF + > one + > two + > THREE + > four + > five + > six + > seven + > height + > nine + > TEN + > EOF + $ hg ci -m 'capital ten' + $ hg backout -r 'desc("capital three")' --tool internal:fail + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges + [1] + $ hg status + $ hg resolve -l # still unresolved + U foo + $ hg summary + parent: 2:b71750c4b0fd tip + capital ten + branch: default + commit: 1 unresolved (clean) + update: (current) + $ hg resolve --all --debug + picked tool 'internal:merge' for foo (binary False symlink False) + merging foo + my foo@b71750c4b0fd+ other foo@a30dd8addae3 ancestor foo@913609522437 + premerge successful + $ hg status + M foo + ? foo.orig + $ hg resolve -l + R foo + $ hg summary + parent: 2:b71750c4b0fd tip + capital ten + branch: default + commit: 1 modified, 1 unknown + update: (current) + $ cat foo + one + two + three + four + five + six + seven + height + nine + TEN + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-bundle.t new/mercurial-2.9.1/tests/test-bundle.t --- old/mercurial-2.9/tests/test-bundle.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-bundle.t 2014-03-01 22:22:30.000000000 +0100 @@ -84,6 +84,11 @@ searching for changes no changes found +Verify that there are no leaked temporary files after pull (issue2797) + + $ ls test/.hg | grep .hg10un + [1] + Pull full.hg into empty (using --cwd) $ hg --cwd empty pull ../full.hg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-merge-remove.t new/mercurial-2.9.1/tests/test-merge-remove.t --- old/mercurial-2.9/tests/test-merge-remove.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-merge-remove.t 2014-03-01 22:22:30.000000000 +0100 @@ -85,3 +85,30 @@ $ hg diff +Merge should not overwrite local file that is untracked after remove + + $ rm * + $ hg up -qC + $ hg rm bar + $ hg ci -m 'remove bar' + $ echo 'memories of buried pirate treasure' > bar + $ hg merge + bar: untracked file differs + abort: untracked files in working directory differ from files in requested revision + [255] + $ cat bar + memories of buried pirate treasure + +Those who use force will lose + + $ hg merge -f + remote changed bar which local deleted + use (c)hanged version or leave (d)eleted? c + merging foo1 and foo to foo1 + 1 files updated, 1 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ cat bar + bleh + $ hg st + M bar + M foo1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-phases.t new/mercurial-2.9.1/tests/test-phases.t --- old/mercurial-2.9/tests/test-phases.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-phases.t 2014-03-01 22:22:30.000000000 +0100 @@ -549,4 +549,13 @@ o 0 public A +test verify repo containing hidden changesets, which should not abort just +because repo.cancopy() is False + $ cd ../initialrepo + $ hg verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 7 files, 8 changesets, 7 total revisions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-purge.t new/mercurial-2.9.1/tests/test-purge.t --- old/mercurial-2.9/tests/test-purge.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-purge.t 2014-03-01 22:22:30.000000000 +0100 @@ -21,7 +21,7 @@ delete an empty directory $ mkdir empty_dir - $ hg purge -p + $ hg purge -p -v empty_dir $ hg purge -v removing directory empty_dir diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-2.9/tests/test-rebase-bookmarks.t new/mercurial-2.9.1/tests/test-rebase-bookmarks.t --- old/mercurial-2.9/tests/test-rebase-bookmarks.t 2014-02-01 22:20:34.000000000 +0100 +++ new/mercurial-2.9.1/tests/test-rebase-bookmarks.t 2014-03-01 22:22:30.000000000 +0100 @@ -85,6 +85,24 @@ |/ o 0: 'A' bookmarks: Y@diverge +Do not try to keep active but deleted divergent bookmark + + $ cd .. + $ hg clone -q a a4 + + $ cd a4 + $ hg up -q 2 + $ hg book W@diverge + + $ hg rebase -s W -d . + saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob) + + $ hg bookmarks + W 3:0d3554f74897 + X 1:6c81ed0049f8 + Y 2:49cb3485fa0c + Z 2:49cb3485fa0c + Keep bookmarks to the correct rebased changeset $ cd .. -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org