mercurial/dirstate.py
changeset 18654 d9ff580fcaa2
parent 18625 2cbd27f4f3c4
parent 18649 0969980308c7
child 18663 05cf40f9b0ec
equal deleted inserted replaced
18651:e556659340f0 18654:d9ff580fcaa2
   691                         results[nf] = None
   691                         results[nf] = None
   692 
   692 
   693         # step 3: report unseen items in the dmap hash
   693         # step 3: report unseen items in the dmap hash
   694         if not skipstep3 and not exact:
   694         if not skipstep3 and not exact:
   695             visit = sorted([f for f in dmap if f not in results and matchfn(f)])
   695             visit = sorted([f for f in dmap if f not in results and matchfn(f)])
   696             nf = iter(visit).next
   696             if unknown:
   697             for st in util.statfiles([join(i) for i in visit]):
   697                 # unknown == True means we walked the full directory tree above.
   698                 results[nf()] = st
   698                 # So if a file is not seen it was either a) not matching matchfn
       
   699                 # b) ignored, c) missing, or d) under a symlink directory.
       
   700                 audit_path = scmutil.pathauditor(self._root)
       
   701 
       
   702                 for nf in iter(visit):
       
   703                     # Report ignored items in the dmap as long as they are not
       
   704                     # under a symlink directory.
       
   705                     if ignore(nf) and audit_path.check(nf):
       
   706                         results[nf] = util.statfiles([join(nf)])[0]
       
   707                     else:
       
   708                         # It's either missing or under a symlink directory
       
   709                         results[nf] = None
       
   710             else:
       
   711                 # We may not have walked the full directory tree above,
       
   712                 # so stat everything we missed.
       
   713                 nf = iter(visit).next
       
   714                 for st in util.statfiles([join(i) for i in visit]):
       
   715                     results[nf()] = st
   699         for s in subrepos:
   716         for s in subrepos:
   700             del results[s]
   717             del results[s]
   701         del results['.hg']
   718         del results['.hg']
   702         return results
   719         return results
   703 
   720