diff options
| Commit | 81a502f3f6579c6d69dab2485bdbc4fc35d9748c (patch) | |
|---|---|---|
| Author | 2026-09-27 22:04:58 +0300 | |
| Committer | 2026-09-27 22:14:20 +0300 | |
| Files | e974026fb7909ed3f742df0a6ed330279185e703 /cgit.c | |
| cgit-81a502f3f6579c6d69dab2485bdbc4fc35d9748c.tar cgit-81a502f3f6579c6d69dab2485bdbc4fc35d9748c.tar.gz cgit-81a502f3f6579c6d69dab2485bdbc4fc35d9748c.zip | ||
| Parent | 156e859aad4c98a169ce4c49e839cae41a28f432 (diff) | |
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
1 files changed, 1 insertions, 1 deletions
| -rw-r--r-- | cgit.c | 2 |
@@ -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); } |
