From 41934a3222cd3e5a5f214e4275929519c70d311d Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Sat, 7 Nov 2009 19:10:58 +0100 Subject: [PATCH] Add support for remote branches Signed-off-by: Lars Hjemli --- cgit.c | 4 ++++ cgit.h | 2 ++ cgitrc.5.txt | 9 +++++++++ shared.c | 1 + ui-refs.c | 2 ++ 5 files changed, 18 insertions(+) diff --git a/cgit.c b/cgit.c index a17f40d..29813cd 100644 --- a/cgit.c +++ b/cgit.c @@ -60,6 +60,8 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value) repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value); else if (!strcmp(name, "enable-log-linecount")) 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, "max-stats")) repo->max_stats = cgit_find_stats_period(value, NULL); else if (!strcmp(name, "module-link")) @@ -137,6 +139,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.enable_log_filecount = atoi(value); else if (!strcmp(name, "enable-log-linecount")) 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-tree-linenumbers")) ctx.cfg.enable_tree_linenumbers = atoi(value); else if (!strcmp(name, "max-stats")) diff --git a/cgit.h b/cgit.h index 6c6c460..1de2335 100644 --- a/cgit.h +++ b/cgit.h @@ -72,6 +72,7 @@ struct cgit_repo { int snapshots; int enable_log_filecount; int enable_log_linecount; + int enable_remote_branches; int max_stats; time_t mtime; struct cgit_filter *about_filter; @@ -178,6 +179,7 @@ struct cgit_config { int enable_index_links; int enable_log_filecount; int enable_log_linecount; + int enable_remote_branches; int enable_tree_linenumbers; int local_time; int max_repo_count; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 0c13485..0bb429a 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -110,6 +110,11 @@ enable-log-linecount:: and removed lines for each commit on the repository log page. Default value: "0". +enable-remote-branches:: + Flag which, when set to "1", will make cgit display remote branches + in the summary and refs views. Default value: "0". See also: + "repo.enable-remote-branches". + 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". @@ -304,6 +309,10 @@ repo.enable-log-linecount:: A flag which can be used to disable the global setting `enable-log-linecount'. Default value: none. +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.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 9362d21..5f46793 100644 --- a/shared.c +++ b/shared.c @@ -59,6 +59,7 @@ struct cgit_repo *cgit_add_repo(const char *url) ret->snapshots = ctx.cfg.snapshots; 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->max_stats = ctx.cfg.max_stats; ret->module_link = ctx.cfg.module_link; ret->readme = NULL; diff --git a/ui-refs.c b/ui-refs.c index d3b4f6e..b3489ee 100644 --- a/ui-refs.c +++ b/ui-refs.c @@ -187,6 +187,8 @@ void cgit_print_branches(int maxcount) list.refs = NULL; list.alloc = list.count = 0; for_each_branch_ref(cgit_refs_cb, &list); + if (ctx.repo->enable_remote_branches) + for_each_remote_ref(cgit_refs_cb, &list); if (maxcount == 0 || maxcount > list.count) maxcount = list.count;