Merge branch 'jp/defbranch'

此提交包含在:
Lars Hjemli
2012-03-18 21:00:18 +00:00
當前提交 181b6e789b
共有 4 個檔案被更改,包括 18 行新增4 行删除

15
cgit.c
查看文件

@ -421,6 +421,17 @@ char *find_default_branch(struct cgit_repo *repo)
return ref; return ref;
} }
static char *guess_defbranch(const char *repo_path)
{
const char *ref;
unsigned char sha1[20];
ref = resolve_ref("HEAD", sha1, 0, NULL);
if (!ref || prefixcmp(ref, "refs/heads/"))
return "master";
return xstrdup(ref + 11);
}
static int prepare_repo_cmd(struct cgit_context *ctx) static int prepare_repo_cmd(struct cgit_context *ctx)
{ {
char *tmp; char *tmp;
@ -447,10 +458,12 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
} }
ctx->page.title = fmt("%s - %s", ctx->repo->name, ctx->repo->desc); ctx->page.title = fmt("%s - %s", ctx->repo->name, ctx->repo->desc);
if (!ctx->repo->defbranch)
ctx->repo->defbranch = guess_defbranch(ctx->repo->path);
if (!ctx->qry.head) { if (!ctx->qry.head) {
ctx->qry.nohead = 1; ctx->qry.nohead = 1;
ctx->qry.head = find_default_branch(ctx->repo); ctx->qry.head = find_default_branch(ctx->repo);
ctx->repo->defbranch = ctx->qry.head;
} }
if (!ctx->qry.head) { if (!ctx->qry.head) {

查看文件

@ -377,7 +377,8 @@ repo.commit-filter::
repo.defbranch:: repo.defbranch::
The name of the default branch for this repository. If no such branch The name of the default branch for this repository. If no such branch
exists in the repository, the first branch name (when sorted) is used exists in the repository, the first branch name (when sorted) is used
as default instead. Default value: "master". as default instead. Default value: branch pointed to by HEAD, or
"master" if there is no suitable HEAD.
repo.desc:: repo.desc::
The value to show as repository description. Default value: none. The value to show as repository description. Default value: none.

查看文件

@ -55,7 +55,6 @@ struct cgit_repo *cgit_add_repo(const char *url)
ret->desc = "[no description]"; ret->desc = "[no description]";
ret->owner = NULL; ret->owner = NULL;
ret->section = ctx.cfg.section; ret->section = ctx.cfg.section;
ret->defbranch = "master";
ret->snapshots = ctx.cfg.snapshots; ret->snapshots = ctx.cfg.snapshots;
ret->enable_commit_graph = ctx.cfg.enable_commit_graph; ret->enable_commit_graph = ctx.cfg.enable_commit_graph;
ret->enable_log_filecount = ctx.cfg.enable_log_filecount; ret->enable_log_filecount = ctx.cfg.enable_log_filecount;

查看文件

@ -45,7 +45,8 @@ static int get_repo_modtime(const struct cgit_repo *repo, time_t *mtime)
return 1; return 1;
} }
path = fmt("%s/refs/heads/%s", repo->path, repo->defbranch); path = fmt("%s/refs/heads/%s", repo->path, repo->defbranch ?
repo->defbranch : "master");
if (stat(path, &s) == 0) { if (stat(path, &s) == 0) {
*mtime = s.st_mtime; *mtime = s.st_mtime;
r->mtime = *mtime; r->mtime = *mtime;