changeset 5724:ea9604ceaf55

graph: avoid collision between "heir has been found" and "child has no name" both using None as branch name Instead of using None for both, introduce a new flag for searching for heir. This will do that Git changesets without branch name will inherit colors from each other instead of getting a new one every time. (Inheriting from from changesets with branch name is still phony.)
author Mads Kiilerich <madski@unity3d.com>
date Sun, 21 Feb 2016 16:36:54 +0100
parents 08ebd11b0088
children 05a85a6cecba
files kallithea/lib/graphmod.py kallithea/tests/functional/test_changelog.py
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/graphmod.py	Sun Feb 21 16:36:04 2016 +0100
+++ b/kallithea/lib/graphmod.py	Sun Feb 21 16:36:54 2016 +0100
@@ -143,12 +143,13 @@
         color = colors.pop(rev)
         if addparents:
             b = branch(rev)
+            searching = True
             for p in reversed(addparents):
                 obs[p] = int(repo[p].obsolete)
-                if b and branch(abs(p)) == b:
+                if searching and branch(abs(p)) == b:
                     # This is the first parent on the same branch - inherit the color
                     colors[p] = color
-                    b = None # make sure we don't give the color away twice
+                    searching = False # make sure we don't give the color away twice
                 else:
                     colors[p] = newcolor
                     newcolor += 1
--- a/kallithea/tests/functional/test_changelog.py	Sun Feb 21 16:36:04 2016 +0100
+++ b/kallithea/tests/functional/test_changelog.py	Sun Feb 21 16:36:54 2016 +0100
@@ -70,7 +70,7 @@
 
         response.mustcontain("""fixing stupid typo in context for mercurial""")
 
