From: Adam Simpkins Date: Tue, 18 Aug 2009 21:41:12 +0000 (-0700) Subject: graph API: use a new color when starting a brand new column X-Git-Tag: v1.6.5-rc0~59 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=91e50b2c0a3bfa818454590fcc6a1ef70c3c58d0;p=git.git graph API: use a new color when starting a brand new column Use a new color for commits that don't have any previously printed children. The following command demonstrates the changes: git log --graph --pretty=tformat:'%h %s%n' -7 481c7a6 18b0793 Now the two independent lines of development are displayed with different colors, instead of both using the same color. Signed-off-by: Adam Simpkins Signed-off-by: Junio C Hamano --- diff --git a/graph.c b/graph.c index e46677020..f3226ec94 100644 --- a/graph.c +++ b/graph.c @@ -225,7 +225,12 @@ struct git_graph *graph_init(struct rev_info *opt) graph->num_columns = 0; graph->num_new_columns = 0; graph->mapping_size = 0; - graph->default_column_color = 0; + /* + * Start the column color at the maximum value, since we'll + * always increment it for the first commit we output. + * This way we start at 0 for the first commit. + */ + graph->default_column_color = COLUMN_COLORS_MAX - 1; /* * Allocate a reasonably large default number of columns @@ -499,11 +504,14 @@ static void graph_update_columns(struct git_graph *graph) parent; parent = next_interesting_parent(graph, parent)) { /* - * If this is a merge increment the current + * If this is a merge, or the start of a new + * childless column, increment the current * color. */ - if (graph->num_parents > 1) + if (graph->num_parents > 1 || + !is_commit_in_columns) { graph_increment_column_color(graph); + } graph_insert_into_new_columns(graph, parent->item, &mapping_idx);