[PATCH 1 of 8] match: introduce explicitdir and traversedir

Siddharth Agarwal sid0 at fb.com
Fri May 3 17:05:42 CDT 2013

# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1367209449 25200
#      Sun Apr 28 21:24:09 2013 -0700
# Node ID 1e79492d1382f551d9890f97f5b58f1101bfc004
# Parent  b5afc296b77bcbb8122c9316f727cb35e7d5dd02
match: introduce explicitdir and traversedir

match.dir is currently called in two different places:
(1) noting when a directory specified explicitly is visited.
(2) noting when a directory is visited during a recursive walk.

purge cares about both, but commit only cares about the first.

Upcoming patches will split the two cases into two different callbacks. Why
bother? Consider a hypothetical extension that can provide more efficient walk
results, via e.g. watching the filesystem. That extension will need to
fall back to a full recursive walk if a callback is set for (2), but not if a
callback is only set for (1).

diff -r b5afc296b77b -r 1e79492d1382 mercurial/match.py
--- a/mercurial/match.py	Tue Oct 02 15:32:21 2012 -0700
+++ b/mercurial/match.py	Sun Apr 28 21:24:09 2013 -0700
@@ -121,6 +121,10 @@ class match(object):
     def dir(self, f):
+    def explicitdir(self, f):
+        self.dir(f)
+    def traversedir(self, f):
+        self.dir(f)
     def missing(self, f):
     def exact(self, f):

More information about the Mercurial-devel mailing list