debugrevspec: pass lookup function to visualize fallback mechanism
authorYuya Nishihara <yuya@tcha.org>
Sat, 18 Jul 2015 23:02:18 +0900
changeset 25901 0203c50a589f
parent 25899 c35ee1bbbbdc
child 25902 5214cbdc37e5
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.
mercurial/commands.py
tests/test-revset.t
--- 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