comparison mercurial/dirstate.py @ 6833:6be5edab824c

dirstate.walk: reduce sorting in step 3
author Matt Mackall <mpm@selenic.com>
date Tue, 22 Jul 2008 13:03:29 -0500
parents 643ff33812f8
children cbdfd08eabc9
comparison
equal deleted inserted replaced
6832:643ff33812f8 6833:6be5edab824c
525 results[nf] = st 525 results[nf] = st
526 elif nf in dmap and match(nf): 526 elif nf in dmap and match(nf):
527 results[nf] = None 527 results[nf] = None
528 528
529 # step 3: report unseen items in the dmap hash 529 # step 3: report unseen items in the dmap hash
530 for nf in util.sort(dmap): 530 visit = [f for f in dmap if f not in results and match(f)]
531 if nf not in results and match(nf): 531 for nf in util.sort(visit):
532 results[nf] = None 532 results[nf] = None
533 try: 533 try:
534 st = lstat(join(nf)) 534 st = lstat(join(nf))
535 kind = getkind(st.st_mode) 535 kind = getkind(st.st_mode)
536 if kind == regkind or kind == lnkkind: 536 if kind == regkind or kind == lnkkind:
537 results[nf] = st 537 results[nf] = st
538 except OSError, inst: 538 except OSError, inst:
539 if inst.errno not in (errno.ENOENT, errno.ENOTDIR): 539 if inst.errno not in (errno.ENOENT, errno.ENOTDIR):
540 raise 540 raise
541 541
542 del results['.hg'] 542 del results['.hg']
543 return results 543 return results
544 544
545 def status(self, match, ignored, clean, unknown): 545 def status(self, match, ignored, clean, unknown):