Mercurial > public > mercurial-scm > hg
comparison mercurial/scmutil.py @ 18865:835e9dfd1e49
scmutil.addremove: use iteritems on walk results
Now that we no longer sort all the walk results, using iteritems becomes
possible.
This is a relatively minor speedup: on a large repository with 170,000 files,
perfaddremove goes from 2.13 seconds to 2.10.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Tue, 02 Apr 2013 14:50:50 -0700 |
parents | 887b75fda169 |
children | 38982de2b4eb |
comparison
equal
deleted
inserted
replaced
18864:887b75fda169 | 18865:835e9dfd1e49 |
---|---|
676 m.bad = lambda x, y: rejected.append(x) | 676 m.bad = lambda x, y: rejected.append(x) |
677 | 677 |
678 ctx = repo[None] | 678 ctx = repo[None] |
679 dirstate = repo.dirstate | 679 dirstate = repo.dirstate |
680 walkresults = dirstate.walk(m, sorted(ctx.substate), True, False) | 680 walkresults = dirstate.walk(m, sorted(ctx.substate), True, False) |
681 for abs in walkresults: | 681 for abs, st in walkresults.iteritems(): |
682 st = walkresults[abs] | |
683 dstate = dirstate[abs] | 682 dstate = dirstate[abs] |
684 if dstate == '?' and audit_path.check(abs): | 683 if dstate == '?' and audit_path.check(abs): |
685 unknown.append(abs) | 684 unknown.append(abs) |
686 elif dstate != 'r' and not st: | 685 elif dstate != 'r' and not st: |
687 deleted.append(abs) | 686 deleted.append(abs) |