diff options
author | Adam Simpkins <simpkins@facebook.com> | 2009-08-18 14:41:12 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-08-18 23:32:28 -0700 |
commit | 91e50b2c0a3bfa818454590fcc6a1ef70c3c58d0 (patch) | |
tree | ab38c51aa632cf5e143d902176fa069d04d4608a | |
parent | f3a87d922a0333a56b5a912440aa324883019d81 (diff) | |
download | git-91e50b2c0a3bfa818454590fcc6a1ef70c3c58d0.tar.gz |
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 <simpkins@facebook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | graph.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -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); |