On Thursday 17 January 2008, Junio C Hamano wrote: > Wincent Colaiuta <win@xxxxxxxxxxx> writes: > > > If this is really just a platform-specific hack, can we use platform- > > specific code to do the normalization? > > Unfortunately, I do not think this can be a platform-specific > hack. > > If a project wants to be usable on both sane and insane > filesystems, people on platforms whose filesystems treat "foo" > and "Foo" as two distinct pathnames (and "Ma<UMLAUT>rchen" and > "M<A-with-UMLAUT>rchen" as two distinct ones) need to be > prevented from creating both in their tree objects at the same > time. Once you create two pathnames xt_connmark.c and > xt_CONNMARK.c in the same tree object in your project, people on > case insensitive filesystems cannot work with your project (you > cannot check out the kernel source tree and work on it on vfat). IMHO, support for insane filesystems should be split into two parts: 1. A git config setting (probably in .gitattributes) that is enabled by the project to prevent anyone from committing files that would cause problems on insane filesystems. This setting must be enabled for everybody in the project (which is why it cannot easily be solved by the current hooks infrastructure which is per-repo only). 2. A platform-specific hack that detects whenever you're about to check out a problematic filename on an insane filesystem. The hack should either warn or (probably better) FAIL to check out the problematic file(s) (with an appropriate error message pointing at the setting in (1)). AFAICS, _both_ are needed in order to solve this problem properly. Have fun! ...Johan -- Johan Herland, <johan@xxxxxxxxxxx> www.herland.net - 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