Re: [PATCH] Demonstrate failure of 'core.ignorecase = true'
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:21
Jeff King [off-list ref] writes:
On Thu, Mar 22, 2012 at 09:57:23AM -0700, Junio C Hamano wrote:quoted
Hrm, replacing unclear part with clarified text may make sense, but it would not help adding new text if the existing description is not clear enough. How about doing it like this? Case-insensitive filesystems like FAT and HFS+ have various strange behaviours, like reporting that a file "Makefile" already exists when the file that actually exists on them is "makefile". By setting this variable to `true`, Git employs logic to work around them. The default is false, except that git-clone[1] and git-init[1] will probe the filesystem and set it to `true` as necessary when a new repository is created.IMHO, it suffers from the same problem as the original, which is that it does tells when to use core.ignorecase, but does not specify what
I wanted it to tell *what* happens when core.ignorecase is set. In other words, I wanted the description to say that the logic employed is to work around what case-insensitive filesystems do. Case sensitive filesystems obviously do not do what case-insensitive ones do (like reporting a "Makefile" exists when only "makefile" exists), so I hoped that it was clear enough that the additional logic would not be suitable there.
happens when one sets core.ignorecase to true on a case-sensitive filesystem. Maybe we should be more explicit about what _does_ happen in that case (to be honest, I am not completely sure). Or just say that it is not a supported use case.
I guess we really need to make the description foolproof then.
... exists on them is "makefile". By setting this
variable to `true`, Git employs logic to work around them.
Setting this to `true` on a case insensitive filesystem does
not make any sense, because it would not magically make your
system to treat your filesystem case insensitively.