evolve: filter nullid successors stable
authorPierre-Yves David <pierre-yves.david@ens-lyon.org>
Wed, 10 Oct 2012 14:58:21 +0200
branchstable
changeset 577 2cd2ee20d9fa
parent 576 cf116ffc9cc5
child 578 02f34904305f
child 580 4676650f4f9d
evolve: filter nullid successors
hgext/evolve.py
--- a/hgext/evolve.py	Thu Sep 27 16:55:08 2012 +0200
+++ b/hgext/evolve.py	Wed Oct 10 14:58:21 2012 +0200
@@ -295,6 +295,25 @@
 reposetup = eh.final_reposetup
 
 #####################################################################
+### Critical fix                                                  ###
+#####################################################################
+
+@eh.wrapfunction(mercurial.obsolete, '_readmarkers')
+def safereadmarkers(orig, data):
+    """safe maker wrapper to remove nullid succesors
+
+    Nullid successors was created by older version of evolve.
+    """
+    for marker in orig(data):
+        if nullid in marker[1]:
+            marker = (marker[0],
+                      tuple(s for s in marker[1] if s != nullid),
+                      marker[2],
+                      marker[3])
+        yield marker
+
+
+#####################################################################
 ### Obsolescence Caching Logic                                    ###
 #####################################################################