largefiles: fix _always for match overrides
Upcoming patches will speed dirstate.walk up by not filtering based on the
match function when match.always() is True. For that to work, match.always()
needs to be accurate. Previously it wasn't so for largefiles.
--- a/hgext/largefiles/overrides.py Mon Mar 25 14:12:39 2013 -0700
+++ b/hgext/largefiles/overrides.py Mon Mar 25 14:22:34 2013 -0700
@@ -34,6 +34,7 @@
manifest)
m._files = filter(notlfile, m._files)
m._fmap = set(m._files)
+ m._always = False
origmatchfn = m.matchfn
m.matchfn = lambda f: notlfile(f) and origmatchfn(f) or None
return m
@@ -251,6 +252,7 @@
standins = [lfutil.standin(f) for f in m._files]
m._files.extend(standins)
m._fmap = set(m._files)
+ m._always = False
origmatchfn = m.matchfn
def lfmatchfn(f):
lf = lfutil.splitstandin(f)
@@ -519,6 +521,7 @@
lfile = lambda f: lfutil.standin(f) in manifest
m._files = [lfutil.standin(f) for f in m._files if lfile(f)]
m._fmap = set(m._files)
+ m._always = False
origmatchfn = m.matchfn
m.matchfn = lambda f: (lfutil.isstandin(f) and
(f in manifest) and
@@ -625,6 +628,7 @@
m._files = [tostandin(f) for f in m._files]
m._files = [f for f in m._files if f is not None]
m._fmap = set(m._files)
+ m._always = False
origmatchfn = m.matchfn
def matchfn(f):
if lfutil.isstandin(f):