changeset 38625 | 52f19a840543 |
parent 37775 | 03d7f885d5f2 |
child 38783 | e7aa113b14f7 |
--- a/mercurial/revsetlang.py Mon Jun 18 19:41:54 2018 -0700 +++ b/mercurial/revsetlang.py Tue Jun 26 15:26:21 2018 -0700 @@ -459,6 +459,12 @@ f = getsymbol(x[1]) wa, ta = _optimize(x[2]) w = getattr(symbols.get(f), '_weight', 1) + m = _match('commonancestors(_)', ta) + + # Optimize heads(commonancestors(_)) because we have a fast version + if f == 'heads' and m: + return w + wa, _build('_commonancestorheads(_)', m[1]) + return w + wa, (op, x[1], ta) raise ValueError('invalid operator %r' % op)