git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH][RFC] git on Mac OS and precomposed unicode

From
Torsten Bögershausen <tboegi@web.de>
Date
Jan 9, 2012, 16:44 UTC
Message-ID
<4F0B196B.8010904@web.de>
In-Reply-To
<7vboqehpxm.fsf@alter.siamese.dyndns.org>
On 08.01.12 03:46, Junio C Hamano wrote:
Show 33 quoted lines
> Torsten Bögershausen <tboegi@web.de> 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

Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 5 in “[RFC] git on Mac OS and precomposed unicode”
  1. [RFC] git on Mac OS and precomposed unicodeTorsten Bögershausen, Jan 7, 2012
  2. Junio C HamanoJan 8, 2012
  3. Torsten BögershausenJan 9, 2012
  4. Junio C HamanoJan 9, 2012
  5. Torsten BögershausenJan 9, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.