Jeff King <peff@xxxxxxxx> writes: > On Wed, Jul 26, 2017 at 05:49:47PM -0700, Junio C Hamano wrote: > >> What I saw was that a test have ended up with .git/%46%4F%4F when it >> was told to create a ref "FOO" (which indicates that "FOO" was >> passed to the files backend), which later failed to read it back >> because the pseudo_ref handling refs.c wanted to see ".git/FOO" on >> the reading side. >> >> Perhaps it is only a bug in t/t1405-main-ref-store.sh? > > An interesting related issue for pseudo-refs: if you encode HEAD as > .git/%48%45%41%44, how will we recognize that directory as a git > repository? Yes, that is a valid point. I may have forgot to explain why the sample change in my message upthread special cases "HEAD" and leaves it untouched, but it is done for this exact reason. > 1. It should say "this is a git repo, but not a vintage I understand". > Not "this isn't a git repo, I'll keep looking". > > 2. How does a git version of the correct vintage decide "this is a git > repo, so I'll check its config for extensions.refBackend, and a-ha, > they _do_ have a HEAD". There's a chicken-and-egg problem. Yes, exactly.