On Tue, May 14, 2019 at 8:54 PM Jeff King <peff@xxxxxxxx> wrote: > diff --git a/sha1-name.c b/sha1-name.c > index 775a73d8ad..455e9fb1ea 100644 > --- a/sha1-name.c > +++ b/sha1-name.c > @@ -1837,7 +1837,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, > if (flags & GET_OID_RECORD_PATH) > oc->path = xstrdup(cp); > > - if (!repo->index->cache) > + if (!repo->index || !repo->index->cache) > repo_read_index(repo); We could even drop the "if" and call repo_read_index() unconditionally. If the index is already read, it will be no-op (forcing a reread has always been discard_index(); read_index();) Thanks for catching this by the way. I'll need to go through all the_index conversion to see if I left similar traps like this. -- Duy