# HG changeset patch # User Siddharth Agarwal # Date 1367617168 25200 # Node ID c3d3e4d75ec310fc4274a0c517d780ab3e03934c # Parent aed8ec10c235b4515e6aabe825bd5bdad4b4072b dirstate.walk: cache match.explicitdir and traversedir locally diff -r aed8ec10c235 -r c3d3e4d75ec3 mercurial/dirstate.py --- a/mercurial/dirstate.py Sun Apr 28 21:29:32 2013 -0700 +++ b/mercurial/dirstate.py Fri May 03 14:39:28 2013 -0700 @@ -561,6 +561,8 @@ matchfn = match.matchfn matchalways = match.always() + matchedir = match.explicitdir + matchtdir = match.traversedir badfn = match.bad dmap = self._map normpath = util.normpath @@ -621,7 +623,7 @@ if nf in dmap: #file deleted on disk but still in dirstate results[nf] = None - match.explicitdir(nf) + matchedir(nf) if not dirignore(nf): wadd(nf) elif kind == regkind or kind == lnkkind: @@ -637,7 +639,7 @@ prefix = nf + "/" for fn in dmap: if fn.startswith(prefix): - match.explicitdir(nf) + matchedir(nf) skipstep3 = False break else: @@ -666,7 +668,7 @@ if nf not in results: if kind == dirkind: if not ignore(nf): - match.traversedir(nf) + matchtdir(nf) wadd(nf) if nf in dmap and (matchalways or matchfn(nf)): results[nf] = None