changeset 29770:9c51a5de76db

revset: also parse x^: as (x^): Given x^:y is (x^):y, this seems sensible.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 06 Aug 2016 20:37:48 +0900
parents abe4eecc3253
children 98976e3cae57
files mercurial/revset.py tests/test-revset.t
diffstat 2 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revset.py	Sat Aug 06 20:21:00 2016 +0900
+++ b/mercurial/revset.py	Sat Aug 06 20:37:48 2016 +0900
@@ -2323,11 +2323,14 @@
     op = x[0]
     if op == 'parent':
         # x^:y means (x^) : y, not x ^ (:y)
+        # x^:  means (x^) :,   not x ^ (:)
         post = ('parentpost', x[1])
         if x[2][0] == 'dagrangepre':
             return _fixops(('dagrange', post, x[2][1]))
         elif x[2][0] == 'rangepre':
             return _fixops(('range', post, x[2][1]))
+        elif x[2][0] == 'rangeall':
+            return _fixops(('rangepost', post))
 
     return (op,) + tuple(_fixops(y) for y in x[1:])
 
--- a/tests/test-revset.t	Sat Aug 06 20:21:00 2016 +0900
+++ b/tests/test-revset.t	Sat Aug 06 20:37:48 2016 +0900
@@ -504,6 +504,15 @@
   1
   2
 
+  $ try '9^:'
+  (rangepost
+    (parentpost
+      ('symbol', '9')))
+  * set:
+  <spanset+ 8:9>
+  8
+  9
+
  x^:y should be resolved before omitting group operators
 
   $ try '1^(:2)'
@@ -560,6 +569,22 @@
   1
   2
 
+  $ try '(9^:)^:'
+  (rangepost
+    (parentpost
+      (group
+        (rangepost
+          (parentpost
+            ('symbol', '9'))))))
+  * set:
+  <spanset+ 4:9>
+  4
+  5
+  6
+  7
+  8
+  9
+
  x^ in alias should also be resolved
 
   $ try 'A' --config 'revsetalias.A=1^:2'