Re: Bug with ignorecase on Git and Cygwin

2017-08-16 Thread Torsten Bögershausen
On Wed, Aug 16, 2017 at 11:50:47AM +, CHEVALLIER Yves wrote:
> Hi, 
> 
> On Cygwin, the config value `ignorecase` is set to `true` during `git init` 
> and it is not possible to change the default value using templates. 
> 
> The issue was discovered while I was tracking a bunch of source files of a 
> SDK. To track the changes I simply rm all the working directory, unzip the 
> new SDK, then git add . and git commit -am "new sdk". In this process an 
> issue with an assembly file with preprocessing was incorrectly named .s 
> instead of .S. In the next version the correction was made, but Git was 
> unable to detect it. 
> 
> That said I've tried to manually change ignorecase from true to false and I 
> still have the issue. Git on Cygwin cannot detect files renamed with a case 
> change. 
> 
> Is it a bug?
> 

The thing is that the underlying file system (under cygwin, Windows in general, 
or MacOs)  treats a.s the same as a.S
So Git can not do better than the file system.
What you can do:

git mv a.S a.s
git commit

(This can be done by a script)

> # It works on Ubuntu
[]


Bug with ignorecase on Git and Cygwin

2017-08-16 Thread CHEVALLIER Yves
Hi, 

On Cygwin, the config value `ignorecase` is set to `true` during `git init` and 
it is not possible to change the default value using templates. 

The issue was discovered while I was tracking a bunch of source files of a SDK. 
To track the changes I simply rm all the working directory, unzip the new SDK, 
then git add . and git commit -am "new sdk". In this process an issue with an 
assembly file with preprocessing was incorrectly named .s instead of .S. In the 
next version the correction was made, but Git was unable to detect it. 

That said I've tried to manually change ignorecase from true to false and I 
still have the issue. Git on Cygwin cannot detect files renamed with a case 
change. 

Is it a bug?

# It works on Ubuntu

$ git --version
git version 1.8.3.1
$ # To be sure 
$ git config --global init.templateDir /usr/share/git-core/templates
$ cat /usr/share/git-core/templates
# Patched config 
[core] 
dummyvar = true 
ignorecase = false

$ git init dummy 
$ cat dummy/.git/config
# Patched config
[core]
ignorecase = false
dummyvar = true
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true

# It doesn't work on Cygwin:

$ git --version
git version 2.13.2
$ which git
/usr/bin/git
$ # To be sure 
$ git config --global init.templateDir /usr/share/git-core/templates
$ cat /usr/share/git-core/templates
# Patched config 
[core] 
dummyvar = true 
ignorecase = false  
$ git init dummy 
$ cat dummy/.git/config
# Patched config
[core]
ignorecase = true
dummyvar = false
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true