Code

Case insensitivity support for .gitignore via core.ignorecase
authorJoshua Jensen <jjensen@workspacewhiz.com>
Sun, 3 Oct 2010 09:56:42 +0000 (09:56 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Oct 2010 18:19:58 +0000 (11:19 -0700)
commit10d4b02b9962170e15d1d65b03581ef8bef66e2e
tree71548a9b925ab049da3f005d01b44f90a97633e9
parent8cf2a84e9d6adcfc42dadfe4ec2f9bdbb0cdb59b
Case insensitivity support for .gitignore via core.ignorecase

This is especially beneficial when using Windows and Perforce and the
git-p4 bridge. Internally, Perforce preserves a given file's full path
including its case at the time it was added to the Perforce repository.
When syncing a file down via Perforce, missing directories are created,
if necessary, using the case as stored with the filename. Unfortunately,
two files in the same directory can have differing cases for their
respective paths, such as /diRa/file1.c and /DirA/file2.c. Depending on
sync order, DirA/ may get created instead of diRa/.

It is possible to handle directory names in a case insensitive manner
without this patch, but it is highly inconvenient, requiring each
character to be specified like so: [Bb][Uu][Ii][Ll][Dd]. With this patch, the
gitignore exclusions honor the core.ignorecase=true configuration
setting and make the process less error prone. The above is specified
like so: Build

Signed-off-by: Joshua Jensen <jjensen@workspacewhiz.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c