On Tue, Jun 28, 2016 at 07:26:39PM +0200, Nguyễn Thái Ngọc Duy wrote: > There's a surprise about core.ignorecase. We are matching paths, so we > should match case-insensitively if core.ignorecase tells us so. And it > gets a bit tricky if core.ignorecase is defined in the same config > file. I don't think we have ever told the user that keys are processed > from top down. We do now. Hrm. I'm not excited about introducing ordering issues into the config parsing. But I think it's actually even more complicated than that. core.ignorecase is generally about the working tree, not the git repository directory, which may reside on another filesystem entirely (though I would not be surprised if we've blurred that line already). I wonder if it would be that bad to just punt on the issue, and say that these include-match globs are always case-insensitive, or something. True, that does not allow one to distinguish between config for "foo" and "Foo" directories, but I find it unlikely anybody would ever want to. And if we define it that way from day one, then nobody expects it to work. > It makes me wonder if we should allow users the option to match case > insensitively regardless of filesystem too. Something close to > pathspec magic. But that probably has little use in real world for a > lot more work. Yeah, if we had a builtin syntax for "add these options to the wildmatch", it wouldn't be so bad, but I think we'd be inventing that syntax. > The '/' vs '\\' battle on Windows, I'll leave it to Windows guys again. Oof. Me too. :) > To leave room for future expansion, perhaps we should declare that ':' > can't appear in the pattern, so we can add more prefix later, and even > stack them, e.g. "regexp:gitdir:<pattern>". The prefix can't be one char > long. That should be enough for windows to specify full path > including the drive letter. It seems unnecessarily restrictive to place rules about what can go in the pattern provided by the user, when we can easily restrict the characters on the keyword side. For example "gitdir/regexp:<pattern>" is a natural extension of "gitdir:<pattern>", and is backwards compatible as long as we use something besides ":" for the option separator. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html