diff hgext/rebase.py @ 26675:b73eb98c0243

rebase: properly handle chains of markers with missing nodes As obsolescence markers can contains unknown nodes and 'allsuccessors' returns them, we have to protect again that when looking for successors of the rebase set in the destination. Test have been expanded to catch that.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 15 Oct 2015 00:32:20 +0100
parents fd4a38bd7e49
children e9b3d523f2e6
line wrap: on
line diff
--- a/hgext/rebase.py	Wed Oct 14 23:42:15 2015 +0100
+++ b/hgext/rebase.py	Thu Oct 15 00:32:20 2015 +0100
@@ -1167,7 +1167,10 @@
         if n.obsolete():
             node = cl.node(r)
             for s in obsolete.allsuccessors(repo.obsstore, [node]):
-                allsuccessors[cl.rev(s)] = cl.rev(node)
+                try:
+                    allsuccessors[cl.rev(s)] = cl.rev(node)
+                except LookupError:
+                    pass
 
     if allsuccessors:
         # Look for successors of obsolete nodes to be rebased among