match: don't use mutable default argument value
There shouldn't be a big perf hit creating a new object because
this function is complicated and does things that dwarf the cost
of creating a new PyObject.
--- a/mercurial/match.py Sun Mar 12 21:52:17 2017 -0700
+++ b/mercurial/match.py Sun Mar 12 21:53:03 2017 -0700
@@ -85,7 +85,7 @@
return True
class match(object):
- def __init__(self, root, cwd, patterns, include=[], exclude=[],
+ def __init__(self, root, cwd, patterns, include=None, exclude=None,
default='glob', exact=False, auditor=None, ctx=None,
listsubrepos=False, warn=None, badfn=None):
"""build an object to match a set of file patterns
@@ -117,6 +117,8 @@
the same directory
'<something>' - a pattern of the specified default type
"""
+ include = include or []
+ exclude = exclude or []
self._root = root
self._cwd = cwd