[PATCH] match: added matchessubrepo method to matcher
Hannes Oldenburg
hannes.christian.oldenburg at gmail.com
Tue Aug 9 09:51:57 UTC 2016
# HG changeset patch
# User Hannes Oldenburg <hannes.christian.oldenburg at gmail.com>
# Date 1470733371 0
# Tue Aug 09 09:02:51 2016 +0000
# Node ID 83d4910236336c3a72cff356f9f002d0e0710efc
# Parent 12c72545f8627845c56b070a27eff88adefd7c16
match: added matchessubrepo method to matcher
Previously there were three local implementations of this
function in cmdutil.files, cmdutil.remove and scmutil.addremove.
diff -r 12c72545f862 -r 83d491023633 mercurial/cmdutil.py
--- a/mercurial/cmdutil.py Sun Aug 07 14:06:20 2016 +0000
+++ b/mercurial/cmdutil.py Tue Aug 09 09:02:51 2016 +0000
@@ -2415,11 +2415,7 @@
ret = 0
for subpath in sorted(ctx.substate):
- def matchessubrepo(subpath):
- return (m.exact(subpath)
- or any(f.startswith(subpath + '/') for f in m.files()))
-
- if subrepos or matchessubrepo(subpath):
+ if subrepos or m.matchessubrepo(subpath):
sub = ctx.sub(subpath)
try:
submatch = matchmod.subdirmatcher(subpath, m)
@@ -2450,16 +2446,8 @@
total = len(subs)
count = 0
for subpath in subs:
- def matchessubrepo(matcher, subpath):
- if matcher.exact(subpath):
- return True
- for f in matcher.files():
- if f.startswith(subpath):
- return True
- return False
-
count += 1
- if subrepos or matchessubrepo(m, subpath):
+ if subrepos or m.matchessubrepo(subpath):
ui.progress(_('searching'), count, total=total, unit=_('subrepos'))
sub = wctx.sub(subpath)
diff -r 12c72545f862 -r 83d491023633 mercurial/match.py
--- a/mercurial/match.py Sun Aug 07 14:06:20 2016 +0000
+++ b/mercurial/match.py Tue Aug 09 09:02:51 2016 +0000
@@ -320,6 +320,10 @@
kindpats.append((kind, pat, ''))
return kindpats
+ def matchessubrepo(self, subpath):
+ return (self.exact(subpath)
+ or any(f.startswith(subpath + '/') for f in self.files()))
+
def exact(root, cwd, files, badfn=None):
return match(root, cwd, files, exact=True, badfn=badfn)
diff -r 12c72545f862 -r 83d491023633 mercurial/scmutil.py
--- a/mercurial/scmutil.py Sun Aug 07 14:06:20 2016 +0000
+++ b/mercurial/scmutil.py Tue Aug 09 09:02:51 2016 +0000
@@ -950,17 +950,9 @@
ret = 0
join = lambda f: os.path.join(prefix, f)
- def matchessubrepo(matcher, subpath):
- if matcher.exact(subpath):
- return True
- for f in matcher.files():
- if f.startswith(subpath):
- return True
- return False
-
wctx = repo[None]
for subpath in sorted(wctx.substate):
- if opts.get('subrepos') or matchessubrepo(m, subpath):
+ if opts.get('subrepos') or m.matchessubrepo(subpath):
sub = wctx.sub(subpath)
try:
submatch = matchmod.subdirmatcher(subpath, m)
More information about the Mercurial-devel
mailing list