mercurial/dirstate.py
changeset 8708 a645904c88c4
parent 8684 5bb7780b57c7
child 8716 f3322bb29a0e
equal deleted inserted replaced
8707:0550dfe4fca1 8708:a645904c88c4
   484                 if kind == dirkind:
   484                 if kind == dirkind:
   485                     skipstep3 = False
   485                     skipstep3 = False
   486                     if nf in dmap:
   486                     if nf in dmap:
   487                         #file deleted on disk but still in dirstate
   487                         #file deleted on disk but still in dirstate
   488                         results[nf] = None
   488                         results[nf] = None
       
   489                     match.dir(nf)
   489                     if not dirignore(nf):
   490                     if not dirignore(nf):
   490                         wadd(nf)
   491                         wadd(nf)
   491                 elif kind == regkind or kind == lnkkind:
   492                 elif kind == regkind or kind == lnkkind:
   492                     results[nf] = st
   493                     results[nf] = st
   493                 else:
   494                 else:
   499                     results[nf] = None
   500                     results[nf] = None
   500                 else: # does it match a directory?
   501                 else: # does it match a directory?
   501                     prefix = nf + "/"
   502                     prefix = nf + "/"
   502                     for fn in dmap:
   503                     for fn in dmap:
   503                         if fn.startswith(prefix):
   504                         if fn.startswith(prefix):
       
   505                             match.dir(nf)
   504                             skipstep3 = False
   506                             skipstep3 = False
   505                             break
   507                             break
   506                     else:
   508                     else:
   507                         badfn(ff, inst.strerror)
   509                         badfn(ff, inst.strerror)
   508 
   510 
   509         # step 2: visit subdirectories
   511         # step 2: visit subdirectories
   510         while work:
   512         while work:
   511             nd = work.pop()
   513             nd = work.pop()
   512             if hasattr(match, 'dir'):
       
   513                 match.dir(nd)
       
   514             skip = None
   514             skip = None
   515             if nd == '.':
   515             if nd == '.':
   516                 nd = ''
   516                 nd = ''
   517             else:
   517             else:
   518                 skip = '.hg'
   518                 skip = '.hg'
   526             for f, kind, st in entries:
   526             for f, kind, st in entries:
   527                 nf = normalize(nd and (nd + "/" + f) or f, True)
   527                 nf = normalize(nd and (nd + "/" + f) or f, True)
   528                 if nf not in results:
   528                 if nf not in results:
   529                     if kind == dirkind:
   529                     if kind == dirkind:
   530                         if not ignore(nf):
   530                         if not ignore(nf):
       
   531                             match.dir(nf)
   531                             wadd(nf)
   532                             wadd(nf)
   532                         if nf in dmap and matchfn(nf):
   533                         if nf in dmap and matchfn(nf):
   533                             results[nf] = None
   534                             results[nf] = None
   534                     elif kind == regkind or kind == lnkkind:
   535                     elif kind == regkind or kind == lnkkind:
   535                         if nf in dmap:
   536                         if nf in dmap: