# Bug with ignorecase on Git and Cygwin

2 messages from 2017-08-16 to 2017-08-16. Participants: CHEVALLIER Yves, Torsten Bögershausen.
Thread: https://gitlist.dev/t/46603

## CHEVALLIER Yves, 2017-08-16 11:50

Subject: Bug with ignorecase on Git and Cygwin
Message-ID: <078108E7D0BA58498F61BC8C1ED2D10933E86F@srvne111.csem.local>
URL: https://gitlist.dev/e/078108E7D0BA58498F61BC8C1ED2D10933E86F%40srvne111.csem.local

```
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

```

## Torsten Bögershausen, 2017-08-16 12:55

Subject: Re: Bug with ignorecase on Git and Cygwin
Message-ID: <20170816125510.GA26384@tor.lan>
URL: https://gitlist.dev/e/20170816125510.GA26384%40tor.lan
In-Reply-To: <078108E7D0BA58498F61BC8C1ED2D10933E86F@srvne111.csem.local>

```
On Wed, Aug 16, 2017 at 11:50:47AM +0000, 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
[]

```
