# HG changeset patch # User Yuya Nishihara # Date 1470483468 -32400 # Node ID 9c51a5de76dbd5ccc46abbf3ee7082eb71b1b581 # Parent abe4eecc3253f7c390289538f7855bbe067f629c revset: also parse x^: as (x^): Given x^:y is (x^):y, this seems sensible. diff -r abe4eecc3253 -r 9c51a5de76db mercurial/revset.py --- 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:]) diff -r abe4eecc3253 -r 9c51a5de76db tests/test-revset.t --- 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: + + 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: + + 4 + 5 + 6 + 7 + 8 + 9 + x^ in alias should also be resolved $ try 'A' --config 'revsetalias.A=1^:2'