Hi, On 09:13 Thu 17 Oct, John Keeping wrote: > It took me a minute to spot the problem when I tested this, but you're > right that there is a bug and I agree that the patch below is the right > fix. > > Perhaps a better commit message will help others looking at this, maybe > something like this? Updated the patch. Attaching it here. -- Best Regards Hemmo Nieminen
>From 46b7ae56e08bc8ca9c29697da2c1210bd2a242b0 Mon Sep 17 00:00:00 2001 From: Hemmo Nieminen <hemmo.nieminen@xxxxxx> Date: Wed, 16 Oct 2013 11:28:50 +0300 Subject: [PATCH v2] graph: fix coloring around octopus merges 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@xxxxxx> --- Notes: Commit 211232b (Octopus merge of the following five patches., 2005-05-05) in git.git's history exhibits this problem. graph.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/graph.c b/graph.c index b24d04c..6404331 100644 --- 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; } -- 1.8.4.1