match: add optional warn argument
Occasionally the matcher will want to print warning messages instead of throwing
exceptions (like if it encounters a bad syntax parameter when parsing files).
Let's add an optional warn argument that can provide this. The next patch will
actually use this argument.
--- a/mercurial/match.py Sat May 16 15:51:03 2015 -0700
+++ b/mercurial/match.py Mon May 18 16:27:56 2015 -0700
@@ -54,7 +54,7 @@
class match(object):
def __init__(self, root, cwd, patterns, include=[], exclude=[],
default='glob', exact=False, auditor=None, ctx=None,
- listsubrepos=False):
+ listsubrepos=False, warn=None):
"""build an object to match a set of file patterns
arguments:
@@ -65,6 +65,7 @@
exclude - patterns to exclude (even if they are included)
default - if a pattern in patterns has no explicit type, assume this one
exact - patterns are actually filenames (include/exclude still apply)
+ warn - optional function used for printing warnings
a pattern is one of:
'glob:<glob>' - a glob relative to cwd
@@ -83,6 +84,7 @@
self._anypats = bool(include or exclude)
self._always = False
self._pathrestricted = bool(include or exclude or patterns)
+ self._warn = warn
matchfns = []
if include:
@@ -536,7 +538,9 @@
try:
syntax = syntaxes[s]
except KeyError:
- warn(_("%s: ignoring invalid syntax '%s'\n") % (filepath, s))
+ if warn:
+ warn(_("%s: ignoring invalid syntax '%s'\n") %
+ (filepath, s))
continue
linesyntax = syntax