On 08.01.12 03:46, Junio C Hamano wrote: > Torsten Bögershausen <tboegi@xxxxxx> writes: > >> Implementation: >> Two files are added to the "compat" directory, darwin.h and darwin.c. >> They implement basically 3 new functions: >> darwin_opendir(), darwin_readdir() and darwin_closedir(). > > I haven't looked at the patch yet but that sounds exactly the right way to > go about this. Nice. > >> No decomposed file names in a git repository: >> In order to prevent that ever a file name in decomposed unicode is entering >> the index, a "brute force" attempt is taken: >> all arguments into git (technically argv[1]..argv[n]) are converted into >> precomposed unicode. > > That also sounds sensible, but... > >> This is done in git.c by calling argv_precompose() for all commands >> except "git commit". > > ... I think it generally is a bad idea to say "all except foo". There may > be a reason why "foo" happens to be special in today's code, but who says > there won't be another command "bar" that shares the same reason with > "foo" to be treated specially? Or depending on the options, perhaps some > codepath of "foo" may not want the special casing and want to go through > the argv_precompose(), no? > > After all, "git commit -- pathspec" will have to get the pathspec from the > command line, and match them against the paths in the index, the latter of > which you are keeping in the canonical form, so you would want the argv[] > also be in the same form, and applying your argv_precompose() would be a > sensible way to do so, no? Thanks Junio for catching this. I added a new test case as well as fixed the code. > I would also suspect that the cleanest way to implement it is to replace > the main() entry point (see how compat/mingw.h does this). We only need to that argv conversion in git.c, (and not in daemon.c), so I sticked to the old model for V1. I send a new patch soon /Torsten -- 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