10 Jun
2014
10 Jun
'14
12:38
Hello community, here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2014-06-10 14:38:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-05-09 20:30:29.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mercurial.new/mercurial.changes 2014-06-10 14:38:46.000000000 +0200 @@ -1,0 +2,25 @@ +Sun Jun 8 05:22:41 UTC 2014 - develop7@develop7.info + +- update to version 3.0.1 + * alias: change return code of bad definition to 255 + * alias: fix loss of non-zero return code in command aliases + * alias: handle shlex error in command aliases + * bookmarks: properly align multi-byte characters + * bugzilla: support Bugzilla 4.4.3+ API login token authentication (issue4257) + * bundle2: fix bundle2 pulling all revs on empty pulls + * bundle2: fix configuration name mismatch + * changelog: ensure changelog._delaybuf is initialized + * color: don't fail on error messages when no curses (issue4237) + * exchange: propagate arguments to the _getbundleextrapart function + * localrepo: prevent leak of transaction object (issue4258) + * proxy: remove unneeded _set_hostport for compatibility with Python 2.7.7rc1 + * setup.py, make: avoid problems with outdated, existing hgext/__index__.py* + * subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos + * subrepo: invoke "_sanitize()" also after "git merge --ff" + * subrepo: make "_sanitize()" take absolute path to the root of subrepo + * subrepo: make "_sanitize()" work + * subrepo: normalize path in the specific way for problematic encodings + * templates: fix ifcontains against sets with length > 1 (issue4259) + * win32: backout 1a9ebc83a74c + +------------------------------------------------------------------- Old: ---- mercurial-3.0.tar.gz New: ---- mercurial-3.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mercurial.spec ++++++ --- /var/tmp/diff_new_pack.A8UInT/_old 2014-06-10 14:38:47.000000000 +0200 +++ /var/tmp/diff_new_pack.A8UInT/_new 2014-06-10 14:38:47.000000000 +0200 @@ -17,7 +17,7 @@ Name: mercurial -Version: 3.0 +Version: 3.0.1 Release: 0 Summary: Scalable Distributed SCM License: GPL-2.0+ ++++++ mercurial-3.0.tar.gz -> mercurial-3.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/.hgsigs new/mercurial-3.0.1/.hgsigs --- old/mercurial-3.0/.hgsigs 2014-05-02 00:48:02.000000000 +0200 +++ new/mercurial-3.0.1/.hgsigs 2014-06-01 23:15:44.000000000 +0200 @@ -87,3 +87,4 @@ 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/.hgtags new/mercurial-3.0.1/.hgtags --- old/mercurial-3.0/.hgtags 2014-05-02 00:48:02.000000000 +0200 +++ new/mercurial-3.0.1/.hgtags 2014-06-01 23:15:44.000000000 +0200 @@ -100,3 +100,4 @@ b96cb15ec9e04d8ac5ee08b34fcbbe4200588965 2.9.1 3f83fc5cfe715d292069ee8417c83804f6c6c1e4 2.9.2 564f55b251224f16508dd1311452db7780dafe2b 3.0-rc +2195ac506c6ababe86985b932f4948837c0891b5 3.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/Makefile new/mercurial-3.0.1/Makefile --- old/mercurial-3.0/Makefile 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/Makefile 2014-06-01 23:15:14.000000000 +0200 @@ -56,7 +56,7 @@ find contrib doc hgext i18n mercurial tests \ \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';' rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/[a-z]*.py))) - rm -f MANIFEST MANIFEST.in mercurial/__version__.py tests/*.err + rm -f MANIFEST MANIFEST.in mercurial/__version__.py hgext/__index__.py tests/*.err rm -rf build mercurial/locale $(MAKE) -C doc clean diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/PKG-INFO new/mercurial-3.0.1/PKG-INFO --- old/mercurial-3.0/PKG-INFO 2014-05-02 00:48:10.000000000 +0200 +++ new/mercurial-3.0.1/PKG-INFO 2014-06-01 23:15:54.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: mercurial -Version: 3.0 +Version: 3.0.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-3.0/hgext/bugzilla.py new/mercurial-3.0.1/hgext/bugzilla.py --- old/mercurial-3.0/hgext/bugzilla.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/hgext/bugzilla.py 2014-06-01 23:15:14.000000000 +0200 @@ -1,7 +1,7 @@ # bugzilla.py - bugzilla integration for mercurial # # Copyright 2006 Vadim Gelfer-# Copyright 2011-2 Jim Hague +# Copyright 2011-4 Jim Hague # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. @@ -523,7 +523,7 @@ The regular xmlrpclib transports ignore cookies. Which causes a bit of a problem when you need a cookie-based login, as with - the Bugzilla XMLRPC interface. + the Bugzilla XMLRPC interface prior to 4.4.3. So this is a helper for defining a Transport which looks for cookies being set in responses and saves them to add to all future @@ -620,7 +620,9 @@ ver = self.bzproxy.Bugzilla.version()['version'].split('.') self.bzvermajor = int(ver[0]) self.bzverminor = int(ver[1]) - self.bzproxy.User.login({'login': user, 'password': passwd}) + login = self.bzproxy.User.login({'login': user, 'password': passwd, + 'restrict_login': True}) + self.bztoken = login.get('token', '') def transport(self, uri): if urlparse.urlparse(uri, "http")[0] == "https": @@ -631,13 +633,15 @@ def get_bug_comments(self, id): """Return a string with all comment text for a bug.""" c = self.bzproxy.Bug.comments({'ids': [id], - 'include_fields': ['text']}) + 'include_fields': ['text'], + 'token': self.bztoken}) return ''.join([t['text'] for t in c['bugs'][str(id)]['comments']]) def filter_real_bug_ids(self, bugs): probe = self.bzproxy.Bug.get({'ids': sorted(bugs.keys()), 'include_fields': [], 'permissive': True, + 'token': self.bztoken, }) for badbug in probe['faults']: id = badbug['id'] @@ -662,6 +666,7 @@ if 'fix' in newstate: args['status'] = self.fixstatus args['resolution'] = self.fixresolution + args['token'] = self.bztoken self.bzproxy.Bug.update(args) else: if 'fix' in newstate: @@ -719,10 +724,12 @@ than the subject line, and leave a blank line after it. ''' user = self.map_committer(committer) - matches = self.bzproxy.User.get({'match': [user]}) + matches = self.bzproxy.User.get({'match': [user], + 'token': self.bztoken}) if not matches['users']: user = self.ui.config('bugzilla', 'user', 'bugs') - matches = self.bzproxy.User.get({'match': [user]}) + matches = self.bzproxy.User.get({'match': [user], + 'token': self.bztoken}) if not matches['users']: raise util.Abort(_("default bugzilla user %s email not found") % user) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/hgext/color.py new/mercurial-3.0.1/hgext/color.py --- old/mercurial-3.0/hgext/color.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/hgext/color.py 2014-06-01 23:15:14.000000000 +0200 @@ -230,7 +230,7 @@ 'cyan': (False, curses.COLOR_CYAN), 'white': (False, curses.COLOR_WHITE)} except ImportError: - _terminfo_params = False + _terminfo_params = {} _styles = {'grep.match': 'red bold', 'grep.linenumber': 'green', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/i18n/de.po new/mercurial-3.0.1/i18n/de.po --- old/mercurial-3.0/i18n/de.po 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/i18n/de.po 2014-06-01 23:15:14.000000000 +0200 @@ -21,7 +21,7 @@ "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-29 16:47+0100\n" -"PO-Revision-Date: 2013-09-30 20:52+0100\n" +"PO-Revision-Date: 2014-05-07 09:14+0200\n" "Last-Translator: Simon Heimberg \n" "Language-Team: \n" "Language: de\n" @@ -3437,11 +3437,11 @@ msgstr "hg fetch [QUELLE]" msgid "commands to sign and verify changesets" -msgstr "Nutzt eine Programm um den Fehlerstatus zu bestimmen" +msgstr "Kommandos um Änderungssätze zu signieren und Signaturen zu verifizieren" #, python-format msgid "%s Unknown key ID \"%s\"\n" -msgstr "" +msgstr "%s unbekannte Schlüssel-ID \"%s\"\n" #, python-format msgid "%s Bad signature from \"%s\"\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/i18n/ja.po new/mercurial-3.0.1/i18n/ja.po --- old/mercurial-3.0/i18n/ja.po 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/i18n/ja.po 2014-06-01 23:15:14.000000000 +0200 @@ -149,8 +149,8 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-04-30 22:52+0900\n" -"PO-Revision-Date: 2014-04-30 23:08+0900\n" +"POT-Creation-Date: 2014-05-30 19:32+0900\n" +"PO-Revision-Date: 2014-05-30 19:43+0900\n" "Last-Translator: Japanese translation team \n" "Language-Team: Japanese\n" "Language: ja\n" @@ -8204,11 +8204,11 @@ msgid "empty \"rev\" revision set - nothing to rebase\n" msgstr "--rev での指定対象が空です - 移動対象がありません\n" -msgid "empty \"source\" revision set - nothing to rebase" -msgstr "--soruce での指定対象が空です - 移動対象がありません" +msgid "empty \"source\" revision set - nothing to rebase\n" +msgstr "--soruce での指定対象が空です - 移動対象がありません\n" -msgid "empty \"base\" revision set - can't compute rebase set" -msgstr "--base での指定対象が空です - 移動対象を算出できません" +msgid "empty \"base\" revision set - can't compute rebase set\n" +msgstr "--base での指定対象が空です - 移動対象を算出できません\n" #, python-format msgid "nothing to rebase - %s is both \"base\" and destination\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/i18n/zh_TW.po new/mercurial-3.0.1/i18n/zh_TW.po --- old/mercurial-3.0/i18n/zh_TW.po 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/i18n/zh_TW.po 2014-06-01 23:15:14.000000000 +0200 @@ -8,11 +8,10 @@ "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-10-31 22:27+0100\n" -"PO-Revision-Date: 2009-10-25 12:50+0100\n" -"Last-Translator: Chia-Huan Wu ," -"leolarrel \n" +"PO-Revision-Date: 2014-05-07 09:20+0200\n" +"Last-Translator: Chia-Huan Wu ,leolarrel \n" "Language-Team: Traditional Chinese\n" -"Language: \n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/__version__.py new/mercurial-3.0.1/mercurial/__version__.py --- old/mercurial-3.0/mercurial/__version__.py 2014-05-02 00:48:09.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/__version__.py 2014-06-01 23:15:52.000000000 +0200 @@ -1,2 +1,2 @@ # this file is autogenerated by setup.py -version = "3.0" +version = "3.0.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/changelog.py new/mercurial-3.0.1/mercurial/changelog.py --- old/mercurial-3.0/mercurial/changelog.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/changelog.py 2014-06-01 23:15:14.000000000 +0200 @@ -127,6 +127,7 @@ self._generaldelta = False self._realopener = opener self._delayed = False + self._delaybuf = [] self._divert = False self.filteredrevs = frozenset() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/commands.py new/mercurial-3.0.1/mercurial/commands.py --- old/mercurial-3.0/mercurial/commands.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/commands.py 2014-06-01 23:15:14.000000000 +0200 @@ -951,8 +951,9 @@ if ui.quiet: ui.write("%s\n" % bmark, label=label) else: - ui.write(" %s %-25s %d:%s\n" % ( - prefix, bmark, repo.changelog.rev(n), hexfn(n)), + pad = " " * (25 - encoding.colwidth(bmark)) + ui.write(" %s %s%s %d:%s\n" % ( + prefix, bmark, pad, repo.changelog.rev(n), hexfn(n)), label=label) @command('branch', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/dispatch.py new/mercurial-3.0.1/mercurial/dispatch.py --- old/mercurial-3.0/mercurial/dispatch.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/dispatch.py 2014-06-01 23:15:14.000000000 +0200 @@ -355,7 +355,7 @@ if not self.definition: def fn(ui, *args): ui.warn(_("no definition for alias '%s'\n") % self.name) - return 1 + return -1 self.fn = fn self.badalias = True return @@ -383,7 +383,16 @@ self.fn = fn return - args = shlex.split(self.definition) + try: + args = shlex.split(self.definition) + except ValueError, inst: + def fn(ui, *args): + ui.warn(_("error in definition for alias '%s': %s\n") + % (self.name, inst)) + return -1 + self.fn = fn + self.badalias = True + return self.cmdname = cmd = args.pop(0) args = map(util.expandpath, args) @@ -393,7 +402,7 @@ ui.warn(_("error in definition for alias '%s': %s may only " "be given on the command line\n") % (self.name, invalidarg)) - return 1 + return -1 self.fn = fn self.badalias = True @@ -425,14 +434,14 @@ commands.help_(ui, cmd, unknowncmd=True) except error.UnknownCommand: pass - return 1 + return -1 self.fn = fn self.badalias = True except error.AmbiguousCommand: def fn(ui, *args): ui.warn(_("alias '%s' resolves to ambiguous command '%s'\n") \ % (self.name, cmd)) - return 1 + return -1 self.fn = fn self.badalias = True @@ -445,7 +454,7 @@ return self.fn(ui, *args, **opts) else: try: - util.checksignature(self.fn)(ui, *args, **opts) + return util.checksignature(self.fn)(ui, *args, **opts) except error.SignatureError: args = ' '.join([self.cmdname] + self.args) ui.debug("alias '%s' expands to '%s'\n" % (self.name, args)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/exchange.py new/mercurial-3.0.1/mercurial/exchange.py --- old/mercurial-3.0/mercurial/exchange.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/exchange.py 2014-06-01 23:15:14.000000000 +0200 @@ -537,7 +537,7 @@ lock = pullop.repo.lock() try: _pulldiscovery(pullop) - if (pullop.repo.ui.configbool('server', 'bundle2', False) + if (pullop.repo.ui.configbool('experimental', 'bundle2-exp', False) and pullop.remote.capable('bundle2-exp')): _pullbundle2(pullop) if 'changegroup' in pullop.todosteps: @@ -573,12 +573,13 @@ kwargs['bundlecaps'].add('bundle2=' + urllib.quote(capsblob)) # pulling changegroup pullop.todosteps.remove('changegroup') + + kwargs['common'] = pullop.common + kwargs['heads'] = pullop.heads or pullop.rheads if not pullop.fetch: - pullop.repo.ui.status(_("no changes found\n")) - pullop.cgresult = 0 + pullop.repo.ui.status(_("no changes found\n")) + pullop.cgresult = 0 else: - kwargs['common'] = pullop.common - kwargs['heads'] = pullop.heads or pullop.rheads if pullop.heads is None and list(pullop.common) == [nullid]: pullop.repo.ui.status(_("requesting all changes\n")) _pullbundle2extraprepare(pullop, kwargs) @@ -589,8 +590,10 @@ op = bundle2.processbundle(pullop.repo, bundle, pullop.gettransaction) except bundle2.UnknownPartError, exc: raise util.Abort('missing support for %s' % exc) - assert len(op.records['changegroup']) == 1 - pullop.cgresult = op.records['changegroup'][0]['return'] + + if pullop.fetch: + assert len(op.records['changegroup']) == 1 + pullop.cgresult = op.records['changegroup'][0]['return'] def _pullbundle2extraprepare(pullop, kwargs): """hook function so that extensions can extend the getbundle call""" @@ -684,7 +687,7 @@ The implementation is at a very early stage and will get massive rework when the API of bundle is refined. """ - # build bundle here. + # build changegroup bundle here. cg = changegroup.getbundle(repo, source, heads=heads, common=common, bundlecaps=bundlecaps) if bundlecaps is None or 'HG2X' not in bundlecaps: @@ -697,10 +700,11 @@ blob = urllib.unquote(bcaps[len('bundle2='):]) b2caps.update(bundle2.decodecaps(blob)) bundler = bundle2.bundle20(repo.ui, b2caps) - part = bundle2.bundlepart('b2x:changegroup', data=cg.getchunks()) - bundler.addpart(part) - _getbundleextrapart(bundler, repo, source, heads=None, common=None, - bundlecaps=None, **kwargs) + if cg: + part = bundle2.bundlepart('b2x:changegroup', data=cg.getchunks()) + bundler.addpart(part) + _getbundleextrapart(bundler, repo, source, heads=heads, common=common, + bundlecaps=bundlecaps, **kwargs) return util.chunkbuffer(bundler.getchunks()) def _getbundleextrapart(bundler, repo, source, heads=None, common=None, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/extensions.py new/mercurial-3.0.1/mercurial/extensions.py --- old/mercurial-3.0/mercurial/extensions.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/extensions.py 2014-06-01 23:15:14.000000000 +0200 @@ -281,7 +281,7 @@ return dict((name, gettext(desc)) for name, desc in __index__.docs.iteritems() if name not in _order) - except ImportError: + except (ImportError, AttributeError): pass paths = _disabledpaths() @@ -304,7 +304,7 @@ return else: return gettext(__index__.docs.get(name)) - except ImportError: + except (ImportError, AttributeError): pass paths = _disabledpaths() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/localrepo.py new/mercurial-3.0.1/mercurial/localrepo.py --- old/mercurial-3.0/mercurial/localrepo.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/localrepo.py 2014-06-01 23:15:14.000000000 +0200 @@ -858,7 +858,7 @@ _("abandoned transaction found - run hg recover")) def onclose(): - self.store.write(tr) + self.store.write(self._transref()) self._writejournal(desc) renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/pathutil.py new/mercurial-3.0.1/mercurial/pathutil.py --- old/mercurial-3.0/mercurial/pathutil.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/pathutil.py 2014-06-01 23:15:14.000000000 +0200 @@ -142,3 +142,25 @@ name = dirname raise util.Abort(_("%s not under root '%s'") % (myname, root)) + +def normasprefix(path): + '''normalize the specified path as path prefix + + Returned vaule can be used safely for "p.startswith(prefix)", + "p[len(prefix):]", and so on. + + For efficiency, this expects "path" argument to be already + normalized by "os.path.normpath", "os.path.realpath", and so on. + + See also issue3033 for detail about need of this function. + + >>> normasprefix('/foo/bar').replace(os.sep, '/') + '/foo/bar/' + >>> normasprefix('/').replace(os.sep, '/') + '/' + ''' + d, p = os.path.splitdrive(path) + if len(p) != len(os.sep): + return path + os.sep + else: + return path diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/subrepo.py new/mercurial-3.0.1/mercurial/subrepo.py --- old/mercurial-3.0/mercurial/subrepo.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/subrepo.py 2014-06-01 23:15:14.000000000 +0200 @@ -276,8 +276,7 @@ parent = repo while util.safehasattr(parent, '_subparent'): parent = parent._subparent - p = parent.root.rstrip(os.sep) - return repo.root[len(p) + 1:] + return repo.root[len(pathutil.normasprefix(parent.root)):] def subrelpath(sub): """return path to this subrepo as seen from outermost repo""" @@ -314,17 +313,19 @@ if abort: raise util.Abort(_("default path for subrepository not found")) -def _sanitize(ui, path): - def v(arg, dirname, names): +def _sanitize(ui, path, ignore): + for dirname, dirs, names in os.walk(path): + for i, d in enumerate(dirs): + if d.lower() == ignore: + del dirs[i] + break if os.path.basename(dirname).lower() != '.hg': - return + continue for f in names: if f.lower() == 'hgrc': - ui.warn( - _("warning: removing potentially hostile .hg/hgrc in '%s'") - % path) + ui.warn(_("warning: removing potentially hostile 'hgrc' " + "in '%s'\n") % dirname) os.unlink(os.path.join(dirname, f)) - os.walk(path, v, None) def subrepo(ctx, path): """return instance of the right subrepo class for subrepo in path""" @@ -1052,7 +1053,7 @@ # update to a directory which has since been deleted and recreated. args.append('%s@%s' % (state[0], state[1])) status, err = self._svncommand(args, failok=True) - _sanitize(self._ui, self._path) + _sanitize(self._ui, self._ctx._repo.wjoin(self._path), '.svn') if not re.search('Checked out revision [0-9]+.', status): if ('is already a working copy for a different URL' in err and (self._wcchanged()[:2] == (False, False))): @@ -1345,7 +1346,7 @@ self._gitcommand(['reset', 'HEAD']) cmd.append('-f') self._gitcommand(cmd + args) - _sanitize(self._ui, self._path) + _sanitize(self._ui, self._abspath, '.git') def rawcheckout(): # no branch to checkout, check it out with no branch @@ -1394,6 +1395,7 @@ if tracking[remote] != self._gitcurrentbranch(): checkout([tracking[remote]]) self._gitcommand(['merge', '--ff', remote]) + _sanitize(self._ui, self._abspath, '.git') else: # a real merge would be required, just checkout the revision rawcheckout() @@ -1429,7 +1431,7 @@ self.get(state) # fast forward merge elif base != self._state[1]: self._gitcommand(['merge', '--no-commit', revision]) - _sanitize(self._ui, self._path) + _sanitize(self._ui, self._abspath, '.git') if self.dirty(): if self._gitstate() != revision: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/templater.py new/mercurial-3.0.1/mercurial/templater.py --- old/mercurial-3.0/mercurial/templater.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/templater.py 2014-06-01 23:15:14.000000000 +0200 @@ -310,7 +310,9 @@ item = stringify(args[0][0](context, mapping, args[0][1])) items = args[1][0](context, mapping, args[1][1]) - if item in items: + # Iterating over items gives a formatted string, so we iterate + # directly over the raw values. + if item in [i.values()[0] for i in items()]: yield _evalifliteral(args[2], context, mapping) elif len(args) == 4: yield _evalifliteral(args[3], context, mapping) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/url.py new/mercurial-3.0.1/mercurial/url.py --- old/mercurial-3.0/mercurial/url.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/url.py 2014-06-01 23:15:14.000000000 +0200 @@ -225,7 +225,6 @@ proxyheaders = dict( [(x, self.headers[x]) for x in self.headers if x.lower().startswith('proxy-')]) - self._set_hostport(self.host, self.port) self.send('CONNECT %s HTTP/1.0\r\n' % self.realhostport) for header in proxyheaders.iteritems(): self.send('%s: %s\r\n' % header) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/win32.py new/mercurial-3.0.1/mercurial/win32.py --- old/mercurial-3.0/mercurial/win32.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/win32.py 2014-06-01 23:15:14.000000000 +0200 @@ -25,7 +25,6 @@ # GetLastError _ERROR_SUCCESS = 0 _ERROR_NO_MORE_FILES = 18 -_ERROR_SHARING_VIOLATION = 32 _ERROR_INVALID_PARAMETER = 87 _ERROR_INSUFFICIENT_BUFFER = 122 @@ -61,9 +60,7 @@ _OPEN_EXISTING = 3 -_FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 _FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 -_FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 # SetFileAttributes _FILE_ATTRIBUTE_NORMAL = 0x80 @@ -424,18 +421,11 @@ def unlink(f): '''try to implement POSIX' unlink semantics on Windows''' - # If we can open f exclusively, no other processes must have open handles - # for it and we can expect its name will be deleted immediately when we - # close the handle unless we have another in the same process. We also - # expect we shall simply fail to open f if it is a directory. - fh = _kernel32.CreateFileA(f, 0, 0, None, _OPEN_EXISTING, - _FILE_FLAG_OPEN_REPARSE_POINT | _FILE_FLAG_DELETE_ON_CLOSE, None) - if fh != _INVALID_HANDLE_VALUE: - _kernel32.CloseHandle(fh) - return - error = _kernel32.GetLastError() - if error != _ERROR_SHARING_VIOLATION: - raise ctypes.WinError(error) + if os.path.isdir(f): + # use EPERM because it is POSIX prescribed value, even though + # unlink(2) on directories returns EISDIR on Linux + raise IOError(errno.EPERM, + "Unlinking directory not permitted: '%s'" % f) # POSIX allows to unlink and rename open files. Windows has serious # problems with doing that: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/mercurial/wireproto.py new/mercurial-3.0.1/mercurial/wireproto.py --- old/mercurial-3.0/mercurial/wireproto.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/mercurial/wireproto.py 2014-06-01 23:15:14.000000000 +0200 @@ -619,9 +619,15 @@ opts = options('debugwireargs', ['three', 'four'], others) return repo.debugwireargs(one, two, **opts) +# List of options accepted by getbundle. +# +# Meant to be extended by extensions. It is the extension's responsibility to +# ensure such options are properly processed in exchange.getbundle. +gboptslist = ['heads', 'common', 'bundlecaps'] + @wireprotocommand('getbundle', '*') def getbundle(repo, proto, others): - opts = options('getbundle', ['heads', 'common', 'bundlecaps'], others) + opts = options('getbundle', gboptslist, others) for k, v in opts.iteritems(): if k in ('heads', 'common'): opts[k] = decodelist(v) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/setup.py new/mercurial-3.0.1/setup.py --- old/mercurial-3.0/setup.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/setup.py 2014-06-01 23:15:14.000000000 +0200 @@ -331,7 +331,9 @@ def run(self): if os.path.exists(self._indexfilename): - os.unlink(self._indexfilename) + f = open(self._indexfilename, 'w') + f.write('# empty\n') + f.close() # here no extension enabled, disabled() lists up everything code = ('import pprint; from mercurial import extensions; ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-alias.t new/mercurial-3.0.1/tests/test-alias.t --- old/mercurial-3.0/tests/test-alias.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-alias.t 2014-06-01 23:15:14.000000000 +0200 @@ -4,12 +4,14 @@ > # should clobber ci but not commit (issue2993) > ci = version > myinit = init + > mycommit = commit > optionalrepo = showconfig alias.myinit > cleanstatus = status -c > unknown = bargle > ambiguous = s > recursive = recursive > nodefinition = + > noclosingquotation = ' > no--cwd = status --cwd elsewhere > no-R = status -R elsewhere > no--repo = status --repo elsewhere @@ -41,6 +43,7 @@ > escaped2 = !sh -c 'echo "HGFOO is \$\$HGFOO"' > escaped3 = !sh -c 'echo "\$1 is \$\$\$1"' > escaped4 = !printf '\$\$0 \$\$@\n' + > exit1 = !sh -c 'exit 1' > > [defaults] > mylog = -q @@ -58,6 +61,7 @@ $ hg unknown alias 'unknown' resolves to unknown command 'bargle' + [255] $ hg help unknown alias 'unknown' resolves to unknown command 'bargle' @@ -66,6 +70,7 @@ $ hg ambiguous alias 'ambiguous' resolves to ambiguous command 's' + [255] $ hg help ambiguous alias 'ambiguous' resolves to ambiguous command 's' @@ -74,6 +79,7 @@ $ hg recursive alias 'recursive' resolves to unknown command 'recursive' + [255] $ hg help recursive alias 'recursive' resolves to unknown command 'recursive' @@ -82,30 +88,45 @@ $ hg nodef no definition for alias 'nodefinition' + [255] $ hg help nodef no definition for alias 'nodefinition' +no closing quotation + + $ hg noclosing + error in definition for alias 'noclosingquotation': No closing quotation + [255] + $ hg help noclosing + error in definition for alias 'noclosingquotation': No closing quotation + + invalid options $ hg no--cwd error in definition for alias 'no--cwd': --cwd may only be given on the command line + [255] $ hg help no--cwd error in definition for alias 'no--cwd': --cwd may only be given on the command line $ hg no-R error in definition for alias 'no-R': -R may only be given on the command line + [255] $ hg help no-R error in definition for alias 'no-R': -R may only be given on the command line $ hg no--repo error in definition for alias 'no--repo': --repo may only be given on the command line + [255] $ hg help no--repo error in definition for alias 'no--repo': --repo may only be given on the command line $ hg no--repository error in definition for alias 'no--repository': --repository may only be given on the command line + [255] $ hg help no--repository error in definition for alias 'no--repository': --repository may only be given on the command line $ hg no--config error in definition for alias 'no--config': --config may only be given on the command line + [255] optional repository @@ -125,6 +146,7 @@ $ hg nousage no rollback information available + [1] $ echo foo > foo $ hg commit -Amfoo @@ -442,3 +464,11 @@ $ hg --config alias.log='id' history $ cd ../.. + +return code of command and shell aliases: + + $ hg mycommit -R alias + nothing changed + [1] + $ hg exit1 + [1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-bundle2.t new/mercurial-3.0.1/tests/test-bundle2.t --- old/mercurial-3.0/tests/test-bundle2.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-bundle2.t 2014-06-01 23:15:14.000000000 +0200 @@ -8,6 +8,14 @@ > code. We still need to be able to test it while it grow up. > """ > + > try: + > import msvcrt + > msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) + > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) + > msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) + > except ImportError: + > pass + > > import sys > from mercurial import cmdutil > from mercurial import util @@ -791,6 +799,12 @@ added 1 changesets with 1 changes to 1 files (+1 heads) (run 'hg heads' to see heads, 'hg merge' to merge) +pull empty + + $ hg -R other pull -r 24b6387c8c8c + pulling from $TESTTMP/main (glob) + no changes found + push $ hg -R main push other --rev eea13746799a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-command-template.t new/mercurial-3.0.1/tests/test-command-template.t --- old/mercurial-3.0/tests/test-command-template.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-command-template.t 2014-06-01 23:15:14.000000000 +0200 @@ -1819,6 +1819,11 @@ 1 not current rev 0 not current rev + $ hg log --template '{rev} {ifcontains(rev, revset(". + .^"), "match rev", "not match rev")}\n' + 2 match rev + 1 match rev + 0 not match rev + $ hg log --template '{rev} Parents: {revset("parents(%s)", rev)}\n' 2 Parents: 1 1 Parents: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-doctest.py new/mercurial-3.0.1/tests/test-doctest.py --- old/mercurial-3.0/tests/test-doctest.py 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-doctest.py 2014-06-01 23:15:14.000000000 +0200 @@ -19,6 +19,7 @@ testmod('mercurial.hgweb.hgwebdir_mod') testmod('mercurial.match') testmod('mercurial.minirst') +testmod('mercurial.pathutil') testmod('mercurial.revset') testmod('mercurial.store') testmod('mercurial.subrepo') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-encoding-align.t new/mercurial-3.0.1/tests/test-encoding-align.t --- old/mercurial-3.0/tests/test-encoding-align.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-encoding-align.t 2014-06-01 23:15:14.000000000 +0200 @@ -117,22 +117,25 @@ marked working directory as branch \xe7\x9f\xad\xe5\x90\x8d (esc) (branches are permanent and global, did you want a bookmark?) $ hg tag $S + $ hg book -f $S $ hg branch $M marked working directory as branch MIDDLE_ (branches are permanent and global, did you want a bookmark?) $ hg tag $M + $ hg book -f $M $ hg branch $L marked working directory as branch \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc) (branches are permanent and global, did you want a bookmark?) $ hg tag $L + $ hg book -f $L check alignment of branches - $ hg tags - tip 5:d745ff46155b - \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d 4:9259be597f19 (esc) - MIDDLE_ 3:b06c5b6def9e - \xe7\x9f\xad\xe5\x90\x8d 2:64a70663cee8 (esc) + $ hg branches + \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d 5:d745ff46155b (esc) + MIDDLE_ 4:9259be597f19 (inactive) + \xe7\x9f\xad\xe5\x90\x8d 3:b06c5b6def9e (inactive) (esc) + default 2:64a70663cee8 (inactive) check alignment of tags @@ -142,4 +145,9 @@ MIDDLE_ 3:b06c5b6def9e \xe7\x9f\xad\xe5\x90\x8d 2:64a70663cee8 (esc) - $ cd .. +check alignment of bookmarks + + $ hg book + MIDDLE_ 5:d745ff46155b + \xe7\x9f\xad\xe5\x90\x8d 4:9259be597f19 (esc) + * \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d 5:d745ff46155b (esc) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-status-color.t new/mercurial-3.0.1/tests/test-status-color.t --- old/mercurial-3.0/tests/test-status-color.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-status-color.t 2014-06-01 23:15:14.000000000 +0200 @@ -319,4 +319,17 @@ \x1b[0;31;1mU a\x1b[0m (esc) \x1b[0;32;1mR b\x1b[0m (esc) +color coding of error message with current availability of curses + + $ hg unknowncommand > /dev/null + hg: unknown command 'unknowncommand' + [255] + +color coding of error message without curses + + $ echo 'raise ImportError' > curses.py + $ PYTHONPATH=`pwd`:$PYTHONPATH hg unknowncommand > /dev/null + hg: unknown command 'unknowncommand' + [255] + $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-subrepo-git.t new/mercurial-3.0.1/tests/test-subrepo-git.t --- old/mercurial-3.0/tests/test-subrepo-git.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-subrepo-git.t 2014-06-01 23:15:14.000000000 +0200 @@ -566,3 +566,105 @@ #endif $ cd .. + +Test sanitizing ".hg/hgrc" in subrepo + + $ cd t + $ hg tip -q + 7:af6d2edbb0d3 + $ hg update -q -C af6d2edbb0d3 + $ cd s + $ git checkout -q -b sanitize-test + $ mkdir .hg + $ echo '.hg/hgrc in git repo' > .hg/hgrc + $ mkdir -p sub/.hg + $ echo 'sub/.hg/hgrc in git repo' > sub/.hg/hgrc + $ git add .hg sub + $ git commit -qm 'add .hg/hgrc to be sanitized at hg update' + $ git push -q origin sanitize-test + $ cd .. + $ grep ' s$' .hgsubstate + 32a343883b74769118bb1d3b4b1fbf9156f4dddc s + $ hg commit -qm 'commit with git revision including .hg/hgrc' + $ hg parents -q + 8:3473d20bddcf + $ grep ' s$' .hgsubstate + c4069473b459cf27fd4d7c2f50c4346b4e936599 s + $ cd .. + + $ hg -R tc pull -q + $ hg -R tc update -q -C 3473d20bddcf 2>&1 | sort + warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/.hg' (glob) + warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/sub/.hg' (glob) + $ cd tc + $ hg parents -q + 8:3473d20bddcf + $ grep ' s$' .hgsubstate + c4069473b459cf27fd4d7c2f50c4346b4e936599 s + $ cat s/.hg/hgrc + cat: s/.hg/hgrc: No such file or directory + [1] + $ cat s/sub/.hg/hgrc + cat: s/sub/.hg/hgrc: No such file or directory + [1] + $ cd .. + +additional test for "git merge --ff" route: + + $ cd t + $ hg tip -q + 8:3473d20bddcf + $ hg update -q -C af6d2edbb0d3 + $ cd s + $ git checkout -q testing + $ mkdir .hg + $ echo '.hg/hgrc in git repo' > .hg/hgrc + $ mkdir -p sub/.hg + $ echo 'sub/.hg/hgrc in git repo' > sub/.hg/hgrc + $ git add .hg sub + $ git commit -qm 'add .hg/hgrc to be sanitized at hg update (git merge --ff)' + $ git push -q origin testing + $ cd .. + $ grep ' s$' .hgsubstate + 32a343883b74769118bb1d3b4b1fbf9156f4dddc s + $ hg commit -qm 'commit with git revision including .hg/hgrc' + $ hg parents -q + 9:ed23f7fe024e + $ grep ' s$' .hgsubstate + f262643c1077219fbd3858d54e78ef050ef84fbf s + $ cd .. + + $ cd tc + $ hg update -q -C af6d2edbb0d3 + $ cat s/.hg/hgrc + cat: s/.hg/hgrc: No such file or directory + [1] + $ cat s/sub/.hg/hgrc + cat: s/sub/.hg/hgrc: No such file or directory + [1] + $ cd .. + $ hg -R tc pull -q + $ hg -R tc update -q -C ed23f7fe024e 2>&1 | sort + warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/.hg' (glob) + warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/sub/.hg' (glob) + $ cd tc + $ hg parents -q + 9:ed23f7fe024e + $ grep ' s$' .hgsubstate + f262643c1077219fbd3858d54e78ef050ef84fbf s + $ cat s/.hg/hgrc + cat: s/.hg/hgrc: No such file or directory + [1] + $ cat s/sub/.hg/hgrc + cat: s/sub/.hg/hgrc: No such file or directory + [1] + +Test that sanitizing is omitted in meta data area: + + $ mkdir s/.git/.hg + $ echo '.hg/hgrc in git metadata area' > s/.git/.hg/hgrc + $ hg update -q -C af6d2edbb0d3 + checking out detached HEAD in subrepo s + check out a git branch if you intend to make changes + + $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0/tests/test-subrepo-svn.t new/mercurial-3.0.1/tests/test-subrepo-svn.t --- old/mercurial-3.0/tests/test-subrepo-svn.t 2014-05-02 00:47:23.000000000 +0200 +++ new/mercurial-3.0.1/tests/test-subrepo-svn.t 2014-06-01 23:15:14.000000000 +0200 @@ -632,3 +632,54 @@ Checked out revision 15. 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd .. + +Test sanitizing ".hg/hgrc" in subrepo + + $ cd sub/t + $ hg update -q -C tip + $ cd s + $ mkdir .hg + $ echo '.hg/hgrc in svn repo' > .hg/hgrc + $ mkdir -p sub/.hg + $ echo 'sub/.hg/hgrc in svn repo' > sub/.hg/hgrc + $ svn add .hg sub + A .hg + A .hg/hgrc (glob) + A sub + A sub/.hg (glob) + A sub/.hg/hgrc (glob) + $ svn ci -m 'add .hg/hgrc to be sanitized at hg update' + Adding .hg + Adding .hg/hgrc (glob) + Adding sub + Adding sub/.hg (glob) + Adding sub/.hg/hgrc (glob) + Transmitting file data .. + Committed revision 16. + $ svn up -q + $ cd .. + $ hg commit -S -m 'commit with svn revision including .hg/hgrc' + $ grep ' s$' .hgsubstate + 16 s + $ cd .. + + $ hg -R tc pull -u -q 2>&1 | sort + warning: removing potentially hostile 'hgrc' in '$TESTTMP/sub/tc/s/.hg' (glob) + warning: removing potentially hostile 'hgrc' in '$TESTTMP/sub/tc/s/sub/.hg' (glob) + $ cd tc + $ grep ' s$' .hgsubstate + 16 s + $ cat s/.hg/hgrc + cat: s/.hg/hgrc: No such file or directory + [1] + $ cat s/sub/.hg/hgrc + cat: s/sub/.hg/hgrc: No such file or directory + [1] + +Test that sanitizing is omitted in meta data area: + + $ mkdir s/.svn/.hg + $ echo '.hg/hgrc in svn metadata area' > s/.svn/.hg/hgrc + $ hg update -q -C '.^1' + + $ cd ../.. -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org