Mercurial > hg
diff hgext/largefiles/overrides.py @ 51601:ea3343104f07
largefiles: track if a matcher was tampered with
This is used to make sure rust fast path is not taken for the
modified matchers.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Tue, 09 Apr 2024 11:00:52 +0100 |
parents | d718eddf01d9 |
children | 493034cc3265 187d7c859be7 |
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py Wed Apr 17 12:28:48 2024 +0200 +++ b/hgext/largefiles/overrides.py Tue Apr 09 11:00:52 2024 +0100 @@ -71,6 +71,7 @@ """create a matcher that matches only the largefiles in the original matcher""" m = copy.copy(match) + m._was_tampered_with = True lfile = lambda f: lfutil.standin(f) in manifest m._files = [lf for lf in m._files if lfile(lf)] m._fileset = set(m._files) @@ -86,6 +87,7 @@ excluded.update(exclude) m = copy.copy(match) + m._was_tampered_with = True notlfile = lambda f: not ( lfutil.isstandin(f) or lfutil.standin(f) in manifest or f in excluded ) @@ -442,6 +444,8 @@ pats.update(fixpats(f, tostandin) for f in p) + m._was_tampered_with = True + for i in range(0, len(m._files)): # Don't add '.hglf' to m.files, since that is already covered by '.' if m._files[i] == b'.': @@ -849,6 +853,7 @@ newpats.append(pat) match = orig(ctx, newpats, opts, globbed, default, badfn=badfn) m = copy.copy(match) + m._was_tampered_with = True lfile = lambda f: lfutil.standin(f) in manifest m._files = [lfutil.standin(f) for f in m._files if lfile(f)] m._fileset = set(m._files) @@ -967,6 +972,7 @@ opts = {} match = orig(mctx, pats, opts, globbed, default, badfn=badfn) m = copy.copy(match) + m._was_tampered_with = True # revert supports recursing into subrepos, and though largefiles # currently doesn't work correctly in that case, this match is @@ -1595,6 +1601,7 @@ # confused state later. if s.deleted: m = copy.copy(matcher) + m._was_tampered_with = True # The m._files and m._map attributes are not changed to the deleted list # because that affects the m.exact() test, which in turn governs whether @@ -1721,6 +1728,7 @@ err = 1 notbad = set() m = scmutil.match(ctx, (file1,) + pats, pycompat.byteskwargs(opts)) + m._was_tampered_with = True origmatchfn = m.matchfn def lfmatchfn(f):