Merge branch 'jp/defbranch'

Este commit está contenido en:
Lars Hjemli 2012-03-18 21:00:18 +00:00
commit 181b6e789b
Se han modificado 4 ficheros con 18 adiciones y 4 borrados

15
cgit.c
Ver fichero

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

Ver fichero

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

Ver fichero

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

Ver fichero

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