mercurial/revset.py
branchstable
changeset 23061 f2aeff8a87b6
parent 23019 c8f32accd00a
child 23062 ba89f7b542c9
--- a/mercurial/revset.py	Mon Oct 20 22:08:08 2014 +0900
+++ b/mercurial/revset.py	Wed Oct 22 15:47:27 2014 -0500
@@ -899,7 +899,6 @@
     # i18n: "_matchfiles" is a keyword
     l = getargs(x, 1, -1, _("_matchfiles requires at least one argument"))
     pats, inc, exc = [], [], []
-    hasset = False
     rev, default = None, None
     for arg in l:
         # i18n: "_matchfiles" is a keyword
@@ -926,21 +925,14 @@
         else:
             # i18n: "_matchfiles" is a keyword
             raise error.ParseError(_('invalid _matchfiles prefix: %s') % prefix)
-        if not hasset and matchmod.patkind(value) == 'set':
-            hasset = True
     if not default:
         default = 'glob'
 
+    m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
+                       exclude=exc, ctx=repo[rev], default=default)
+
     def matches(x):
-        m = None
-        c = repo[x]
-        if not m or (hasset and rev is None):
-            ctx = c
-            if rev is not None:
-                ctx = repo[rev or None]
-            m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
-                               exclude=exc, ctx=ctx, default=default)
-        for f in c.files():
+        for f in repo[x].files():
             if m(f):
                 return True
         return False