Mercurial > hg
changeset 25195:472a685a4961
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 19 May 2015 07:17:57 -0500 |
parents | 08d1ef09ed37 (current diff) ef4538ba67ef (diff) |
children | 7a1af58ab242 |
files | mercurial/context.py mercurial/exchange.py mercurial/match.py tests/test-subrepo-deep-nested-change.t |
diffstat | 5 files changed, 35 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Fri Apr 24 14:30:30 2015 -0700 +++ b/mercurial/context.py Tue May 19 07:17:57 2015 -0500 @@ -9,7 +9,7 @@ from i18n import _ import mdiff, error, util, scmutil, subrepo, patch, encoding, phases import match as matchmod -import os, errno, stat +import copy, os, errno, stat import obsolete as obsmod import repoview import fileset @@ -592,8 +592,14 @@ '''Generates matching file names.''' # Override match.bad method to have message with nodeid + match = copy.copy(match) oldbad = match.bad def bad(fn, msg): + # The manifest doesn't know about subrepos, so don't complain about + # paths into valid subrepos. + if any(fn == s or fn.startswith(s + '/') + for s in self.substate): + return oldbad(fn, _('no such file in rev %s') % self) match.bad = bad
--- a/mercurial/exchange.py Fri Apr 24 14:30:30 2015 -0700 +++ b/mercurial/exchange.py Tue May 19 07:17:57 2015 -0500 @@ -1290,7 +1290,7 @@ # quick fix for output mismatch with bundle2 in 3.4 captureoutput = repo.ui.configbool('experimental', 'bundle2-output-capture', False) - if url.startswith('remote:http:') or url.startswith('remote:https:'): + if url.startswith('remote:'): captureoutput = True try: check_heads(repo, heads, 'uploading changes')
--- a/mercurial/match.py Fri Apr 24 14:30:30 2015 -0700 +++ b/mercurial/match.py Tue May 19 07:17:57 2015 -0500 @@ -274,6 +274,12 @@ self._files = [f[len(path) + 1:] for f in matcher._files if f.startswith(path + "/")] + + # If the parent repo had a path to this subrepo and no patterns are + # specified, this submatcher always matches. + if not self._always and not matcher._anypats: + self._always = any(f == path for f in matcher._files) + self._anypats = matcher._anypats self.matchfn = lambda fn: matcher.matchfn(self._path + "/" + fn) self._fileroots = set(self._files)
--- a/tests/test-bundle2-exchange.t Fri Apr 24 14:30:30 2015 -0700 +++ b/tests/test-bundle2-exchange.t Tue May 19 07:17:57 2015 -0500 @@ -694,7 +694,6 @@ $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6 pushing to ssh://user@dummy/other searching for changes - abort: pretxnchangegroup hook exited with status 1 remote: adding changesets remote: adding manifests remote: adding file changes @@ -703,6 +702,7 @@ remote: transaction abort! remote: Cleaning up the mess... remote: rollback completed + abort: pretxnchangegroup hook exited with status 1 [255] $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6 pushing to http://localhost:$HGPORT2/
--- a/tests/test-subrepo-deep-nested-change.t Fri Apr 24 14:30:30 2015 -0700 +++ b/tests/test-subrepo-deep-nested-change.t Tue May 19 07:17:57 2015 -0500 @@ -232,6 +232,26 @@ sub1/sub2/sub2 (glob) sub1/sub2/test.txt (glob) + $ hg files -S -r '.^' sub1/sub2/folder + sub1/sub2/folder/test.txt (glob) + + $ hg files -S -r '.^' sub1/sub2/missing + sub1/sub2/missing: no such file in rev 78026e779ea6 (glob) + [1] + + $ hg files -S -r '.^' sub1/ + sub1/.hgsub (glob) + sub1/.hgsubstate (glob) + sub1/sub1 (glob) + sub1/sub2/folder/test.txt (glob) + sub1/sub2/sub2 (glob) + sub1/sub2/test.txt (glob) + + $ hg files -S -r '.^' sub1/sub2 + sub1/sub2/folder/test.txt (glob) + sub1/sub2/sub2 (glob) + sub1/sub2/test.txt (glob) + $ hg rollback -q $ hg up -Cq