Re: [PATCH] Demonstrate failure of 'core.ignorecase = true'
From: Zbigniew Jędrzejewski-Szmek <hidden>
Date: 2016-06-15 22:53:22
On 03/22/2012 09:37 PM, Junio C Hamano wrote:
Zbigniew Jędrzejewski-Szmek[off-list ref] writes:quoted
Even this updated text does not say _what_ happens when core.ignorecase is set on a case-insensitive filesystem.That was very much on purpose. We tell users not to do that, because it is calling for an undefined behaviour. And leaving it undefined gives us a wiggle room to later do something better if we choose to.quoted
Maybe:--- 8< ---When set, case-insensitive comparisons will be used when internally comparing file names.When we try to create a new file with open("./Makefile", O_CREAT) system call, we do not opendir(".") and readdir() to see if "makefile" exists ourselves at all, but the above makes it sound as if we would do such things to make sure we compare filenames ignoring there case.
Hence "internally" -- in the sense that filesystem calls are executed by the OS, so they can be said to be external to git. Maybe this could be worded differently.
That is *not* what happens, and that is not what we want to say in the documentation.
Yeah, but we should say *something*, to let the reader understand the behaviour. For example, the reader should understand, that "work arounds" implemented by git do not include the normalization of filenames, and if files are added with bad capitalization, they will stay that way on case sensitive filesystems. - Zbyszek