threads / bug / 46603

Bug with ignorecase on Git and Cygwin

Subject: Bug with ignorecase on Git and Cygwin

## tl;dr

2 messages between Aug 16, 2017 and Aug 16, 2017.

replies: 1people: 2as markdown or json

CHEVALLIER Yves· Aug 16, 2017, 11:50 UTC · lore
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· Aug 16, 2017, 12:55 UTC · re: CHEVALLIER Yves · lore

Re: Bug with ignorecase on Git and Cygwin

On Wed, Aug 16, 2017 at 11:50:47AM +0000, CHEVALLIER Yves wrote:
Show 10 quoted lines
> 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
[]

← back to recent threads