From 268b34af23cdcac87aed3300bfe6154cbc65753e Mon Sep 17 00:00:00 2001 From: Johan Herland Date: Mon, 15 Nov 2010 18:39:51 +0100 Subject: ui-log: Colorize commit graph Use the existing coloring logic in Git's graph code to color the lines between commits in the commit graph. Whereas Git normally uses ANSI color escapes to produce colors, we here use graph_set_column_colors() to replace those with HTML color escapes, that embed the graph lines in tags that apply the desired color using CSS. Signed-off-by: Johan Herland Signed-off-by: Lars Hjemli --- cgit.css | 24 ++++++++++++++++++++++++ ui-log.c | 19 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/cgit.css b/cgit.css index 7600e84..1ebef55 100644 --- a/cgit.css +++ b/cgit.css @@ -158,6 +158,30 @@ table.list td.commitgraph { white-space: pre; } +table.list td.commitgraph .column1 { + color: #a00; +} + +table.list td.commitgraph .column2 { + color: #0a0; +} + +table.list td.commitgraph .column3 { + color: #aa0; +} + +table.list td.commitgraph .column4 { + color: #00a; +} + +table.list td.commitgraph .column5 { + color: #a0a; +} + +table.list td.commitgraph .column6 { + color: #0aa; +} + table.list td.logsubject { font-family: monospace; font-weight: bold; diff --git a/ui-log.c b/ui-log.c index 0d86fd5..5cf66cb 100644 --- a/ui-log.c +++ b/ui-log.c @@ -13,6 +13,21 @@ int files, add_lines, rem_lines; +/* + * The list of available column colors in the commit graph. + */ +static const char *column_colors_html[] = { + "", + "", + "", + "", + "", + "", + "", +}; + +#define COLUMN_COLORS_HTML_MAX (ARRAY_SIZE(column_colors_html) - 1) + void count_lines(char *line, int size) { if (size <= 0) @@ -273,7 +288,11 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern } if (ctx.repo->enable_commit_graph) { static const char *graph_arg = "--graph"; + static const char *color_arg = "--color"; vector_push(&vec, &graph_arg, 0); + vector_push(&vec, &color_arg, 0); + graph_set_column_colors(column_colors_html, + COLUMN_COLORS_HTML_MAX); } if (path) { -- cgit