- setenv("GIT_DIR", fmt("%s/%s", cgit_root, cgit_query_repo), 1);
- char *title = fmt("%s - %s", cgit_repo_name, cgit_repo_desc);
- int show_search = 0;
- if (cgit_query_page && !strcmp(cgit_query_page, "log"))
- show_search = 1;
- cgit_print_docstart(title, item);
- cgit_print_pageheader(title, show_search);
- if (!cgit_query_page) {
- cgit_print_summary();
- } else if (!strcmp(cgit_query_page, "log")) {
- cgit_print_log(cgit_query_head, cgit_query_ofs, 100, cgit_query_search);
- } else if (!strcmp(cgit_query_page, "tree")) {
- cgit_print_tree(cgit_query_sha1);
- } else if (!strcmp(cgit_query_page, "commit")) {
- cgit_print_commit(cgit_query_sha1);
- } else if (!strcmp(cgit_query_page, "view")) {
- cgit_print_view(cgit_query_sha1);
- } else if (!strcmp(cgit_query_page, "diff")) {
- cgit_print_diff(cgit_query_sha1, cgit_query_sha2);
+
+ if (get_sha1(ctx->qry.head, sha1)) {
+ tmp = xstrdup(ctx->qry.head);
+ ctx->qry.head = ctx->repo->defbranch;
+ cgit_print_http_headers(ctx);
+ cgit_print_docstart(ctx);
+ cgit_print_pageheader(ctx);
+ cgit_print_error(fmt("Invalid branch: %s", tmp));
+ cgit_print_docend();
+ return 1;