diff options
Diffstat (limited to 'source/ui-snapshot.c')
| -rw-r--r-- | source/ui-snapshot.c | 7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 6 insertions, 1 deletion
diff --git a/source/ui-snapshot.c b/source/ui-snapshot.c index 32d40f8..6a059a0 100644 --- a/source/ui-snapshot.c +++ b/source/ui-snapshot.c @@ -311,7 +311,12 @@ const struct object_id *cgit_snapshot_get_sig(const char *ref, const struct cgit // dropped, so plain tar is refs/notes/signatures/tar. strbuf_addf(¬es_ref, "refs/notes/signatures/%s", f->suffix + 1); - init_notes(tree, notes_ref.buf, combine_notes_ignore, 0); + // A ref that names no tree is passed over, since git would die + // loading it, and a signature it cannot hold is just absent. + if (cgit_notes_ref_usable(notes_ref.buf)) + init_notes(tree, notes_ref.buf, combine_notes_ignore, 0); + else + init_notes(tree, notes_ref.buf, combine_notes_ignore, NOTES_INIT_EMPTY); strbuf_release(¬es_ref); } |
