hgext/histedit.py
changeset 43568 418ca164d44c
parent 43548 ccda03f6abcb
child 43569 43e722fc2909
equal deleted inserted replaced
43567:0fea03924990 43568:418ca164d44c
  2445     data read from obsolescence markers"""
  2445     data read from obsolescence markers"""
  2446     if not obsolete.isenabled(repo, obsolete.createmarkersopt):
  2446     if not obsolete.isenabled(repo, obsolete.createmarkersopt):
  2447         return oldreplacements
  2447         return oldreplacements
  2448 
  2448 
  2449     unfi = repo.unfiltered()
  2449     unfi = repo.unfiltered()
  2450     nm = unfi.changelog.nodemap
  2450     get_rev = unfi.changelog.index.get_rev
  2451     obsstore = repo.obsstore
  2451     obsstore = repo.obsstore
  2452     newreplacements = list(oldreplacements)
  2452     newreplacements = list(oldreplacements)
  2453     oldsuccs = [r[1] for r in oldreplacements]
  2453     oldsuccs = [r[1] for r in oldreplacements]
  2454     # successors that have already been added to succstocheck once
  2454     # successors that have already been added to succstocheck once
  2455     seensuccs = set().union(
  2455     seensuccs = set().union(
  2456         *oldsuccs
  2456         *oldsuccs
  2457     )  # create a set from an iterable of tuples
  2457     )  # create a set from an iterable of tuples
  2458     succstocheck = list(seensuccs)
  2458     succstocheck = list(seensuccs)
  2459     while succstocheck:
  2459     while succstocheck:
  2460         n = succstocheck.pop()
  2460         n = succstocheck.pop()
  2461         missing = nm.get(n) is None
  2461         missing = get_rev(n) is None
  2462         markers = obsstore.successors.get(n, ())
  2462         markers = obsstore.successors.get(n, ())
  2463         if missing and not markers:
  2463         if missing and not markers:
  2464             # dead end, mark it as such
  2464             # dead end, mark it as such
  2465             newreplacements.append((n, ()))
  2465             newreplacements.append((n, ()))
  2466         for marker in markers:
  2466         for marker in markers: