Re: [PATCH 0/6] Extensions of core.ignorecase=true support
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Aug 18, 2010, 18:31 UTC
- Message-ID
- <201008182031.10197.j6t@kdbg.org>
- In-Reply-To
- <AANLkTi=Fkj-_-wHZN4GY2b+2n0mk7MKV=au0Hm4B+i9d@mail.gmail.com>
On Mittwoch, 18. August 2010, Robert Buck wrote:
> So apparently when core.ignorecase=true, this really means > casepreserving=false, casesensitive=true.
No. When an entry enters the index from the worktree, an existing entry is reused and the index entry's case is preserved, where existence is determined in a case-insensitive manner[*]; if the entry is new, the case is preserved.
In the oppsite direction, case preservation depends entirely on the capabilities of the file system.
[*] The new part of this series is that this case-insensitive existence test happens on for the entire path, and not just the file name part.
Show 5 quoted lines
> So what I am hearing is that unless one sets core.ignorecase, in mixed > environments you are in for a world of hurt; you'd end up with Foo and > foo from the Unix side of the house, and on Macs or Windows the last > file materialized from the index or repository into the working > directory would clobber the first one materialized,
core.ignorecase is not designed to help this case. It is a "Doctor, it hurts when I poke myself in the eye" problem. Don't have both foo and Foo in your repository if you go cross-platform. The git repository format is not designed to treat them as identical, and no configuration option alters this.
-- Hannes