Subject: Re: Case rename not detected

From: Torsten Bögershausen <[email-masked]>
Date: Wed, 06 May 2015 22:00:43 +0200

On 2015-05-05 08.27, Orgad Shaneh wrote:
> Thanks for the fast response!
> 
> On Tue, May 5, 2015 at 9:17 AM, Junio C Hamano <[email-masked]> wrote:
>> Orgad Shaneh <[email-masked]> writes:
>>
>>> File case rename is not detected correctly on case-insensitive
>>> filesystems. git mv does support it though.
>>
>> It is a very much deliberate design decision to keep the case
>> recorded in the index on case insensitive filesystems, where people
>> can screw up the case of files they obtained from the project
>> without even meaning to do so, as these filesystems and tools on
>> them can carelessly change cases---after all, the case doesn't
>> matter to these tools, but the people who interact with your work
>> result via Git do---so we trust what Git initially gave you
>> (e.g. via "checkout") more than the filesystem.
> 
> Can you name tools that change file case without notifying the user?
> I'm not aware of any.
> 
>>
>> To effect the same as "git mv" at the end-user level, you would need
>> to remove the entry from the index and re-add it.  I.e.
>>
>>> git init
>>> echo hello > foo
>>> git add foo
>>> git commit -m initial
>>> mv foo Foo
>>> git status # No changes
You can use 
git -c core.ignorecase=false status

It will report Foo as untracked

foo is not reported as missing, because the underlying OS
says "foo" is there when Git does a stat("Foo")