about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJohan Herland2010-11-15 18:39:51 +0100
committerLars Hjemli2010-11-16 08:18:37 +0100
commit268b34af23cdcac87aed3300bfe6154cbc65753e (patch)
treefccbebc21c004f5967947275ba5086589086ec36
parentui-log: Implement support for commit graphs (diff)
downloadcgit-268b34af23cdcac87aed3300bfe6154cbc65753e.tar.gz
cgit-268b34af23cdcac87aed3300bfe6154cbc65753e.zip
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 <span> tags that apply the desired color
using CSS.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cgit.css24
-rw-r--r--ui-log.c19
2 files changed, 43 insertions, 0 deletions
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 {
158 white-space: pre; 158 white-space: pre;
159} 159}
160 160
161table.list td.commitgraph .column1 {
162 color: #a00;
163}
164
165table.list td.commitgraph .column2 {
166 color: #0a0;
167}
168
169table.list td.commitgraph .column3 {
170 color: #aa0;
171}
172
173table.list td.commitgraph .column4 {
174 color: #00a;
175}
176
177table.list td.commitgraph .column5 {
178 color: #a0a;
179}
180
181table.list td.commitgraph .column6 {
182 color: #0aa;
183}
184
161table.list td.logsubject { 185table.list td.logsubject {
162 font-family: monospace; 186 font-family: monospace;
163 font-weight: bold; 187 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 @@
13 13
14int files, add_lines, rem_lines; 14int files, add_lines, rem_lines;
15 15
16/*
17 * The list of available column colors in the commit graph.
18 */
19static const char *column_colors_html[] = {
20 "<span class='column1'>",
21 "<span class='column2'>",
22 "<span class='column3'>",
23 "<span class='column4'>",
24 "<span class='column5'>",
25 "<span class='column6'>",
26 "</span>",
27};
28
29#define COLUMN_COLORS_HTML_MAX (ARRAY_SIZE(column_colors_html) - 1)
30
16void count_lines(char *line, int size) 31void count_lines(char *line, int size)
17{ 32{
18 if (size <= 0) 33 if (size <= 0)
@@ -273,7 +288,11 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
273 } 288 }
274 if (ctx.repo->enable_commit_graph) { 289 if (ctx.repo->enable_commit_graph) {
275 static const char *graph_arg = "--graph"; 290 static const char *graph_arg = "--graph";
291 static const char *color_arg = "--color";
276 vector_push(&vec, &graph_arg, 0); 292 vector_push(&vec, &graph_arg, 0);
293 vector_push(&vec, &color_arg, 0);
294 graph_set_column_colors(column_colors_html,
295 COLUMN_COLORS_HTML_MAX);
277 } 296 }
278 297
279 if (path) { 298 if (path) {