Mercurial > hg-stable
changeset 23428:b5e3f3d25395
largefiles: split the creation of a normal matcher out of its install method
Refactoring addremove to support subrepos will need the ability to keep passing
the same matcher and narrowing it, instead of monkey patching scmutil's matcher.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 21 Nov 2014 22:24:45 -0500 |
parents | 3778884197f0 |
children | f35526b999f4 |
files | hgext/largefiles/overrides.py |
diffstat | 1 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py Mon Dec 01 21:48:32 2014 -0800 +++ b/hgext/largefiles/overrides.py Fri Nov 21 22:24:45 2014 -0500 @@ -22,20 +22,23 @@ # -- Utility functions: commonly/repeatedly needed functionality --------------- +def composenormalfilematcher(match, manifest): + m = copy.copy(match) + notlfile = lambda f: not (lfutil.isstandin(f) or lfutil.standin(f) in + 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) + return m + def installnormalfilesmatchfn(manifest): '''installmatchfn with a matchfn that ignores all largefiles''' def overridematch(ctx, pats=[], opts={}, globbed=False, default='relpath'): match = oldmatch(ctx, pats, opts, globbed, default) - m = copy.copy(match) - notlfile = lambda f: not (lfutil.isstandin(f) or lfutil.standin(f) in - 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) - return m + return composenormalfilematcher(match, manifest) oldmatch = installmatchfn(overridematch) def installmatchfn(f):