diff mercurial/graphmod.py @ 31552:d0b9e9803caf

graphlog: draw multiple edges towards null node (issue5440) Before, edge (r, null) was processed only once by newparents. However what we really need is just stripping the edge (null, null).
author Yuya Nishihara <yuya@tcha.org>
date Mon, 20 Mar 2017 11:50:55 +0900
parents aea06029919e
children 906da89821ce
line wrap: on
line diff
--- a/mercurial/graphmod.py	Tue Mar 21 18:36:14 2017 -0400
+++ b/mercurial/graphmod.py	Mon Mar 20 11:50:55 2017 +0900
@@ -182,6 +182,9 @@
     knownparents = []
     newparents = []
     for ptype, parent in parents:
+        if parent == rev:
+            # self reference (should only be seen in null rev)
+            continue
         if parent in seen:
             knownparents.append(parent)
         else:
@@ -191,8 +194,7 @@
     ncols = len(seen)
     nextseen = seen[:]
     nextseen[nodeidx:nodeidx + 1] = newparents
-    edges = [(nodeidx, nextseen.index(p))
-             for p in knownparents if p != nullrev]
+    edges = [(nodeidx, nextseen.index(p)) for p in knownparents]
 
     seen[:] = nextseen
     while len(newparents) > 2: