# HG changeset patch # User Yuya Nishihara # Date 1531542109 -32400 # Node ID ddd2165438cd30f420ffedfbb687819f3580904d # Parent 88efb7d6bcb6214079d952a90b0eb14dbfa11c71 phases: micro-optimize newheads() to not create context objects diff -r 88efb7d6bcb6 -r ddd2165438cd mercurial/phases.py --- a/mercurial/phases.py Sat Jul 14 13:19:18 2018 +0900 +++ b/mercurial/phases.py Sat Jul 14 13:21:49 2018 +0900 @@ -665,9 +665,8 @@ * `heads`: define the first subset * `roots`: define the second we subtract from the first""" repo = repo.unfiltered() - revset = repo.set('heads(::%ln - (%ln::%ln))', heads, roots, heads) - return [c.node() for c in revset] - + revs = repo.revs('heads(::%ln - (%ln::%ln))', heads, roots, heads) + return pycompat.maplist(repo.changelog.node, revs) def newcommitphase(ui): """helper to get the target phase of new commit