This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpb3TTRsHEIq.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]