# HG changeset patch # User Siddharth Agarwal # Date 2013-05-03 21:39:28 # Node ID c3d3e4d75ec310fc4274a0c517d780ab3e03934c # Parent aed8ec10c235b4515e6aabe825bd5bdad4b4072b dirstate.walk: cache match.explicitdir and traversedir locally diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -561,6 +561,8 @@ class dirstate(object): 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 @@ class dirstate(object): 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 @@ class dirstate(object): prefix = nf + "/" for fn in dmap: if fn.startswith(prefix): - match.explicitdir(nf) + matchedir(nf) skipstep3 = False break else: @@ -666,7 +668,7 @@ class dirstate(object): 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