Jeff King <peff@xxxxxxxx> writes: > So this patch fixes the problem: > > diff --git a/refs.c b/refs.c > index df075fcd06..2ba74720c8 100644 > --- a/refs.c > +++ b/refs.c > @@ -1435,7 +1435,8 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs, > if (refs_read_raw_ref(refs, refname, > sha1, &sb_refname, &read_flags)) { > *flags |= read_flags; > - if (errno != ENOENT || (resolve_flags & RESOLVE_REF_READING)) > + if ((errno != ENOENT && errno != EISDIR) || > + (resolve_flags & RESOLVE_REF_READING)) Ooo, good find--is_missing_file_error() strikes back... > return NULL; > hashclr(sha1); > if (*flags & REF_BAD_NAME) > > but seems to stimulate a test failure in t3308. I have a suspicion that > I've just uncovered another bug, but I'll dig in that. In the meantime I > wanted to post this update in case anybody else was looking into it. > > -Peff