# HG changeset patch # User Siddharth Agarwal # Date 1405150296 25200 # Node ID e967c3b08705b50a394d92539e31fee8a9ce3381 # Parent 89cdebc31cda07050f7e7ca0e2539394dcf8fd21 revset: replace _missingancestors optimization with only revset (::a - ::b) is equivalent to only(a, b). diff -r 89cdebc31cda -r e967c3b08705 mercurial/revset.py --- a/mercurial/revset.py Sat Jun 28 01:42:39 2014 +0200 +++ b/mercurial/revset.py Sat Jul 12 00:31:36 2014 -0700 @@ -1867,7 +1867,7 @@ wb, tb = optimize(x[2], True) # (::x and not ::y)/(not ::y and ::x) have a fast path - def ismissingancestors(revs, bases): + def isonly(revs, bases): return ( revs[0] == 'func' and getstring(revs[1], _('not a symbol')) == 'ancestors' @@ -1876,12 +1876,10 @@ and getstring(bases[1][1], _('not a symbol')) == 'ancestors') w = min(wa, wb) - if ismissingancestors(ta, tb): - return w, ('func', ('symbol', '_missingancestors'), - ('list', ta[2], tb[1][2])) - if ismissingancestors(tb, ta): - return w, ('func', ('symbol', '_missingancestors'), - ('list', tb[2], ta[1][2])) + if isonly(ta, tb): + return w, ('func', ('symbol', 'only'), ('list', ta[2], tb[1][2])) + if isonly(tb, ta): + return w, ('func', ('symbol', 'only'), ('list', tb[2], ta[1][2])) if wa > wb: return w, (op, tb, ta) diff -r 89cdebc31cda -r e967c3b08705 tests/test-revset.t --- a/tests/test-revset.t Sat Jun 28 01:42:39 2014 +0200 +++ b/tests/test-revset.t Sat Jul 12 00:31:36 2014 -0700 @@ -562,7 +562,7 @@ 5 8 -check that conversion to _missingancestors works +check that conversion to only works $ try --optimize '::3 - ::1' (minus (dagrangepre @@ -571,7 +571,7 @@ ('symbol', '1'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '3') ('symbol', '1'))) @@ -586,7 +586,7 @@ ('symbol', '3'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '1') ('symbol', '3'))) @@ -599,7 +599,7 @@ ('symbol', '6'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '6') ('symbol', '2'))) @@ -618,7 +618,7 @@ ('symbol', '4')))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '6') ('symbol', '4')))