git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: [cygwin] Re: Lack of case-sensitive filename handling with git 1.7.9-1 for Cygwin 64-bit

From
Jason Pyeron <jpyeron@pdinc.us>
Date
Aug 16, 2013, 11:54 UTC
Message-ID
<4D206B626EE941D28F6CB93E38293863@black>
In-Reply-To
<20130816081743.GC2562@calimero.vinschen.de>
I just saw this on the cygwin list.
Show 84 quoted lines
> -----Original Message-----
> From: Corinna Vinschen
> Sent: Friday, August 16, 2013 4:18
> To: cygwin@cygwin.com
> Subject: [cygwin] Re: Lack of case-sensitive filename 
> handling with git 1.7.9-1 for Cygwin 64-bit
> 
> On Aug 16 10:32, Kal Sze wrote:
> > I have been using Cygwin 32-bit on Windows 7 Profession 
> 64-bit. I had 
> > the HKLM\SYSTEM\CurrentControlSet\Control\Session
> > Manager\kernel\ObCaseInsensitive registry key set to DWORD 
> 0x00000000 
> > and case-sensitive filename handling has been fully working 
> in Cygwin 
> > 32-bit (as far as I can tell from my usage anyway).
> > 
> > Now that Cygwin 64-bit has been released, I want to try it. 
> I notice 
> > that git in Cygwin 64-bit does not seem to correctly handle 
> filesname 
> > that differ only by case.
> > 
> > To reproduce, create a repository in Cygwin 32-bit *with the 
> > aforementioned registry key set*:
> > 
> >     $ git init case_sensitivity_test; cd case_sensitivity_test
> > 
> > Create two files of different content with similar filenames that 
> > differ only by case:
> > 
> >     $ echo 'FOO' > FOO.TXT; echo 'foo' > foo.txt
> > 
> > Commit them into the repository:
> > 
> >     $ git add .; git commit -m 'Initial commit'
> >     [master (root-commit) 16d1b59] Initial commit
> >      2 files changed, 2 insertions(+), 0 deletions(-)
> >      create mode 100644 FOO.TXT
> >      create mode 100644 foo.txt
> > 
> > In Cygwin 32-bit, this looks all green:
> > 
> >     $ git status
> >     # On branch master
> >     nothing to commit (working directory clean)
> >     $ ls
> >     FOO.TXT  foo.txt
> > 
> > Now, fire up the Cygwin64 terminal and browse to the 
> repository, then:
> > 
> >     $ ls
> >     FOO.TXT  foo.txt
> >     $ cat FOO.TXT
> >     FOO
> >     $ cat foo.txt
> >     foo
> > 
> > So `ls` and `cat` both recognize the two different files. However:
> > 
> >     $ git status
> >     # On branch master
> >     # Changes not staged for commit:
> >     #   (use "git add <file>..." to update what will be committed)
> >     #   (use "git checkout -- <file>..." to discard changes 
> in working
> > directory)
> >     #
> >     #       modified:   foo.txt
> >     #
> >     no changes added to commit (use "git add" and/or "git 
> commit -a")
> > 
> > "Oops."
> 
> The interesting thing here is, if you try this the other way 
> around, you'll see the exact same effect.  If you created the 
> above git repo with 64 bit git, everything works exactly as 
> in the 32 bit version and the two files are correctly recognized.
> 
> I assume the format of the git database files depends on the 
> architecture.  Therefore it's probably not advisable to use a 
> git repo created under 32 bit git with a 64 bit git and vice versa.
Is this the best explanation for this?
Show 10 quoted lines
> 
> 
> Corinna
> 
> -- 
> Corinna Vinschen                  Please, send mails 
> regarding Cygwin to
> Cygwin Maintainer                 cygwin AT cygwin DOT com
> Red Hat
> 
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Jason Pyeron                      PD Inc. http://www.pdinc.us -
- Principal Consultant              10 West 24th Street #100    -
- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.
 
Next: Jeff King
Message 1 of 2 in “RE: [cygwin] Re: Lack of case-sensitive filename handling with git 1.7.9-1 for Cygwin 64-bit”
  1. Jason PyeronAug 16, 2013
  2. Jeff KingAug 16, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.