mercurial/revset.py
branchstable
changeset 14842 805651777188
parent 14723 b9faf94ee196
child 14851 f96c354493d7
--- a/mercurial/revset.py	Wed Jul 06 18:28:42 2011 +0900
+++ b/mercurial/revset.py	Wed Jul 06 13:37:50 2011 -0500
@@ -928,6 +928,14 @@
     elif op == 'group':
         return optimize(x[1], small)
     elif op in 'range list parent ancestorspec':
+        if op == 'parent':
+            # x^:y means (x^) : y, not x ^ (:y)
+            post = ('parentpost', x[1])
+            if x[2][0] == 'dagrangepre':
+                return optimize(('dagrange', post, x[2][1]), small)
+            elif x[2][0] == 'rangepre':
+                return optimize(('range', post, x[2][1]), small)
+
         wa, ta = optimize(x[1], small)
         wb, tb = optimize(x[2], small)
         return wa + wb, (op, ta, tb)