Re: [PATCH][RFC] git on Mac OS and precomposed unicode
From: Torsten Bögershausen <hidden>
Date: 2016-06-15 22:52:45
On 01/09/2012 08:29 PM, Junio C Hamano wrote:
Torsten Bögershausen[off-list ref] writes:quoted
On 08.01.12 03:46, Junio C Hamano wrote: ...quoted
That also sounds sensible, but...quoted
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,...Thanks Junio for catching this. I added a new test case as well as fixed the code.I think you are sidestepping the real issue I raised, which is: What is the reason why you do not want to feed the precompose helper with some arguments to 'git commit', while it is OK to pass all arguments to other commands through precomposition? I admit it was my fault that I did not spell it out clearly in my response. I understand that arguments other than pathspec and revs could be left in decomposed form, but is there any harm in canonicalizing any and all command line parameters given in decomposed form consistently into precomposed form? What problem are you trying to solve by special casing "git commit"? That is the real question to be answered, as there may be other commands some of whose arguments may not want to be canonicalized due to the same reason, but you simply overlooked them. When other people need to fix that oversight, they need a clearly written criterion what kind of arguments should not be fixed and why. And the reason cannot be a desire to pass the value to "--message" argument intact [*1*]; it is not like osx cannot handle text in precomposed form, right?
The short answer for treating "git commit" special:
The test suite didn't pass any more. (t4201-shortlog.sh)
This seems more and more to be a bad excuse...
The long answer:
I have to look into that more deeply.
Thanks for your replies.
/Torsten
(And yes, Mac OS can handle precomposed unicode (at least the
western european code points))
[snip]