diff mercurial/localrepo.py @ 40082:4fd0fac48922

localrepo: allow narrowmatch() to accept matcher to intersect with It's pretty common that we need to intersect a matcher we already have (usually from the user) with the narrow matcher. Let's make repo.narrowmatch() take an optional matcher to intersect with. Differential Revision: https://phab.mercurial-scm.org/D4896
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 28 Sep 2018 12:29:21 -0700
parents 5c3585a58845
children 41fcdfe3bfeb
line wrap: on
line diff
--- a/mercurial/localrepo.py	Fri Oct 05 01:55:51 2018 +0300
+++ b/mercurial/localrepo.py	Fri Sep 28 12:29:21 2018 -0700
@@ -1200,8 +1200,14 @@
         include, exclude = self.narrowpats
         return narrowspec.match(self.root, include=include, exclude=exclude)
 
-    # TODO(martinvonz): make this property-like instead?
-    def narrowmatch(self):
+    def narrowmatch(self, match=None):
+        """matcher corresponding the the repo's narrowspec
+
+        If `match` is given, then that will be intersected with the narrow
+        matcher.
+        """
+        if match:
+            return matchmod.intersectmatchers(match, self._narrowmatch)
         return self._narrowmatch
 
     def setnarrowpats(self, newincludes, newexcludes):