Mercurial > hg-stable
changeset 32589:5f08eca8f8d3
match: move normalize() call out of matcher constructors
By passing in the result of the normalize() call, we prepare for
moving the special handling of patterns that always match out of the
patternmatcher.
It also lets us remove many of the arguments from the matcher, because
they were passed only the the normalize function (we could have
removed the arguments by binding them to the function instead of
moving the normalize() call out).
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 19 May 2017 12:47:45 -0700 |
parents | b3083be7dcb9 |
children | 3fdcc34c0aba |
files | mercurial/match.py |
diffstat | 1 files changed, 12 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/match.py Fri May 19 11:58:16 2017 -0700 +++ b/mercurial/match.py Fri May 19 12:47:45 2017 -0700 @@ -145,9 +145,9 @@ if exact: m = exactmatcher(root, cwd, patterns, badfn) elif patterns: - m = patternmatcher(root, cwd, normalize, patterns, default=default, - auditor=auditor, ctx=ctx, listsubrepos=listsubrepos, - warn=warn, badfn=badfn) + kindpats = normalize(patterns, default, root, cwd, auditor, warn) + m = patternmatcher(root, cwd, kindpats, ctx=ctx, + listsubrepos=listsubrepos, badfn=badfn) else: # It's a little strange that no patterns means to match everything. # Consider changing this to match nothing (probably adding a @@ -155,14 +155,14 @@ m = alwaysmatcher(root, cwd, badfn) if include: - im = includematcher(root, cwd, normalize, include, auditor=auditor, - ctx=ctx, listsubrepos=listsubrepos, warn=warn, - badfn=None) + kindpats = normalize(include, 'glob', root, cwd, auditor, warn) + im = includematcher(root, cwd, kindpats, ctx=ctx, + listsubrepos=listsubrepos, badfn=None) m = intersectmatchers(m, im) if exclude: - em = includematcher(root, cwd, normalize, exclude, auditor=auditor, - ctx=ctx, listsubrepos=listsubrepos, warn=warn, - badfn=None) + kindpats = normalize(exclude, 'glob', root, cwd, auditor, warn) + em = includematcher(root, cwd, kindpats, ctx=ctx, + listsubrepos=listsubrepos, badfn=None) m = differencematcher(m, em) return m @@ -338,12 +338,10 @@ class patternmatcher(basematcher): - def __init__(self, root, cwd, normalize, patterns, default='glob', - auditor=None, ctx=None, listsubrepos=False, warn=None, + def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False, badfn=None): super(patternmatcher, self).__init__(root, cwd, badfn) - kindpats = normalize(patterns, default, root, cwd, auditor, warn) if not _kindpatsalwaysmatch(kindpats): self._files = _explicitfiles(kindpats) self._anypats = _anypats(kindpats) @@ -383,11 +381,10 @@ class includematcher(basematcher): - def __init__(self, root, cwd, normalize, include, auditor=None, ctx=None, - listsubrepos=False, warn=None, badfn=None): + def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False, + badfn=None): super(includematcher, self).__init__(root, cwd, badfn) - kindpats = normalize(include, 'glob', root, cwd, auditor, warn) self.includepat, im = _buildmatch(ctx, kindpats, '(?:/|$)', listsubrepos, root) self._anypats = _anypats(kindpats)