# HG changeset patch # User Siddharth Agarwal # Date 2014-07-12 07:31:36 # Node ID e967c3b08705b50a394d92539e31fee8a9ce3381 # Parent 89cdebc31cda07050f7e7ca0e2539394dcf8fd21 revset: replace _missingancestors optimization with only revset (::a - ::b) is equivalent to only(a, b). diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1867,7 +1867,7 @@ def optimize(x, small): 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 @@ def optimize(x, small): 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 --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -562,7 +562,7 @@ test intersecting something with an adds 5 8 -check that conversion to _missingancestors works +check that conversion to only works $ try --optimize '::3 - ::1' (minus (dagrangepre @@ -571,7 +571,7 @@ check that conversion to _missingancesto ('symbol', '1'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '3') ('symbol', '1'))) @@ -586,7 +586,7 @@ check that conversion to _missingancesto ('symbol', '3'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '1') ('symbol', '3'))) @@ -599,7 +599,7 @@ check that conversion to _missingancesto ('symbol', '6'))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '6') ('symbol', '2'))) @@ -618,7 +618,7 @@ check that conversion to _missingancesto ('symbol', '4')))) * optimized: (func - ('symbol', '_missingancestors') + ('symbol', 'only') (list ('symbol', '6') ('symbol', '4')))