[PATCH 04 of 22] obsstore: minor optimization for the obsolete revset
Jun Wu
quark at fb.com
Sun Jun 4 19:59:16 EDT 2017
# HG changeset patch
# User Jun Wu <quark at fb.com>
# Date 1496457147 25200
# Fri Jun 02 19:32:27 2017 -0700
# Node ID e1d6126ed614db6ec664c79afcb3a141c9a0dfa4
# Parent d492628229c58f8417a8b5925a614e26a16465af
# Available At https://bitbucket.org/quark-zju/hg-draft
# hg pull https://bitbucket.org/quark-zju/hg-draft -r e1d6126ed614
obsstore: minor optimization for the obsolete revset
Use local variables in a loop.
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -1278,10 +1278,8 @@ def clearobscaches(repo):
def _computeobsoleteset(repo):
"""the set of obsolete revisions"""
- obs = set()
getnode = repo.changelog.node
notpublic = repo._phasecache.getrevset(repo, (phases.draft, phases.secret))
- for r in notpublic:
- if getnode(r) in repo.obsstore.successors:
- obs.add(r)
+ isobs = repo.obsstore.successors.__contains__
+ obs = set(r for r in notpublic if isobs(getnode(r)))
return obs
More information about the Mercurial-devel
mailing list