-        response.mustcontain("""var jsdata = [[[0, 1], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 3, 0]], 0, 0], [[0, 3], [[0, 0, 4, 0]], 0, 0], [[0, 4], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 6, 0]], 0, 0], [[0, 6], [[0, 0, 7, 0]], 0, 0], [[0, 7], [[0, 0, 8, 0]], 0, 0], [[0, 8], [[0, 0, 9, 0]], 0, 0], [[0, 9], [[0, 1, 11, 0], [0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 12, 0], [1, 1, 11, 0]], 0, 0], [[0, 12], [[0, 0, 11, 0], [1, 0, 11, 0]], 0, 0], [[0, 11], [[0, 1, 14, 0], [0, 0, 13, 0]], 0, 0], [[0, 13], [[0, 0, 15, 0], [1, 1, 14, 0]], 0, 0], [[0, 15], [[0, 0, 16, 0], [1, 1, 14, 0]], 0, 0], [[1, 14], [[0, 0, 16, 0], [1, 0, 16, 0]], 0, 0], [[0, 16], [[0, 1, 18, 0], [0, 0, 17, 0]], 0, 0], [[0, 17], [[0, 0, 19, 0], [1, 1, 18, 0]], 0, 0], [[0, 19], [[0, 0, 20, 0], [1, 1, 18, 0]], 0, 0], [[0, 20], [[0, 0, 21, 0], [1, 1, 18, 0]], 0, 0], [[0, 21], [[0, 0, 22, 0], [1, 1, 18, 0]], 0, 0], [[0, 22], [[0, 0, 23, 0], [1, 1, 18, 0]], 0, 0], [[0, 23], [[0, 0, 24, 0], [1, 1, 18, 0]], 0, 0], [[1, 18], [[0, 0, 24, 0], [1, 1, 25, 0]], 0, 0], [[1, 25], [[0, 0, 24, 0], [1, 1, 26, 0], [1, 0, 24, 0]], 0, 0], [[0, 24], [[0, 0, 27, 0], [1, 1, 26, 0]], 0, 0], [[1, 26], [[0, 0, 27, 0], [1, 1, 28, 0]], 0, 0], [[1, 28], [[0, 0, 27, 0], [1, 1, 29, 0]], 0, 0], [[1, 29], [[0, 0, 27, 0], [1, 1, 30, 0]], 0, 0], [[1, 30], [[0, 0, 27, 0], [1, 0, 27, 0], [1, 1, 31, 0]], 0, 0], [[1, 31], [[0, 0, 27, 0], [1, 1, 32, 0]], 0, 0], [[1, 32], [[0, 0, 27, 0], [1, 1, 33, 0]], 0, 0], [[0, 27], [[0, 0, 33, 0], [1, 0, 33, 0]], 0, 0], [[0, 33], [[0, 0, 34, 0]], 0, 0], [[0, 34], [[0, 0, 35, 0]], 0, 0], [[0, 35], [[0, 0, 36, 0]], 0, 0], [[0, 36], [[0, 0, 37, 0]], 0, 0], [[0, 37], [[0, 0, 38, 0]], 0, 0], [[0, 38], [[0, 1, 40, 0], [0, 0, 39, 0]], 0, 0], [[0, 39], [[0, 0, 41, 0], [1, 1, 40, 0]], 0, 0], [[1, 40], [[0, 0, 41, 0], [1, 1, 42, 0]], 0, 0], [[1, 42], [[0, 0, 41, 0], [1, 0, 41, 0]], 0, 0], [[0, 41], [[0, 0, 43, 0]], 0, 0], [[0, 43], [[0, 1, 45, 0], [0, 0, 44, 0]], 0, 0], [[0, 44], [[0, 0, 46, 0], [1, 1, 45, 0]], 0, 0], [[1, 45], [[0, 0, 46, 0], [1, 1, 47, 0]], 0, 0], [[1, 47], [[0, 0, 46, 0], [1, 1, 48, 0], [1, 0, 46, 0]], 0, 0], [[0, 46], [[0, 0, 49, 0], [1, 1, 48, 0]], 0, 0], [[1, 48], [[0, 0, 49, 0], [1, 0, 49, 0]], 0, 0], [[0, 49], [[0, 1, 51, 0], [0, 0, 50, 0]], 0, 0], [[0, 50], [[0, 0, 52, 0], [1, 1, 51, 0]], 0, 0], [[1, 51], [[0, 0, 52, 0], [1, 0, 52, 0]], 0, 0], [[0, 52], [[0, 0, 53, 0]], 0, 0], [[0, 53], [[0, 0, 54, 0]], 0, 0], [[0, 54], [[0, 0, 55, 0]], 0, 0], [[0, 55], [[0, 1, 57, 0], [0, 0, 56, 0]], 0, 0], [[0, 56], [[0, 0, 58, 0], [1, 1, 57, 0]], 0, 0], [[1, 57], [[0, 0, 58, 0], [1, 0, 58, 0]], 0, 0], [[0, 58], [[0, 0, 59, 0]], 0, 0], [[0, 59], [[0, 0, 60, 0]], 0, 0], [[0, 60], [[0, 0, 61, 0]], 0, 0], [[0, 61], [[0, 1, 63, 0], [0, 0, 62, 0]], 0, 0], [[0, 62], [[0, 0, 64, 0], [1, 1, 63, 0]], 0, 0], [[1, 63], [[0, 0, 64, 0], [1, 0, 64, 0], [1, 1, 65, 0]], 0, 0], [[1, 65], [[0, 0, 64, 0], [1, 1, 66, 0]], 0, 0], [[0, 64], [[0, 0, 67, 0], [1, 1, 66, 0]], 0, 0], [[0, 67], [[0, 0, 68, 0], [1, 1, 66, 0]], 0, 0], [[0, 68], [[0, 0, 69, 0], [1, 1, 66, 0]], 0, 0], [[0, 69], [[0, 0, 70, 0], [1, 1, 66, 0]], 0, 0], [[0, 70], [[0, 0, 71, 0], [1, 1, 66, 0]], 0, 0], [[0, 71], [[0, 0, 72, 0], [1, 1, 66, 0]], 0, 0], [[0, 72], [[0, 0, 66, 0], [1, 0, 66, 0]], 0, 0], [[0, 66], [[0, 0, 73, 0]], 0, 0], [[0, 73], [[0, 0, 74, 0]], 0, 0], [[0, 74], [[0, 0, 75, 0]], 0, 0], [[0, 75], [[0, 1, 77, 0], [0, 0, 76, 0]], 0, 0], [[0, 76], [[0, 1, 79, 0], [0, 0, 78, 0], [1, 2, 77, 0]], 0, 0], [[2, 77], [[0, 0, 78, 0], [1, 1, 79, 0], [2, 0, 78, 0]], 0, 0], [[0, 78], [[0, 0, 80, 0], [1, 1, 79, 0]], 0, 0], [[0, 80], [[0, 0, 81, 0], [1, 1, 79, 0]], 0, 0], [[0, 81], [[0, 0, 82, 0], [1, 1, 79, 0]], 0, 0], [[1, 79], [[0, 0, 82, 0], [1, 0, 82, 0], [1, 1, 83, 0]], 0, 0], [[1, 83], [[0, 0, 82, 0], [1, 1, 84, 0]], 0, 0], [[0, 82], [[0, 0, 85, 0], [1, 1, 84, 0]], 0, 0], [[0, 85], [[0, 0, 86, 0], [1, 1, 84, 0]], 0, 0], [[0, 86], [[0, 0, 87, 0], [1, 1, 84, 0]], 0, 0], [[0, 87], [[0, 0, 88, 0], [1, 1, 84, 0]], 0, 0], [[0, 88], [[0, 1, 84, 0], [0, 0, 89, 0], [1, 1, 84, 0]], 0, 0], [[0, 89], [[0, 0, 90, 0], [1, 1, 84, 0]], 0, 0], [[1, 84], [[0, 0, 90, 0], [1, 0, 90, 0]], 0, 0], [[0, 90], [[0, 0, 91, 0]], 0, 0], [[0, 91], [[0, 0, 92, 0]], 0, 0], [[0, 92], [[0, 0, 93, 0]], 0, 0], [[0, 93], [[0, 0, 94, 0]], 0, 0], [[0, 94], [[0, 0, 95, 0]], 0, 0], [[0, 95], [[0, 0, 96, 0]], 0, 0], [[0, 96], [[0, 0, 97, 0]], 0, 0], [[0, 97], [[0, 0, 98, 0]], 0, 0], [[0, 98], [[0, 0, 99, 0]], 0, 0], [[0, 99], [[0, 0, 100, 0]], 0, 0], [[0, 100], [[0, 0, 101, 0]], 0, 0]];""")
+        response.mustcontain("""var jsdata = [[[0, 1], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 1, 3, 0], [0, 0, 2, 0]], 0, 0], [[0, 2], [[0, 0, 2, 0], [1, 1, 3, 0]], 0, 0], [[0, 2], [[0, 0, 3, 0], [1, 0, 3, 0]], 0, 0], [[0, 3], [[0, 1, 4, 0], [0, 0, 3, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 4, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 4, 0]], 0, 0], [[1, 4], [[0, 0, 3, 0], [1, 0, 3, 0]], 0, 0], [[0, 3], [[0, 1, 5, 0], [0, 0, 3, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0], [1, 0, 3, 0]], 0, 0], [[0, 3], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[1, 5], [[0, 0, 3, 0], [1, 1, 5, 0]], 0, 0], [[0, 3], [[0, 0, 5, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 1, 6, 0], [0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 6, 0]], 0, 0], [[1, 6], [[0, 0, 5, 0], [1, 1, 6, 0]], 0, 0], [[1, 6], [[0, 0, 5, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 1, 7, 0], [0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 7, 0]], 0, 0], [[1, 7], [[0, 0, 5, 0], [1, 1, 7, 0]], 0, 0], [[1, 7], [[0, 0, 5, 0], [1, 1, 7, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 7, 0]], 0, 0], [[1, 7], [[0, 0, 5, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 1, 8, 0], [0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 8, 0]], 0, 0], [[1, 8], [[0, 0, 5, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 1, 9, 0], [0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 9, 0]], 0, 0], [[1, 9], [[0, 0, 5, 0], [1, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 1, 10, 0], [0, 0, 5, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[1, 10], [[0, 0, 5, 0], [1, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[1, 10], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 5, 0], [1, 1, 10, 0]], 0, 0], [[0, 5], [[0, 0, 10, 0], [1, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 1, 11, 0], [0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 1, 12, 0], [0, 0, 10, 0], [1, 2, 11, 0]], 0, 0], [[2, 11], [[0, 0, 10, 0], [1, 1, 12, 0], [2, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[1, 12], [[0, 0, 10, 0], [1, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[1, 12], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 1, 12, 0], [0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0], [1, 1, 12, 0]], 0, 0], [[1, 12], [[0, 0, 10, 0], [1, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0], [[0, 10], [[0, 0, 10, 0]], 0, 0]];""")
 
 #        response.mustcontain(
 #            """<div id="changed_total_5e204e7583b9c8e7b93a020bd036564b1e731dae" """