changeset 8708:a645904c88c4

dirstate: more accurate use of match.dir callback
author Matt Mackall <mpm@selenic.com>
date Mon, 01 Jun 2009 20:25:01 -0500
parents 0550dfe4fca1
children b9e0ddb04c5c
files mercurial/dirstate.py
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dirstate.py	Mon Jun 01 14:51:47 2009 -0500
+++ b/mercurial/dirstate.py	Mon Jun 01 20:25:01 2009 -0500
@@ -486,6 +486,7 @@
                     if nf in dmap:
                         #file deleted on disk but still in dirstate
                         results[nf] = None
+                    match.dir(nf)
                     if not dirignore(nf):
                         wadd(nf)
                 elif kind == regkind or kind == lnkkind:
@@ -501,6 +502,7 @@
                     prefix = nf + "/"
                     for fn in dmap:
                         if fn.startswith(prefix):
+                            match.dir(nf)
                             skipstep3 = False
                             break
                     else:
@@ -509,8 +511,6 @@
         # step 2: visit subdirectories
         while work:
             nd = work.pop()
-            if hasattr(match, 'dir'):
-                match.dir(nd)
             skip = None
             if nd == '.':
                 nd = ''
@@ -528,6 +528,7 @@
                 if nf not in results:
                     if kind == dirkind:
                         if not ignore(nf):
+                            match.dir(nf)
                             wadd(nf)
                         if nf in dmap and matchfn(nf):
                             results[nf] = None