From 81a502f3f6579c6d69dab2485bdbc4fc35d9748c Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 27 Sep 2026 22:04:58 +0300 Subject: cgit: Fix defbranch not correctly parsing HEAD Tracing the code: - refs_resolve_ref_unsafe uses git's refs_read_raw_ref, - which uses refs_read_special_head (on certain occasions), - which uses parse_loose_ref_contents (git/refs/files-backend.c), - which has logic to skip the leading "ref: " inside HEAD --- cgit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cgit.c b/cgit.c index 2efbb2c..6ee5530 100644 --- a/cgit.c +++ b/cgit.c @@ -496,7 +496,7 @@ static char *guess_defbranch(void) ref = refs_resolve_ref_unsafe(get_main_ref_store(the_repository), "HEAD", 0, &oid, NULL); - if (!ref || !skip_prefix(ref, "ref: refs/heads/", &refname)) + if (!ref || (!skip_prefix(ref, "ref: refs/heads/", &refname) && !skip_prefix(ref, "refs/heads/", &refname))) return "master"; return xstrdup(refname); } -- cgit v1.3.1-23-gd82d