Mercurial > public > mercurial-scm > hg-stable
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): |