Comments
Patch
@@ -2661,12 +2661,22 @@ def posttreebuilthook(tree, repo):
pass
def match(ui, spec, repo=None):
- if not spec:
+ """Parse the given spec and create a matcher. If the spec is a list,
+ it will include any revisions that match one of the given spec.
+ """
+ if not isinstance(spec, list):
+ spec = [spec]
+ if not all(spec):
raise error.ParseError(_("empty query"))
lookup = None
if repo:
lookup = repo.__contains__
- tree = parse(spec, lookup)
+ if not spec:
+ tree = None
+ elif len(spec) == 1:
+ tree = parse(spec[0], lookup)
+ else:
+ tree = ('or',) + tuple(parse(s, lookup) for s in spec)
if ui:
tree = findaliases(ui, tree, showwarning=ui.warn)
tree = foldconcat(tree)
@@ -2675,7 +2685,9 @@ def match(ui, spec, repo=None):
def mfunc(repo, subset=None):
if subset is None:
subset = fullreposet(repo)
- if util.safehasattr(subset, 'isascending'):
+ if tree is None:
+ result = baseset()
+ elif util.safehasattr(subset, 'isascending'):
result = getset(repo, subset, tree)
else:
result = getset(repo, baseset(subset), tree)