largefiles: avoid redundant loop to eliminate None from list
Before this patch, this code path contains two loops for m._files: one
for replacement with standin, and another for elimination of None,
which comes from previous replacement ("standin in wctx or
lfdirstate[f] == 'r'" case in tostandin()).
These two loops can be unified into simple one "for" loop.
--- a/hgext/largefiles/overrides.py Mon Mar 27 09:44:35 2017 +0900
+++ b/hgext/largefiles/overrides.py Mon Mar 27 09:44:35 2017 +0900
@@ -759,15 +759,16 @@
False)
wctx = repo[None]
- def tostandin(f):
+ matchfiles = []
+ for f in m._files:
standin = lfutil.standin(f)
if standin in ctx or standin in mctx:
- return standin
+ matchfiles.append(standin)
elif standin in wctx or lfdirstate[f] == 'r':
- return None
- return f
- m._files = [tostandin(f) for f in m._files]
- m._files = [f for f in m._files if f is not None]
+ continue
+ else:
+ matchfiles.append(f)
+ m._files = matchfiles
m._fileroots = set(m._files)
origmatchfn = m.matchfn
def matchfn(f):