Diffstat (limited to 'cgit.c')
| -rw-r--r-- | cgit.c | 62 |
1 files changed, 4 insertions, 58 deletions
@@ -45,44 +45,13 @@ static int cgit_prepare_cache(struct cacheitem *item) return 1; } -struct refmatch { - char *req_ref; - char *first_ref; - int match; -}; - -int find_current_ref(const char *refname, const unsigned char *sha1, - int flags, void *cb_data) -{ - struct refmatch *info; - - info = (struct refmatch *)cb_data; - if (!strcmp(refname, info->req_ref)) - info->match = 1; - if (!info->first_ref) - info->first_ref = xstrdup(refname); - return info->match; -} - -char *find_default_branch(struct repoinfo *repo) -{ - struct refmatch info; - - info.req_ref = repo->defbranch; - info.first_ref = NULL; - info.match = 0; - for_each_branch_ref(find_current_ref, &info); - if (info.match) - return info.req_ref; - else - return info.first_ref; -} - static void cgit_print_repo_page(struct cacheitem *item) { - char *title, *tmp; + char *title; int show_search; - unsigned char sha1[20]; + + if (!cgit_query_head) + cgit_query_head = cgit_repo->defbranch; if (chdir(cgit_repo->path)) { title = fmt("%s - %s", cgit_root_title, "Bad request"); @@ -98,29 +67,6 @@ static void cgit_print_repo_page(struct cacheitem *item) show_search = 0; setenv("GIT_DIR", cgit_repo->path, 1); - if (!cgit_query_head) { - cgit_query_head = xstrdup(find_default_branch(cgit_repo)); - cgit_repo->defbranch = cgit_query_head; - } - - if (!cgit_query_head) { - cgit_print_docstart(title, item); - cgit_print_pageheader(title, 0); - cgit_print_error("Repository seems to be empty"); - cgit_print_docend(); - return; - } - - if (get_sha1(cgit_query_head, sha1)) { - tmp = xstrdup(cgit_query_head); - cgit_query_head = cgit_repo->defbranch; - cgit_print_docstart(title, item); - cgit_print_pageheader(title, 0); - cgit_print_error(fmt("Invalid branch: %s", tmp)); - cgit_print_docend(); - return; - } - if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) { cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1, cgit_repobasename(cgit_repo->url), |