# HG changeset patch # User Martin von Zweigbergk # Date 2017-05-19 19:47:45 # Node ID 5f08eca8f8d3a103b6b9c08cec5d4b5a06cec4bb # Parent b3083be7dcb972355a340a31ac24f58cd052c80d 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). diff --git a/mercurial/match.py b/mercurial/match.py --- a/mercurial/match.py +++ b/mercurial/match.py @@ -145,9 +145,9 @@ def match(root, cwd, patterns, include=N 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 @@ def match(root, cwd, patterns, include=N 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 alwaysmatcher(basematcher): 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 patternmatcher(basematcher): 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)