Thread (1 message) 1 message, 1 author, 2020-07-24

Re: BUG FOLLOWUP: Case insensitivity in worktrees

From: Junio C Hamano <hidden>
Date: 2020-07-24 19:36:09

Casey Meijer [off-list ref] writes:
Sorry I got mixed up,, that last message should have been
addressed to Junio.

My apologies. 

To put it very simply, I'm asking that git respect the separation
of concerns between itself and its storage engine (regardless of
whether that's pluggable, or just the current filesystem, which I
guess is technically pluggable, lol).
If "git" is told to store ref 'foo' pointing at object X and then
ref 'Foo' pointing at object Y by the end user, after claiming to
have done these two operations, if it is then asked about the value
of 'foo', it must say that 'foo' points at object X and not Y.  If a
ref backend is based on case insensitive filesystem, there are only
two options available.  (1) ignore case and violate the expectation
of end user. (2) come up with a way to "defeat" the limitation of
case insensitivity imposed by the filesystem (e.g. your ref backend
implementation _could_ URLencode/decode the ref before using it as a
filename on such a filesystem).  

Doing (2) would be transparent to the rest of Git (i.e. the rest of
Git does not have to care that each ref is stored in a file, whose
filename is encoded version of the refname) and gives us a good
separation of concerns between it and the storage backend.  Those
who ported Git to case insensitive filesystems didn't and chose (1).

As (1) violates end-user expectation, I would think it is fair to
declare it a bug.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help