comparison hgext/rebase.py @ 43567:0fea03924990

index: use `index.get_rev` in `rebase._computeobsoletenotrebased` Differential Revision: https://phab.mercurial-scm.org/D7350
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sat, 09 Nov 2019 13:23:54 +0100
parents 054846d213ba
children b56c6647f65e
comparison
equal deleted inserted replaced
43566:054846d213ba 43567:0fea03924990
2216 obsoletewithoutsuccessorindestination = set() 2216 obsoletewithoutsuccessorindestination = set()
2217 obsoleteextinctsuccessors = set() 2217 obsoleteextinctsuccessors = set()
2218 2218
2219 assert repo.filtername is None 2219 assert repo.filtername is None
2220 cl = repo.changelog 2220 cl = repo.changelog
2221 nodemap = cl.nodemap 2221 get_rev = cl.index.get_rev
2222 extinctrevs = set(repo.revs(b'extinct()')) 2222 extinctrevs = set(repo.revs(b'extinct()'))
2223 for srcrev in rebaseobsrevs: 2223 for srcrev in rebaseobsrevs:
2224 srcnode = cl.node(srcrev) 2224 srcnode = cl.node(srcrev)
2225 # XXX: more advanced APIs are required to handle split correctly 2225 # XXX: more advanced APIs are required to handle split correctly
2226 successors = set(obsutil.allsuccessors(repo.obsstore, [srcnode])) 2226 successors = set(obsutil.allsuccessors(repo.obsstore, [srcnode]))
2227 # obsutil.allsuccessors includes node itself 2227 # obsutil.allsuccessors includes node itself
2228 successors.remove(srcnode) 2228 successors.remove(srcnode)
2229 succrevs = {nodemap[s] for s in successors if s in nodemap} 2229 succrevs = {get_rev(s) for s in successors}
2230 succrevs.discard(None)
2230 if succrevs.issubset(extinctrevs): 2231 if succrevs.issubset(extinctrevs):
2231 # all successors are extinct 2232 # all successors are extinct
2232 obsoleteextinctsuccessors.add(srcrev) 2233 obsoleteextinctsuccessors.add(srcrev)
2233 if not successors: 2234 if not successors:
2234 # no successor 2235 # no successor