Thread (4 messages) flat view 4 messages, 3 authors, 2016-06-15

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 07:44 PM, Junio C Hamano wrote:
Jeff King[off-list ref]  writes:
quoted
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.
I think that this paragraph is too judgemental. While case-insensitive 
filesystems may be a pain, they are not "strange" to their users, but 
rather natural, and don't require "working around".
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.
Even this updated text does not say _what_ happens when core.ignorecase 
is set on a case-insensitive filesystem. Once that's cleared up, then 
the corner case of core.ignorecase=true on case-sensitive fs can be tackled.

Maybe:
--- 8< ---
When set, case-insensitive comparisons will be used when internally 
comparing file names.

The default is false, but when a new repository is created by 
git-clone[1] or git-init[1], git will probe the filesystem and set it to 
`true` if the filesystem is case-insensitive.

On case-insensitive filesystems like FAT, NTFS and HSF+, names that 
differ only in capitalization, like "Makefile" and "makefile", refer to 
the same file. While such filesystems usually preserve the 
capitalization used during file creation, tools designed for such 
filesystems will often modify capitalization when saving files and when 
displaying filenames. Enabling core.ignorecase causes git to ignore 
case-only differences in file names.

Enabling core.ignorecase on a case insensitive filesystem does
not make sense, because filenames with different capitalization will 
still be treated as different by the filesystem.
--- >8 ---
[+cc Brandon Casey]

zByszek
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help