debugrevspec: pass lookup function to visualize fallback mechanism
The next patch will move the exceptional parsing of old-style ranges
to revset.tokenize(). This patch will allow us to see the result tree.
Note that the parsing result of '-a-b-c-' is incorrect at this changeset.
It will be fixed soon.
--- a/mercurial/commands.py Sun Aug 02 19:18:35 2015 +0800
+++ b/mercurial/commands.py Sat Jul 18 23:02:18 2015 +0900
@@ -2933,7 +2933,7 @@
expansion.
"""
if ui.verbose:
- tree = revset.parse(expr)
+ tree = revset.parse(expr, lookup=repo.__contains__)
ui.note(revset.prettyformat(tree), "\n")
newtree = revset.findaliases(ui, tree)
if newtree != tree:
@@ -2945,7 +2945,7 @@
if opts["optimize"]:
weight, optimizedtree = revset.optimize(newtree, True)
ui.note("* optimized:\n", revset.prettyformat(optimizedtree), "\n")
- func = revset.match(ui, expr)
+ func = revset.match(ui, expr, repo)
revs = func(repo)
if ui.verbose:
ui.note("* set:\n", revset.prettyformatset(revs), "\n")
--- a/tests/test-revset.t Sun Aug 02 19:18:35 2015 +0800
+++ b/tests/test-revset.t Sat Jul 18 23:02:18 2015 +0900
@@ -197,10 +197,16 @@
<filteredset
<baseset [7]>>
7
- $ try -- '-a-b-c-' # complains
- hg: parse error at 7: not a prefix: end
- [255]
- $ log -a-b-c- # succeeds with fallback
+
+names that should be caught by fallback mechanism
+
+ $ try -- '-a-b-c-'
+ (negate
+ ('symbol', 'a-b-c-'))
+ * set:
+ <baseset [4]>
+ 4
+ $ log -a-b-c-
4
$ try -- -a-b-c--a # complains