mercurial/fileset.py
changeset 38685 80466fd85ac9
parent 38684 07b551a4df44
child 38686 131aae58a316
--- a/mercurial/fileset.py	Sun Jun 10 20:02:53 2018 +0900
+++ b/mercurial/fileset.py	Sat Jun 09 18:11:49 2018 +0900
@@ -154,7 +154,9 @@
                                        _("pattern must be a string")))
 
 def andset(mctx, x, y):
-    return getset(mctx.narrow(getset(mctx, x)), y)
+    xl = set(getset(mctx, x))
+    yl = getset(mctx, y)
+    return [f for f in yl if f in xl]
 
 def orset(mctx, x, y):
     # needs optimizing
@@ -627,8 +629,7 @@
             unknown = set()
         return (f for f in self.subset
                 if (f in self.ctx and f not in removed) or f in unknown)
-    def narrow(self, files):
-        return matchctx(self.ctx, self.filter(files), self._status, self._badfn)
+
     def switch(self, ctx, status=None):
         subset = self.filter(_buildsubset(ctx, status))
         return matchctx(ctx, subset, status, self._badfn)