diff options
Diffstat (limited to '')
| -rw-r--r-- | source/cgit.c | 17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 14 insertions, 3 deletions
diff --git a/source/cgit.c b/source/cgit.c index 2ef4cf1..8a3d8c1 100644 --- a/source/cgit.c +++ b/source/cgit.c @@ -1098,9 +1098,20 @@ static void prepare_repo_env(int *nongit, int *err) setup_git_directory_gently(the_repository, nongit); *err = errno; // Notes come out of the object store, which a repository that failed - // to open has none of. - if (!*nongit) - load_display_notes(NULL); + // to open has none of, and git dies loading a notes ref that names + // no tree, so such a ref is passed over. + if (!*nongit) { + struct display_notes_opt opt; + char *ref = default_notes_ref(the_repository); + + // The notes are always set up, since the commit and log pages + // ask for them, only with no ref when the default names no tree. + init_display_notes(&opt); + opt.use_default_notes = cgit_notes_ref_usable(ref); + load_display_notes(&opt); + release_display_notes(&opt); + free(ref); + } } /* |
