From: Linus Torvalds <torvalds@linux-foundation.org>
To: Matthias Andree <matthias.andree@gmx.de>
Cc: Jeff King <peff@peff.net>,
"Shawn O. Pearce" <spearce@spearce.org>,
Esko Luontola <esko.luontola@gmail.com>,
git@vger.kernel.org
Subject: Re: Cross-Platform Version Control
Date: Wed, 13 May 2009 14:10:17 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.2.01.0905131401170.3343@localhost.localdomain> (raw)
In-Reply-To: <op.utvy5mie1e62zd@merlin.emma.line.org>
On Wed, 13 May 2009, Matthias Andree wrote:
> Am 13.05.2009, 19:12 Uhr, schrieb Linus Torvalds
> <torvalds@linux-foundation.org>:
>
> > Use <stringprep.h> and stringprep_utf8_nfkc_normalize() or something to do
> > the actual normalization if you find characters with the high bit set. And
> > since I know that the OS X filesystems are so buggy as to not even do that
> > whole NFD thing right, there is probably some OS-X specific "use this for
> > filesystem names" conversion function.
>
> Sorry for interrupting, but NF_K_C? You don't want that (K for compatibility,
> rather than canonical, normalization) for anything except normalizing
> temporary variables inside strcasecmp(3) or similar. Probably not even that.
> The normalizations done are often irreversible and also surprising. You don't
> want to turn 2³.c into 23.c, do you?
No, you're right. We want just plain NFC. I just googled for how some
other projects handled this, and found the stringprep thing in a post
about rsync, and didn't look any closer.
But yes, you're absolutely right, stringprep is total crap, and nfkc is
horrible.
I have no idea of what library to use, though. For perl, there's
Unicode::Normalize, but that's likely still subtly incorrect for the OS-X
case due to the filesystem not using _strict_ NFD.
I have this dim memory of somebody actually pointing to the documentation
of exactly which characters OS X ends up decomposing. Maybe we could just
do a git-specific inverse of that, knowing that NOBODY ELSE IN THE WHOLE
UNIVERSE IS SO TERMINALLY STUPID AS TO DO THAT DECOMPOSITION, and thus the
OS X case is the only one we need to care about?
Linus
next prev parent reply other threads:[~2009-05-13 21:11 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-12 15:06 Cross-Platform Version Control Esko Luontola
2009-05-12 15:14 ` Shawn O. Pearce
2009-05-12 16:13 ` Johannes Schindelin
2009-05-12 17:56 ` Esko Luontola
2009-05-12 20:38 ` Johannes Schindelin
2009-05-12 21:16 ` Esko Luontola
2009-05-13 0:23 ` Johannes Schindelin
2009-05-13 5:34 ` Esko Luontola
2009-05-13 6:49 ` Alex Riesen
2009-05-13 10:15 ` Johannes Schindelin
[not found] ` <43d8ce650905130340q596043d5g45b342b62fe20e8d@mail.gmail.com>
2009-05-13 10:41 ` John Tapsell
2009-05-13 13:42 ` Jay Soffian
2009-05-13 13:44 ` Alex Riesen
2009-05-13 13:50 ` Jay Soffian
2009-05-13 13:57 ` John Tapsell
2009-05-13 15:27 ` Nicolas Pitre
2009-05-13 16:22 ` Johannes Schindelin
2009-05-13 17:24 ` Andreas Ericsson
2009-05-14 1:49 ` Miles Bader
2009-05-12 16:16 ` Jeff King
2009-05-12 16:57 ` Johannes Schindelin
2009-05-13 16:26 ` Linus Torvalds
2009-05-13 17:12 ` Linus Torvalds
2009-05-13 17:31 ` Andreas Ericsson
2009-05-13 17:46 ` Linus Torvalds
2009-05-13 18:26 ` Martin Langhoff
2009-05-13 18:37 ` Linus Torvalds
2009-05-13 21:04 ` Theodore Tso
2009-05-13 21:20 ` Linus Torvalds
2009-05-13 21:08 ` Daniel Barkalow
2009-05-13 21:29 ` Linus Torvalds
2009-05-13 20:57 ` Matthias Andree
2009-05-13 21:10 ` Linus Torvalds [this message]
2009-05-13 21:30 ` Jay Soffian
2009-05-13 21:47 ` Matthias Andree
2009-05-12 18:28 ` Dmitry Potapov
2009-05-12 18:40 ` Martin Langhoff
2009-05-12 18:55 ` Jakub Narebski
2009-05-12 21:43 ` [PATCH] Extend sample pre-commit hook to check for non ascii file/usernames Heiko Voigt
2009-05-12 21:55 ` Jakub Narebski
2009-05-14 17:59 ` [PATCH v2] Extend sample pre-commit hook to check for non ascii filenames Heiko Voigt
2009-05-15 10:52 ` Martin Langhoff
2009-05-18 9:37 ` Heiko Voigt
2009-05-18 22:26 ` Jakub Narebski
2009-06-20 12:14 ` [RFC PATCH] check for filenames that only differ in case to sample pre-commit hook Heiko Voigt
2009-05-15 14:57 ` [PATCH v2] Extend sample pre-commit hook to check for non ascii filenames Jakub Narebski
2009-05-18 9:50 ` [PATCH] " Heiko Voigt
2009-05-18 10:40 ` Johannes Sixt
2009-05-18 11:50 ` Heiko Voigt
2009-05-18 12:04 ` Johannes Sixt
2009-05-19 20:01 ` [PATCH v4] " Heiko Voigt
2009-05-18 14:42 ` [PATCH] " Junio C Hamano
2009-05-18 20:35 ` Julian Phillips
2009-05-15 18:11 ` [PATCH v2] " Junio C Hamano
2009-05-14 13:48 ` Cross-Platform Version Control Peter Krefting
2009-05-14 19:58 ` Esko Luontola
2009-05-14 20:21 ` Andreas Ericsson
2009-05-14 22:25 ` Johannes Schindelin
2009-05-15 11:18 ` Dmitry Potapov
-- strict thread matches above, loose matches on Subject: below --
2009-04-27 8:55 Eric Sink's blog - notes on git, dscms and a "whole product" approach Martin Langhoff
2009-04-28 11:24 ` Cross-Platform Version Control (was: Eric Sink's blog - notes on git, dscms and a "whole product" approach) Jakub Narebski
2009-04-29 6:55 ` Martin Langhoff
2009-04-29 7:52 ` Cross-Platform Version Control Jakub Narebski
2009-04-29 8:25 ` Martin Langhoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LFD.2.01.0905131401170.3343@localhost.localdomain \
--to=torvalds@linux-foundation.org \
--cc=esko.luontola@gmail.com \
--cc=git@vger.kernel.org \
--cc=matthias.andree@gmx.de \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).