hgext3rd/evolve/utility.py
branchmercurial-4.6
changeset 5368 844b1ad5b34b
parent 5311 77a77d0f5441
child 5314 f12d2172a133
child 5352 10368b3427b1
equal deleted inserted replaced
5284:0471b9ddd0b2 5368:844b1ad5b34b
   110 
   110 
   111     if not p.obsolete():
   111     if not p.obsolete():
   112         return p.rev()
   112         return p.rev()
   113     obs = repo[p]
   113     obs = repo[p]
   114     ui = repo.ui
   114     ui = repo.ui
   115     newer = obsutil.successorssets(repo, obs.node())
   115     cache = {}
       
   116     newer = obsutil.successorssets(repo, obs.node(), cache=cache)
   116     # search of a parent which is not killed
   117     # search of a parent which is not killed
   117     while not newer:
   118     while not newer:
   118         ui.debug(b"stabilize target %s is plain dead,"
   119         ui.debug(b"stabilize target %s is plain dead,"
   119                  b" trying to stabilize on its parent\n" %
   120                  b" trying to stabilize on its parent\n" %
   120                  obs)
   121                  obs)
   121         obs = obs.p1()
   122         obs = obs.p1()
   122         newer = obsutil.successorssets(repo, obs.node())
   123         newer = obsutil.successorssets(repo, obs.node(), cache=cache)
   123     if len(newer) > 1 or len(newer[0]) > 1:
   124     if len(newer) > 1 or len(newer[0]) > 1:
   124         raise MultipleSuccessorsError(newer)
   125         raise MultipleSuccessorsError(newer)
   125 
   126 
   126     return repo[newer[0][0]].rev()
   127     return repo[newer[0][0]].rev()
   127 
   128