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."
Attached is the (censored) cygcheck output in Cygwin 64-bit.
Best Regards,
Kal
cygcheck.out
Description: Binary data
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple

