On Thu, Aug 21, 2025 at 09:05:30AM -0700, Junio C Hamano wrote: > Patrick Steinhardt <ps@xxxxxx> writes: > > > You're on a case-insensitive filesystem, and the remote you are > > trying to fetch from has references that only differ in casing. It > > is impossible to store such references with the "files" backend. You > > "backend." -> "backend on your system." > > > can either accept this as-is, in which case you won't be able to > > store all remote references on disk. Or you can alternatively > > I do not see the former as a viable choice, though. When this > happens, the clone or fetch fails and the user cannot catch up to > the upstream development, no? You have to futz with the fetch > refspec to cause refs your filesystem cannot store ignored in order > to make progress on other refs, but that is making the user do more > than accepting this as-is. Oh, yes, right now it's too involved. What I'm proposing is to mark the transaction as allowed-to-fail, and in that case we'd be able to fetch and store refs in this case again. The result would still be broken, but it would be broken in a similar way as before. There's one difference though: we'd accept the _first_ conflicting ref now, whereas before we accepted the _last_ conflicting ref. In any case, I very much feel like we should know to warn about this case and guide readers towards a proper solution. Patrick