On Tue, Mar 25, 2008 at 02:04:58PM -0700, Linus Torvalds wrote:
Of course, case-insensitivity is about the working tree only. But when
I merge another branch to the current one, git normally checks that it
is not going to overwrite existing files in the *work tree* and refuses
to do the merge if some files may be overwritten.
So if I work on a case-insensitive filesystem and have a file in a different
case and core.ignorecase=false, then the merge fails as expected!
But core.ignorecase=true, which is supposed to do a better job for case-
insensitive filesystems, actually causes the problem here.
Here is my test script:
====
mkdir git-test
cd git-test
git init
git config core.ignorecase true
echo foo > foo
git add foo
git commit -m 'initial commit'
git checkout -b other
echo file > file
git add file
git commit -m 'add file'
git checkout master
echo File > File
git add File
git commit -m 'add File'
# I expect merge to fail here... and it does fail if core.ignorecase
# is set to false, but with core.ignorecase = true, git will overwrite
# 'File'.
# git config core.ignorecase false
git merge other
===
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html