[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