graph: fix coloring around octopus merges
authorHemmo Nieminen <hemmo.nieminen@iki.fi>
Wed, 16 Oct 2013 08:28:50 +0000 (11:28 +0300)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Oct 2013 19:48:48 +0000 (12:48 -0700)
When drawing the graph of an octopus merge, we draw a horizontal line
from parents 3 and above into the asterisk representing the commit. The
sections of this line should be colored to match the graph lines coming
in from above.

However, if the commit is not in the left-most column we do not take
into account the columns to the left of the commit when calculating
these colors. Fix this by adding the appropriate offset to the column
index used for calculating the color.

Signed-off-by: Hemmo Nieminen <hemmo.nieminen@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
graph.c
diff --git a/graph.c b/graph.c
index b24d04c4066dd4d09200bb27d09c91d93c1bb5b0..640433166b39c515746d698566839326d9ce7bbe 100644 (file)
--- a/graph.c
+++ b/graph.c
@@ -801,10 +801,10 @@ static int graph_draw_octopus_merge(struct git_graph *graph,
        int num_dashes =
                ((graph->num_parents - dashless_commits) * 2) - 1;
        for (i = 0; i < num_dashes; i++) {
-               col_num = (i / 2) + dashless_commits;
+               col_num = (i / 2) + dashless_commits + graph->commit_index;
                strbuf_write_column(sb, &graph->new_columns[col_num], '-');
        }
-       col_num = (i / 2) + dashless_commits;
+       col_num = (i / 2) + dashless_commits + graph->commit_index;
        strbuf_write_column(sb, &graph->new_columns[col_num], '.');
        return num_dashes + 1;
 }