[PATCH 2 of 2] phases: micro-optimize newheads() to not create context objects
Yuya Nishihara
yuya at tcha.org
Sat Jul 14 01:43:03 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1531542109 -32400
# Sat Jul 14 13:21:49 2018 +0900
# Node ID 503d14253b22603b1f76c80dd6b89b6ebcfe5e06
# Parent c8f181c48ae26247478aea82c8d2ab2f886831f9
phases: micro-optimize newheads() to not create context objects
diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -665,9 +665,8 @@ def newheads(repo, heads, roots):
* `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
More information about the Mercurial-devel
mailing list