Skip to content
Snippets Groups Projects
Commit 20a30bb8 authored by Martin von Zweigbergk's avatar Martin von Zweigbergk
Browse files

rebase: use revnums (not nodes) for set of extinct revisions

There is no need to convert extinct revisions to nodeids.

Differential Revision: https://phab.mercurial-scm.org/D3942
parent 0f8599af
Branches
Tags
No related merge requests found
......@@ -1855,10 +1855,10 @@
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)
......@@ -1859,10 +1859,11 @@
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:
......@@ -1870,7 +1871,6 @@
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment