Merge branch 'jp/defbranch'

Šī revīzija ir iekļauta:
Lars Hjemli
2012-03-18 21:00:18 +00:00
revīzija 181b6e789b
4 mainīti faili ar 18 papildinājumiem un 4 dzēšanām

15
cgit.c
Parādīt failu

@@ -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) {

Parādīt failu

@@ -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.

Parādīt failu

@@ -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;

Parādīt failu

@@ -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;