# HG changeset patch # User Bryan O'Sullivan # Date 1354319708 28800 # Node ID 0fed3fe45ea729a06f9efd0afec24846a4448822 # Parent 74912fe3d7187cd945c520182d76ed4a0cbceb63 dirstate: avoid use of zip on big lists In a clean working directory containing 170,000 tracked files, this improves performance of "hg --time diff" from 1.69 seconds to 1.43. This idea is due to Siddharth Agarwal. diff -r 74912fe3d718 -r 0fed3fe45ea7 mercurial/dirstate.py --- a/mercurial/dirstate.py Fri Nov 30 15:55:07 2012 -0800 +++ b/mercurial/dirstate.py Fri Nov 30 15:55:08 2012 -0800 @@ -696,8 +696,9 @@ # step 3: report unseen items in the dmap hash if not skipstep3 and not exact: visit = sorted([f for f in dmap if f not in results and matchfn(f)]) - for nf, st in zip(visit, util.statfiles([join(i) for i in visit])): - results[nf] = st + nf = iter(visit).next + for st in util.statfiles([join(i) for i in visit]): + results[nf()] = st for s in subrepos: del results[s] del results['.hg']