Hello community, here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2014-07-23 22:07:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-06-10 14:38:46.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mercurial.new/mercurial.changes 2014-07-24 00:41:24.000000000 +0200 @@ -1,0 +2,17 @@ +Tue Jul 22 14:32:00 UTC 2014 - devel...@develop7.info + +- update to v 3.0.2 + * cmdutil: add copy-filtering support to duplicatecopies + * hgweb: avoid initialization race (issue4280) + * keyword: suppress keyword expansion for internal merge + * match: make glob '**/' match the empty string + * p4: accept changesets with no description (issue4282) + * parsers.c: fix a couple of memory leaks + * push: restore contents of HG_URL for hooks (issue4268) + * rebase: fix bug that caused transitive copy records to disappear (issue4192) + * repoview: do not crash when localtags refers to non existing revisions + * resolve: keep wlock while resolving + * revlog: hold a private reference to self._cache + * revlog: make _chunkcache access atomic + +------------------------------------------------------------------- Old: ---- mercurial-3.0.1.tar.gz New: ---- mercurial-3.0.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mercurial.spec ++++++ --- /var/tmp/diff_new_pack.Kg3WoG/_old 2014-07-24 00:41:25.000000000 +0200 +++ /var/tmp/diff_new_pack.Kg3WoG/_new 2014-07-24 00:41:25.000000000 +0200 @@ -17,7 +17,7 @@ Name: mercurial -Version: 3.0.1 +Version: 3.0.2 Release: 0 Summary: Scalable Distributed SCM License: GPL-2.0+ ++++++ mercurial-3.0.1.tar.gz -> mercurial-3.0.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/.hgsigs new/mercurial-3.0.2/.hgsigs --- old/mercurial-3.0.1/.hgsigs 2014-06-01 23:15:44.000000000 +0200 +++ new/mercurial-3.0.2/.hgsigs 2014-07-02 06:32:18.000000000 +0200 @@ -88,3 +88,4 @@ 3f83fc5cfe715d292069ee8417c83804f6c6c1e4 0 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/.hgtags new/mercurial-3.0.2/.hgtags --- old/mercurial-3.0.1/.hgtags 2014-06-01 23:15:44.000000000 +0200 +++ new/mercurial-3.0.2/.hgtags 2014-07-02 06:32:18.000000000 +0200 @@ -101,3 +101,4 @@ 3f83fc5cfe715d292069ee8417c83804f6c6c1e4 2.9.2 564f55b251224f16508dd1311452db7780dafe2b 3.0-rc 2195ac506c6ababe86985b932f4948837c0891b5 3.0 +269c80ee5b3cb3684fa8edc61501b3506d02eb10 3.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/PKG-INFO new/mercurial-3.0.2/PKG-INFO --- old/mercurial-3.0.1/PKG-INFO 2014-06-01 23:15:54.000000000 +0200 +++ new/mercurial-3.0.2/PKG-INFO 2014-07-02 06:32:28.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: mercurial -Version: 3.0.1 +Version: 3.0.2 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.1/hgext/convert/p4.py new/mercurial-3.0.2/hgext/convert/p4.py --- old/mercurial-3.0.1/hgext/convert/p4.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/hgext/convert/p4.py 2014-07-02 06:32:10.000000000 +0200 @@ -108,7 +108,7 @@ cmd = "p4 -G describe -s %s" % change stdout = util.popen(cmd, mode='rb') d = marshal.load(stdout) - desc = self.recode(d["desc"]) + desc = self.recode(d.get("desc", "")) shortdesc = desc.split("\n", 1)[0] t = '%s %s' % (d["change"], repr(shortdesc)[1:-1]) ui.status(util.ellipsis(t, 80) + '\n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/hgext/keyword.py new/mercurial-3.0.2/hgext/keyword.py --- old/mercurial-3.0.1/hgext/keyword.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/hgext/keyword.py 2014-07-02 06:32:10.000000000 +0200 @@ -102,7 +102,8 @@ # hg commands that trigger expansion only when writing to working dir, # not when reading filelog, and unexpand when reading from working dir -restricted = 'merge kwexpand kwshrink record qrecord resolve transplant' +restricted = ('merge kwexpand kwshrink record qrecord resolve transplant' + ' unshelve rebase graft backout histedit fetch') # names of extensions using dorecord recordextensions = 'record' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/hgext/rebase.py new/mercurial-3.0.2/hgext/rebase.py --- old/mercurial-3.0.1/hgext/rebase.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/hgext/rebase.py 2014-07-02 06:32:10.000000000 +0200 @@ -345,7 +345,16 @@ 'resolve, then hg rebase --continue)')) finally: ui.setconfig('ui', 'forcemerge', '', 'rebase') - cmdutil.duplicatecopies(repo, rev, target) + if collapsef: + cmdutil.duplicatecopies(repo, rev, target) + else: + # If we're not using --collapse, we need to + # duplicate copies between the revision we're + # rebasing and its first parent, but *not* + # duplicate any copies that have already been + # performed in the destination. + p1rev = repo[rev].p1().rev() + cmdutil.duplicatecopies(repo, rev, p1rev, skiprev=target) if not collapsef: newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn, editor=editor) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/i18n/ja.po new/mercurial-3.0.2/i18n/ja.po --- old/mercurial-3.0.1/i18n/ja.po 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/i18n/ja.po 2014-07-02 06:32:10.000000000 +0200 @@ -149,8 +149,8 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: <mercurial-de...@selenic.com>\n" -"POT-Creation-Date: 2014-05-30 19:32+0900\n" -"PO-Revision-Date: 2014-05-30 19:43+0900\n" +"POT-Creation-Date: 2014-06-30 18:45+0900\n" +"PO-Revision-Date: 2014-06-30 19:03+0900\n" "Last-Translator: Japanese translation team <mercurial...@googlegroups.com>\n" "Language-Team: Japanese\n" "Language: ja\n" @@ -15297,6 +15297,10 @@ msgstr "別名コマンド '%s' には実行対象の記述がありません\n" #, python-format +msgid "error in definition for alias '%s': %s\n" +msgstr "別名コマンド '%s' の定義が不正です: %s\n" + +#, python-format msgid "" "error in definition for alias '%s': %s may only be given on the command " "line\n" @@ -25204,8 +25208,8 @@ msgstr "サブリポジトリの連携先が見つかりません" #, python-format -msgid "warning: removing potentially hostile .hg/hgrc in '%s'" -msgstr "警告: '%s' 中の .hg/hgrc は潜在的な問題となりえるため破棄します" +msgid "warning: removing potentially hostile 'hgrc' in '%s'\n" +msgstr "警告: 潜在的な問題となりえる '%s' 中の hgrc ファイルを破棄します\n" #, python-format msgid "unknown subrepo type %s" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/i18n/pt_BR.po new/mercurial-3.0.2/i18n/pt_BR.po --- old/mercurial-3.0.1/i18n/pt_BR.po 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/i18n/pt_BR.po 2014-07-02 06:32:10.000000000 +0200 @@ -8265,13 +8265,13 @@ msgid "empty \"rev\" revision set - nothing to rebase\n" msgstr "conjunto de revisões \"rev\" vazio - nada para rebasear\n" -msgid "empty \"source\" revision set - nothing to rebase" -msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear" +msgid "empty \"source\" revision set - nothing to rebase\n" +msgstr "conjunto de revisões \"fonte\" vazio - nada para rebasear\n" -msgid "empty \"base\" revision set - can't compute rebase set" +msgid "empty \"base\" revision set - can't compute rebase set\n" msgstr "" "conjunto de revisões \"base\" vazio - não é possível calcular o conjunto de " -"rebaseamento" +"rebaseamento\n" #, python-format msgid "nothing to rebase - %s is both \"base\" and destination\n" @@ -15604,6 +15604,10 @@ msgstr "nenhuma definição para o apelido '%s'\n" #, python-format +msgid "error in definition for alias '%s': %s\n" +msgstr "erro na definição do apelido '%s': %s\n" + +#, python-format msgid "" "error in definition for alias '%s': %s may only be given on the command " "line\n" @@ -24133,31 +24137,35 @@ msgid "note: possible conflict - %s was deleted and renamed to:\n" msgstr "nota: possível conflito - %s foi apagado e renomeado para:\n" -#, fuzzy, python-format +#, python-format msgid "note: merging %s and %s using bids from ancestors %s\n" -msgstr "" +msgstr "nota: mesclando %s e %s usando lances dos ancestrais %s\n" #, python-format msgid "" "\n" "calculating bids for ancestor %s\n" msgstr "" +"\n" +"calculando lances para o ancestral %s\n" msgid "" "\n" "auction for merging merge bids\n" msgstr "" +"\n" +"leilão para mesclar lances de mesclagem\n" #, python-format msgid " %s: multiple bids for merge action:\n" -msgstr "" +msgstr " %s: múltiplos lances para ação de mesclagem:\n" #, python-format msgid " %s: ambiguous merge - picked %s action\n" -msgstr "" +msgstr " %s: mesclagem ambígua - escolhida a ação %s\n" msgid "end of auction" -msgstr "" +msgstr "fim do leilão" #, python-format msgid "" @@ -25737,8 +25745,8 @@ msgstr "o caminho padrão para o sub-repositório não foi encontrado" #, python-format -msgid "warning: removing potentially hostile .hg/hgrc in '%s'" -msgstr "aviso: removendo .hg/hgrc potencialmente hostil em '%s'" +msgid "warning: removing potentially hostile 'hgrc' in '%s'\n" +msgstr "aviso: removendo 'hgrc' potencialmente hostil em '%s'\n" #, python-format msgid "unknown subrepo type %s" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/__version__.py new/mercurial-3.0.2/mercurial/__version__.py --- old/mercurial-3.0.1/mercurial/__version__.py 2014-06-01 23:15:52.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/__version__.py 2014-07-02 06:32:26.000000000 +0200 @@ -1,2 +1,2 @@ # this file is autogenerated by setup.py -version = "3.0.1" +version = "3.0.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/cmdutil.py new/mercurial-3.0.2/mercurial/cmdutil.py --- old/mercurial-3.0.1/mercurial/cmdutil.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/cmdutil.py 2014-07-02 06:32:10.000000000 +0200 @@ -1913,11 +1913,22 @@ return err -def duplicatecopies(repo, rev, fromrev): - '''reproduce copies from fromrev to rev in the dirstate''' +def duplicatecopies(repo, rev, fromrev, skiprev=None): + '''reproduce copies from fromrev to rev in the dirstate + + If skiprev is specified, it's a revision that should be used to + filter copy records. Any copies that occur between fromrev and + skiprev will not be duplicated, even if they appear in the set of + copies between fromrev and rev. + ''' + exclude = {} + if skiprev is not None: + exclude = copies.pathcopies(repo[fromrev], repo[skiprev]) for dst, src in copies.pathcopies(repo[fromrev], repo[rev]).iteritems(): # copies.pathcopies returns backward renames, so dst might not # actually be in the dirstate + if dst in exclude: + continue if repo.dirstate[dst] in "nma": repo.dirstate.copy(src, dst) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/commands.py new/mercurial-3.0.2/mercurial/commands.py --- old/mercurial-3.0.1/mercurial/commands.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/commands.py 2014-07-02 06:32:10.000000000 +0200 @@ -4927,44 +4927,49 @@ raise util.Abort(_('no files or directories specified; ' 'use --all to remerge all files')) - ms = mergemod.mergestate(repo) - m = scmutil.match(repo[None], pats, opts) - ret = 0 - - for f in ms: - if m(f): - if show: - if nostatus: - ui.write("%s\n" % f) + wlock = repo.wlock() + try: + ms = mergemod.mergestate(repo) + m = scmutil.match(repo[None], pats, opts) + ret = 0 + + for f in ms: + if m(f): + if show: + if nostatus: + ui.write("%s\n" % f) + else: + ui.write("%s %s\n" % (ms[f].upper(), f), + label='resolve.' + + {'u': 'unresolved', 'r': 'resolved'}[ms[f]]) + elif mark: + ms.mark(f, "r") + elif unmark: + ms.mark(f, "u") else: - ui.write("%s %s\n" % (ms[f].upper(), f), - label='resolve.' + - {'u': 'unresolved', 'r': 'resolved'}[ms[f]]) - elif mark: - ms.mark(f, "r") - elif unmark: - ms.mark(f, "u") - else: - wctx = repo[None] - - # backup pre-resolve (merge uses .orig for its own purposes) - a = repo.wjoin(f) - util.copyfile(a, a + ".resolve") - - try: - # resolve file - ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), - 'resolve') - if ms.resolve(f, wctx): - ret = 1 - finally: - ui.setconfig('ui', 'forcemerge', '', 'resolve') - ms.commit() + wctx = repo[None] - # replace filemerge's .orig file with our resolve file - util.rename(a + ".resolve", a + ".orig") + # backup pre-resolve (merge uses .orig for its own purposes) + a = repo.wjoin(f) + util.copyfile(a, a + ".resolve") + + try: + # resolve file + ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), + 'resolve') + if ms.resolve(f, wctx): + ret = 1 + finally: + ui.setconfig('ui', 'forcemerge', '', 'resolve') + ms.commit() + + # replace filemerge's .orig file with our resolve file + util.rename(a + ".resolve", a + ".orig") + + ms.commit() + finally: + wlock.release() - ms.commit() return ret @command('revert', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/exchange.py new/mercurial-3.0.2/mercurial/exchange.py --- old/mercurial-3.0.1/mercurial/exchange.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/exchange.py 2014-07-02 06:32:10.000000000 +0200 @@ -286,7 +286,7 @@ # ssh: return remote's addchangegroup() # http: return remote's addchangegroup() or 0 for error pushop.ret = pushop.remote.unbundle(cg, remoteheads, - 'push') + pushop.repo.url()) else: # we return an integer indicating remote head count # change diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/hgweb/hgweb_mod.py new/mercurial-3.0.2/mercurial/hgweb/hgweb_mod.py --- old/mercurial-3.0.1/mercurial/hgweb/hgweb_mod.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/hgweb/hgweb_mod.py 2014-07-02 06:32:10.000000000 +0200 @@ -109,8 +109,6 @@ # compare changelog size in addition to mtime to catch # rollbacks made less than a second ago if st.st_mtime != self.mtime or st.st_size != self.size: - self.mtime = st.st_mtime - self.size = st.st_size r = hg.repository(self.repo.baseui, self.repo.root) self.repo = self._getview(r) self.maxchanges = int(self.config("web", "maxchanges", 10)) @@ -121,6 +119,9 @@ self.allowpull = self.configbool("web", "allowpull", True) encoding.encoding = self.config("web", "encoding", encoding.encoding) + # update these last to avoid threads seeing empty settings + self.mtime = st.st_mtime + self.size = st.st_size if request: self.repo.ui.environ = request.env diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/match.py new/mercurial-3.0.2/mercurial/match.py --- old/mercurial-3.0.1/mercurial/match.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/match.py 2014-07-02 06:32:10.000000000 +0200 @@ -233,6 +233,10 @@ [^/]* >>> print _globre(r'**') .* + >>> print _globre(r'**/a') + (?:.*/)?a + >>> print _globre(r'a/**/b') + a\/(?:.*/)?b >>> print _globre(r'[a*?!^][^b][!c]') [a*?!^][\^b][^c] >>> print _globre(r'{a,b}') @@ -254,7 +258,11 @@ elif c == '*': if peek() == '*': i += 1 - res += '.*' + if peek() == '/': + i += 1 + res += '(?:.*/)?' + else: + res += '.*' else: res += '[^/]*' elif c == '?': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/parsers.c new/mercurial-3.0.2/mercurial/parsers.c --- old/mercurial-3.0.1/mercurial/parsers.c 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/parsers.c 2014-07-02 06:32:10.000000000 +0200 @@ -1299,7 +1299,7 @@ static const Py_ssize_t capacity = 24; int *depth, *interesting = NULL; int i, j, v, ninteresting; - PyObject *dict = NULL, *keys; + PyObject *dict = NULL, *keys = NULL; long *seen = NULL; int maxrev = -1; long final; @@ -1403,8 +1403,10 @@ final |= i; j -= 1; } - if (final == 0) - return PyList_New(0); + if (final == 0) { + keys = PyList_New(0); + goto bail; + } dict = PyDict_New(); if (dict == NULL) @@ -1428,19 +1430,13 @@ keys = PyDict_Keys(dict); - free(depth); - free(seen); - free(interesting); - Py_DECREF(dict); - - return keys; bail: free(depth); free(seen); free(interesting); Py_XDECREF(dict); - return NULL; + return keys; } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/revlog.py new/mercurial-3.0.2/mercurial/revlog.py --- old/mercurial-3.0.1/mercurial/revlog.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/revlog.py 2014-07-02 06:32:10.000000000 +0200 @@ -919,8 +919,13 @@ # preload the cache try: - self._chunkraw(revs[0], revs[-1]) - offset, data = self._chunkcache + while True: + # ensure that the cache doesn't change out from under us + _cache = self._chunkcache + self._chunkraw(revs[0], revs[-1]) + if _cache == self._chunkcache: + break + offset, data = _cache except OverflowError: # issue4215 - we can't cache a run of chunks greater than # 2G on Windows @@ -967,13 +972,14 @@ node = nodeorrev rev = None + _cache = self._cache # grab local copy of cache to avoid thread race cachedrev = None if node == nullid: return "" - if self._cache: - if self._cache[0] == node: - return self._cache[2] - cachedrev = self._cache[1] + if _cache: + if _cache[0] == node: + return _cache[2] + cachedrev = _cache[1] # look up what we need to read text = None @@ -1001,7 +1007,7 @@ if iterrev == cachedrev: # cache hit - text = self._cache[2] + text = _cache[2] else: chain.append(iterrev) chain.reverse() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/mercurial/tags.py new/mercurial-3.0.2/mercurial/tags.py --- old/mercurial-3.0.1/mercurial/tags.py 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/mercurial/tags.py 2014-07-02 06:32:10.000000000 +0200 @@ -72,6 +72,15 @@ filetags = _readtags( ui, repo, data.splitlines(), "localtags", recode=encoding.fromlocal) + + # remove tags pointing to invalid nodes + cl = repo.changelog + for t in filetags.keys(): + try: + cl.rev(filetags[t][0]) + except (LookupError, ValueError): + del filetags[t] + _updatetags(filetags, "local", alltags, tagtypes) def _readtags(ui, repo, lines, fn, recode=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-fncache.t new/mercurial-3.0.2/tests/test-fncache.t --- old/mercurial-3.0.1/tests/test-fncache.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-fncache.t 2014-07-02 06:32:10.000000000 +0200 @@ -227,7 +227,7 @@ > cmdtable = {} > > EOF - $ rm "${extpath}c" + $ rm -f "${extpath}c" $ touch z $ hg ci -qAm z transaction abort! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-hgignore.t new/mercurial-3.0.2/tests/test-hgignore.t --- old/mercurial-3.0.1/tests/test-hgignore.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-hgignore.t 2014-07-02 06:32:10.000000000 +0200 @@ -134,3 +134,17 @@ ? a.c ? a.o ? syntax + +Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o) + + $ echo "syntax: glob" > .hgignore + $ echo "dir/**/c.o" >> .hgignore + $ touch dir/c.o + $ mkdir dir/subdir + $ touch dir/subdir/c.o + $ hg status + A dir/b.o + ? .hgignore + ? a.c + ? a.o + ? syntax diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-keyword.t new/mercurial-3.0.2/tests/test-keyword.t --- old/mercurial-3.0.1/tests/test-keyword.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-keyword.t 2014-07-02 06:32:10.000000000 +0200 @@ -1137,6 +1137,7 @@ Now disable keyword expansion + $ cp $HGRCPATH $HGRCPATH.backup $ rm "$HGRCPATH" $ cat a b expand $Id$ @@ -1152,4 +1153,158 @@ ignore $Id$ a +enable keyword expansion again + + $ cat $HGRCPATH.backup >> $HGRCPATH + +Test restricted mode with unshelve + + $ cat <<EOF >> $HGRCPATH + > [extensions] + > shelve = + > EOF + + $ echo xxxx >> a + $ hg diff + diff -r 800511b3a22d a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a * (glob) + @@ -2,3 +2,4 @@ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + $ hg shelve -q --name tmp + $ hg shelve --list --patch + tmp (*) changes to 'localresolve' (glob) + + diff --git a/a b/a + --- a/a + +++ b/a + @@ -2,3 +2,4 @@ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + + $ hg update -q -C 10 + $ hg unshelve -q tmp + $ hg diff + diff -r 4aa30d025d50 a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a * (glob) + @@ -3,3 +3,4 @@ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + +Test restricted mode with rebase + + $ cat <<EOF >> $HGRCPATH + > [extensions] + > rebase = + > EOF + + $ hg update -q -C 9 + + $ echo xxxx >> a + $ hg commit -m '#11' + $ hg diff -c 11 + diff -r 800511b3a22d -r b07670694489 a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -2,3 +2,4 @@ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + + $ hg diff -c 10 + diff -r 27d48ee14f67 -r 4aa30d025d50 a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,3 +1,4 @@ + +foobranch + expand $Id$ + do not process $Id: + xxx $ + + $ hg rebase -q -s 10 -d 11 --keep + $ hg diff -r 9 -r 12 a + diff -r 800511b3a22d -r 1939b927726c a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,4 +1,6 @@ + +foobranch + expand $Id$ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + +Test restricted mode with graft + + $ hg graft -q 10 + $ hg diff -r 9 -r 13 a + diff -r 800511b3a22d -r 01a68de1003a a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,4 +1,6 @@ + +foobranch + expand $Id$ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + +Test restricted mode with backout + + $ hg backout -q 11 + $ hg diff a + diff -r 01a68de1003a a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a * (glob) + @@ -3,4 +3,3 @@ + do not process $Id: + xxx $ + $Xinfo$ + -xxxx + +Test restricted mode with histedit + + $ cat <<EOF >> $HGRCPATH + > [extensions] + > histedit = + > EOF + + $ hg commit -m 'backout #11' + $ hg histedit -q --command - 13 <<EOF + > pick 49f5f2d940c3 14 backout #11 + > pick 01a68de1003a 13 9foobranch + > EOF + +Test restricted mode with fetch (with merge) + + $ cat <<EOF >> $HGRCPATH + > [extensions] + > fetch = + > EOF + + $ hg clone -q -r 9 . ../fetch-merge + $ cd ../fetch-merge + $ hg -R ../Test export 10 | hg import -q - + $ hg fetch -q -r 11 + $ hg diff -r 9 a + diff -r 800511b3a22d a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a * (glob) + @@ -1,4 +1,6 @@ + +foobranch + expand $Id$ + do not process $Id: + xxx $ + $Xinfo$ + +xxxx + $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-obsolete.t new/mercurial-3.0.2/tests/test-obsolete.t --- old/mercurial-3.0.1/tests/test-obsolete.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-obsolete.t 2014-07-02 06:32:10.000000000 +0200 @@ -907,3 +907,15 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: A +Test that removing a local tag does not cause some commands to fail + + $ hg tag -l -r tip tiptag + $ hg tags + tiptag 2:3816541e5485 + tip 2:3816541e5485 + visible 0:193e9254ce7e + $ hg --config extensions.strip= strip -r tip --no-backup + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg tags + visible 0:193e9254ce7e + tip 0:193e9254ce7e diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-rebase-rename.t new/mercurial-3.0.2/tests/test-rebase-rename.t --- old/mercurial-3.0.1/tests/test-rebase-rename.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-rebase-rename.t 2014-07-02 06:32:10.000000000 +0200 @@ -240,3 +240,84 @@ 1 files changed, 1 insertions(+), 0 deletions(-) $ cd .. + +Verify that copies get preserved (issue4192). + $ hg init copy-gets-preserved + $ cd copy-gets-preserved + + $ echo a > a + $ hg add a + $ hg commit --message "File a created" + $ hg copy a b + $ echo b > b + $ hg commit --message "File b created as copy of a and modified" + $ hg copy b c + $ echo c > c + $ hg commit --message "File c created as copy of b and modified" + $ hg copy c d + $ echo d > d + $ hg commit --message "File d created as copy of c and modified" + +Note that there are four entries in the log for d + $ hg tglog --follow d + @ 3: 'File d created as copy of c and modified' + | + o 2: 'File c created as copy of b and modified' + | + o 1: 'File b created as copy of a and modified' + | + o 0: 'File a created' + +Update back to before we performed copies, and inject an unrelated change. + $ hg update 0 + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + + $ echo unrelated > unrelated + $ hg add unrelated + $ hg commit --message "Unrelated file created" + created new head + $ hg update 4 + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + +Rebase the copies on top of the unrelated change. + $ hg rebase --source 1 --dest 4 + saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob) + $ hg update 4 + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + +There should still be four entries in the log for d + $ hg tglog --follow d + @ 4: 'File d created as copy of c and modified' + | + o 3: 'File c created as copy of b and modified' + | + o 2: 'File b created as copy of a and modified' + | + o 0: 'File a created' + +Same steps as above, but with --collapse on rebase to make sure the +copy records collapse correctly. + $ hg co 1 + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + $ echo more >> unrelated + $ hg ci -m 'unrelated commit is unrelated' + created new head + $ hg rebase -s 2 --dest 5 --collapse + merging b and c to c + merging c and d to d + saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob) + $ hg co tip + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + +This should show both revision 3 and 0 since 'd' was transitively a +copy of 'a'. + + $ hg tglog --follow d + @ 3: 'Collapsed revision + | * File b created as copy of a and modified + | * File c created as copy of b and modified + | * File d created as copy of c and modified' + o 0: 'File a created' + + + $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.0.1/tests/test-subrepo-git.t new/mercurial-3.0.2/tests/test-subrepo-git.t --- old/mercurial-3.0.1/tests/test-subrepo-git.t 2014-06-01 23:15:14.000000000 +0200 +++ new/mercurial-3.0.2/tests/test-subrepo-git.t 2014-07-02 06:32:10.000000000 +0200 @@ -601,11 +601,9 @@ 8:3473d20bddcf $ grep ' s$' .hgsubstate c4069473b459cf27fd4d7c2f50c4346b4e936599 s - $ cat s/.hg/hgrc - cat: s/.hg/hgrc: No such file or directory + $ test -f s/.hg/hgrc [1] - $ cat s/sub/.hg/hgrc - cat: s/sub/.hg/hgrc: No such file or directory + $ test -f s/sub/.hg/hgrc [1] $ cd .. @@ -636,11 +634,9 @@ $ cd tc $ hg update -q -C af6d2edbb0d3 - $ cat s/.hg/hgrc - cat: s/.hg/hgrc: No such file or directory + $ test -f s/.hg/hgrc [1] - $ cat s/sub/.hg/hgrc - cat: s/sub/.hg/hgrc: No such file or directory + $ test -f s/sub/.hg/hgrc [1] $ cd .. $ hg -R tc pull -q @@ -652,11 +648,9 @@ 9:ed23f7fe024e $ grep ' s$' .hgsubstate f262643c1077219fbd3858d54e78ef050ef84fbf s - $ cat s/.hg/hgrc - cat: s/.hg/hgrc: No such file or directory + $ test -f s/.hg/hgrc [1] - $ cat s/sub/.hg/hgrc - cat: s/sub/.hg/hgrc: No such file or directory + $ test -f s/sub/.hg/hgrc [1] Test that sanitizing is omitted in meta data area: -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org