mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
obsolete: avoid using revset language to compute the obsolete revset
This is part of a refactoring that moves some phase query optimization from revset.py to phases.py. See previous patches for the motivation. Now we have APIs in phasecache to get the non-public set efficiently, let's use it directly instead of going through the "not public()" revset language in "obsolete()" computation. This patch was meaured using: for i in 'public()' 'not public()' 'draft()' 'not draft()'; do hg perfrevset "$i"; hg perfrevset "$i" --hidden; done and no noticeable (> 1%) performance difference was observed.
This commit is contained in:
parent
bc5a0cb908
commit
4a76b6f405
@ -1120,7 +1120,7 @@ def _computeobsoleteset(repo):
|
||||
"""the set of obsolete revisions"""
|
||||
obs = set()
|
||||
getnode = repo.changelog.node
|
||||
notpublic = repo.revs("not public()")
|
||||
notpublic = repo._phasecache.getrevset(repo, (phases.draft, phases.secret))
|
||||
for r in notpublic:
|
||||
if getnode(r) in repo.obsstore.successors:
|
||||
obs.add(r)
|
||||
|
Loading…
Reference in New Issue
Block a user