graph API: use a new color when starting a brand new column
PATCH 1/1 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 <[email protected]>
--- graph.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-)
graph.c +11 -3
@@ -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);
Signature · 1 line
1.6.4.314.g5667f