diff options
author | Johan Herland <johan@herland.net> | 2010-11-15 18:39:50 +0100 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2010-11-16 08:18:36 +0100 |
commit | 9a8d39c668b98464bac97d4e5442966de63f97b2 (patch) | |
tree | ee1a7766d6d9365ae45f694939c20cab811abd84 /cgit.c | |
parent | ui-log: Change display of full commit messages (and notes) (diff) | |
download | cgit-pink-9a8d39c668b98464bac97d4e5442966de63f97b2.tar.gz cgit-pink-9a8d39c668b98464bac97d4e5442966de63f97b2.zip |
ui-log: Implement support for commit graphs
Teach CGit to print an ASCII art commit graph to the left of the commit message, similar to 'git log --graph'. The graph adds extra lines (table rows) to the log when needed to add/remove/shuffle edges in the graph. When 'showmsg' is enabled, the graph is automatically padded to account for the extra lines added by the commit message/notes. This feature is controlled by a new config variable: "enable-commit-graph" (disabled by default), and individual repos can control it by setting "repo.enable-commit-graph". Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to '')
-rw-r--r-- | cgit.c | 6 | ||||
-rw-r--r-- | cgit.css | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/cgit.c b/cgit.c index 412fbf0..53ab68d 100644 --- a/cgit.c +++ b/cgit.c @@ -57,6 +57,8 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value) repo->defbranch = xstrdup(value); else if (!strcmp(name, "snapshots")) repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); + else if (!strcmp(name, "enable-commit-graph")) + repo->enable_commit_graph = ctx.cfg.enable_commit_graph * atoi(value); else if (!strcmp(name, "enable-log-filecount")) repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value); else if (!strcmp(name, "enable-log-linecount")) @@ -141,6 +143,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.enable_gitweb_owner = atoi(value); else if (!strcmp(name, "enable-index-links")) ctx.cfg.enable_index_links = atoi(value); + else if (!strcmp(name, "enable-commit-graph")) + ctx.cfg.enable_commit_graph = atoi(value); else if (!strcmp(name, "enable-log-filecount")) ctx.cfg.enable_log_filecount = atoi(value); else if (!strcmp(name, "enable-log-linecount")) @@ -540,6 +544,8 @@ void print_repo(FILE *f, struct cgit_repo *repo) fprintf(f, "repo.section=%s\n", repo->section); if (repo->clone_url) fprintf(f, "repo.clone-url=%s\n", repo->clone_url); + fprintf(f, "repo.enable-commit-graph=%d\n", + repo->enable_commit_graph); fprintf(f, "repo.enable-log-filecount=%d\n", repo->enable_log_filecount); fprintf(f, "repo.enable-log-linecount=%d\n", diff --git a/cgit.css b/cgit.css index 7a5f423..7600e84 100644 --- a/cgit.css +++ b/cgit.css @@ -153,6 +153,11 @@ table.list td { padding: 0.1em 0.5em 0.1em 0.5em; } +table.list td.commitgraph { + font-family: monospace; + white-space: pre; +} + table.list td.logsubject { font-family: monospace; font-weight: bold; @@ -731,4 +736,4 @@ table.ssdiff td.space { table.ssdiff td.space div { min-height: 3em; -} \ No newline at end of file +} |