From e15842af627de03845b9c949f1f1596d94e3be02 Mon Sep 17 00:00:00 2001 From: Stefan Naewe Date: Mon, 15 Feb 2010 09:57:50 +0100 Subject: display subject instead of sha1 as link title of parents Signed-off-by: Stefan Naewe Signed-off-by: Lars Hjemli --- ui-commit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ui-commit.c b/ui-commit.c index b5e3c01..4d4970f 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -15,7 +15,7 @@ void cgit_print_commit(char *hex) { struct commit *commit, *parent; - struct commitinfo *info; + struct commitinfo *info, *parent_info; struct commit_list *p; unsigned char sha1[20]; char *tmp; @@ -82,8 +82,10 @@ void cgit_print_commit(char *hex) } html("parent" ""); - cgit_commit_link(sha1_to_hex(p->item->object.sha1), NULL, NULL, - ctx.qry.head, sha1_to_hex(p->item->object.sha1), 0); + parent_info = cgit_parse_commit(parent); + tmp = sha1_to_hex(p->item->object.sha1); + cgit_commit_link(parent_info->subject, NULL, NULL, + ctx.qry.head, tmp, 0); html(" ("); cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex, sha1_to_hex(p->item->object.sha1), NULL, 0); -- cgit v1.2.3-59-g8ed1b From 581a0c2a5428917d42cbfb2b4673a2d2ebceb7d0 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Sat, 27 Feb 2010 13:12:55 +0100 Subject: Optionally generate verbose parent links The new option 'enable-subject-links' must be used to enable the verbose parent-links in commit view. Signed-off-by: Lars Hjemli --- cgit.c | 4 ++++ cgit.h | 2 ++ cgitrc.5.txt | 10 ++++++++++ shared.c | 1 + ui-commit.c | 12 +++++++----- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/cgit.c b/cgit.c index 9305d0a..6ccf4aa 100644 --- a/cgit.c +++ b/cgit.c @@ -62,6 +62,8 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value) repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value); else if (!strcmp(name, "enable-remote-branches")) repo->enable_remote_branches = atoi(value); + else if (!strcmp(name, "enable-subject-links")) + repo->enable_subject_links = atoi(value); else if (!strcmp(name, "max-stats")) repo->max_stats = cgit_find_stats_period(value, NULL); else if (!strcmp(name, "module-link")) @@ -141,6 +143,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.enable_log_linecount = atoi(value); else if (!strcmp(name, "enable-remote-branches")) ctx.cfg.enable_remote_branches = atoi(value); + else if (!strcmp(name, "enable-subject-links")) + ctx.cfg.enable_subject_links = atoi(value); else if (!strcmp(name, "enable-tree-linenumbers")) ctx.cfg.enable_tree_linenumbers = atoi(value); else if (!strcmp(name, "max-stats")) diff --git a/cgit.h b/cgit.h index cd4af72..9b1e3f8 100644 --- a/cgit.h +++ b/cgit.h @@ -73,6 +73,7 @@ struct cgit_repo { int enable_log_filecount; int enable_log_linecount; int enable_remote_branches; + int enable_subject_links; int max_stats; time_t mtime; struct cgit_filter *about_filter; @@ -181,6 +182,7 @@ struct cgit_config { int enable_log_filecount; int enable_log_linecount; int enable_remote_branches; + int enable_subject_links; int enable_tree_linenumbers; int local_time; int max_repo_count; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index d74d9e7..fcd4308 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -115,6 +115,12 @@ enable-remote-branches:: in the summary and refs views. Default value: "0". See also: "repo.enable-remote-branches". +enable-subject-links:: + Flag which, when set to "1", will make cgit use the subject of the + parent commit as link text when generating links to parent commits + in commit view. Default value: "0". See also: + "repo.enable-subject-links". + enable-tree-linenumbers:: Flag which, when set to "1", will make cgit generate linenumber links for plaintext blobs printed in the tree view. Default value: "1". @@ -321,6 +327,10 @@ repo.enable-remote-branches:: Flag which, when set to "1", will make cgit display remote branches in the summary and refs views. Default value: . +repo.enable-subject-links:: + A flag which can be used to override the global setting + `enable-subject-links'. Default value: none. + repo.max-stats:: Override the default maximum statistics period. Valid values are equal to the values specified for the global "max-stats" setting. Default diff --git a/shared.c b/shared.c index 5f46793..83ded44 100644 --- a/shared.c +++ b/shared.c @@ -60,6 +60,7 @@ struct cgit_repo *cgit_add_repo(const char *url) ret->enable_log_filecount = ctx.cfg.enable_log_filecount; ret->enable_log_linecount = ctx.cfg.enable_log_linecount; ret->enable_remote_branches = ctx.cfg.enable_remote_branches; + ret->enable_subject_links = ctx.cfg.enable_subject_links; ret->max_stats = ctx.cfg.max_stats; ret->module_link = ctx.cfg.module_link; ret->readme = NULL; diff --git a/ui-commit.c b/ui-commit.c index 4d4970f..41313b9 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -18,7 +18,7 @@ void cgit_print_commit(char *hex) struct commitinfo *info, *parent_info; struct commit_list *p; unsigned char sha1[20]; - char *tmp; + char *tmp, *tmp2; int parents = 0; if (!hex) @@ -82,10 +82,12 @@ void cgit_print_commit(char *hex) } html("parent" ""); - parent_info = cgit_parse_commit(parent); - tmp = sha1_to_hex(p->item->object.sha1); - cgit_commit_link(parent_info->subject, NULL, NULL, - ctx.qry.head, tmp, 0); + tmp = tmp2 = sha1_to_hex(p->item->object.sha1); + if (ctx.repo->enable_subject_links) { + parent_info = cgit_parse_commit(parent); + tmp2 = parent_info->subject; + } + cgit_commit_link(tmp2, NULL, NULL, ctx.qry.head, tmp, 0); html(" ("); cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex, sha1_to_hex(p->item->object.sha1), NULL, 0); -- cgit v1.2.3-59-g8ed1b