diff hgext3rd/evolve/templatekw.py @ 2611:45f5dbb24684

obsfate: display more data about direct prune markers This does not handle all cases, but this should handle the most common ones.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 16 Jun 2017 18:03:32 +0200
parents ee37ab3de5f7
children fd35b428edfc
line wrap: on
line diff
--- a/hgext3rd/evolve/templatekw.py	Fri Jun 16 17:58:17 2017 +0200
+++ b/hgext3rd/evolve/templatekw.py	Fri Jun 16 18:03:32 2017 +0200
@@ -139,9 +139,25 @@
     if successorssets == []:
         successorssets = [[]]
 
-    values = []
+    succsmap = repo.obsstore.successors
+    fullsuccessorsets = [] # successor set + markers
     for sset in successorssets:
-        rawmarkers = obshistory.successorsetallmarkers(sset, pathcache)
+        if sset:
+            markers = obshistory.successorsetallmarkers(sset, pathcache)
+            fullsuccessorsets.append((sset, markers))
+        else:
+            # XXX we do not catch all prune markers (eg rewritten then pruned)
+            # (fix me later)
+            foundany = False
+            for mark in succsmap.get(ctx.node(), ()):
+                if not mark[1]:
+                    foundany = True
+                    fullsuccessorsets.append((sset, [mark]))
+            if not foundany:
+                fullsuccessorsets.append(([], []))
+
+    values = []
+    for sset, rawmarkers in fullsuccessorsets:
         raw = obshistory.preparesuccessorset(sset, rawmarkers)
 
         # As we can't do something like