From: Michael Haggerty Date: Sun, 09 Oct 2011 15:16:24 GMT Subject: Re: [PATCH v3 5/5] attr.c: respect core.ignorecase when matching attribute patterns Message-ID: <4E91BAC8.9060606@alum.mit.edu> In-Reply-To: On 10/06/2011 08:22 PM, Brandon Casey wrote: > The last set of tests is performed only on a case-insensitive filesystem. > Those tests make sure that git handles the case where the .gitignore file > resides in a subdirectory and the user supplies a path that does not match > the case in the filesystem. In that case^H^H^H^Hsituation, part of the > path supplied by the user is effectively interpreted case-insensitively, > and part of it is dependent on the setting of core.ignorecase. git should > only match the portion of the path below the directory holding the > .gitignore file according to the setting of core.ignorecase. Isn't this a rather perverse scenario? It is hard to imagine that anybody *wants* part of a single filename to be matched case-insensitively and another part to be matched case-sensitively. ISTM that a person who is using a case-insensitive filesystem and has core-ignorecase=false is (1) a glutton for punishment and (2) probably very careful to make sure that the case of all pathnames is correct. So such a person is not likely to benefit from this schizophrenic behavior. > [...] If git instead built the attr > stack by scanning the repository, then the paths in the origin field would > not necessarily match the paths supplied by the user. If someone makes a > change like that in the future, these tests will notice. Your decision to treat path names as partly case-insensitive will make this kind of improvement considerably more complicated. Therefore, weighing the negligible benefit of declaring this schizophrenic behavior against the potential big pain of remaining backwards-compatible with this behavior, I suggest that we either (1) declare that when core.ignorecase=false then the *whole* filenames (including the path leading up to the .gitignore file) must match case-sensitively, or (2) declare the behavior in this situation to be undefined so that nobody thinks they should depend on it. But given that I'm a potential implementer but not a potential Windows user, perhaps my judgment is biased... Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/