[Bug Report] [includeIf] does not parse case insensitive -> case sensitive symlink gitdir
Adrian Kappel
2017-10-27 13:55:58 UTC
Hello all, not sure if the issue I've come across is a known bug or
addressable, but wanted to report it just in-case.

** Summary
Using the [includeIf] configuration statement with a symlink'd gitdir
will not work if the symlink is on a case insensitive volume and the
location it references is on a case sensitive volume.

** Steps to reproduce
1. Create symlink (case insensitive -> case sensitive):
/Users/usera/dev -> /Volumes/CaseSensitive/dev
2. Create two files: .gitignore and .gitignore-work, both stored in

  name = First Last

  [includeIf "gitdir:~/dev/work"]
    path = .gitconfig-work

  email = email@address.com

3. cd into a subfolder of ~/dev/work that has been git initialized.
Let's say ~/dev/work/repo
4. Run git config --includes user.email
5. See that nothing is output from the command
6. Update the [includeIf] statement in .gitconfig to be the real
location i.e. "gitdir:/Volumes/CaseSensitive/dev/work/repo"
7. Rerun the command from [4]
8. See that email@address.com is output from the command

** Other variations that were not tested
- symlink on case sensitive volume referencing a location on a case
insensitive volume

** Environment Information
git --version: 2.14.1
OS: macOS Sierra 10.12.6

If a fix is not feasible or likely to be implemented, I would
recommend that we update the git site's documentation to reflect this
gotcha. After verification of course.

Adrian Kappel
akappel <https://github.com/akappel/>