D3942: rebase: use revnums (not nodes) for set of extinct revisions
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Jul 12 19:34:53 UTC 2018
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
There is no need to convert extinct revisions to nodeids.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3942
AFFECTED FILES
hgext/rebase.py
CHANGE DETAILS
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1855,22 +1855,22 @@
assert repo.filtername is None
cl = repo.changelog
nodemap = cl.nodemap
- extinctnodes = set(cl.node(r) for r in repo.revs('extinct()'))
+ extinctrevs = set(repo.revs('extinct()'))
for srcrev in rebaseobsrevs:
srcnode = cl.node(srcrev)
# XXX: more advanced APIs are required to handle split correctly
successors = set(obsutil.allsuccessors(repo.obsstore, [srcnode]))
# obsutil.allsuccessors includes node itself
successors.remove(srcnode)
- if successors.issubset(extinctnodes):
+ succrevs = {nodemap[s] for s in successors if s in nodemap}
+ if succrevs.issubset(extinctrevs):
# all successors are extinct
obsoleteextinctsuccessors.add(srcrev)
if not successors:
# no successor
obsoletenotrebased[srcrev] = None
else:
dstrev = destmap[srcrev]
- succrevs = [nodemap[s] for s in successors if s in nodemap]
for succrev in succrevs:
if cl.isancestorrev(succrev, dstrev):
obsoletenotrebased[srcrev] = succrev
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list