Comments
Patch
@@ -2148,6 +2148,19 @@
# hook for extensions to execute code on the optimized tree
pass
+def buildtree(specs, repo=None):
+ """ builds the tree on basis of specs and returns it """
+ lookup = None
+ if repo:
+ lookup = repo.__contains__
+ if len(specs) == 1:
+ tree = revsetlang.parse(specs[0], lookup)
+ else:
+ tree = ('or',
+ ('list',) + tuple(revsetlang.parse(s, lookup) for s in specs))
+
+ return tree
+
def match(ui, spec, repo=None):
"""Create a matcher for a single revision spec"""
return matchany(ui, [spec], repo=repo)
@@ -2167,14 +2180,8 @@
return emptymatcher
if not all(specs):
raise error.ParseError(_("empty query"))
- lookup = None
- if repo:
- lookup = repo.__contains__
- if len(specs) == 1:
- tree = revsetlang.parse(specs[0], lookup)
- else:
- tree = ('or',
- ('list',) + tuple(revsetlang.parse(s, lookup) for s in specs))
+
+ tree = buildtree(specs, repo)
aliases = []
warn = None