Thread (8 messages) flat view 8 messages, 5 authors, 2016-06-15

Re: Stupid quoting...

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:43:17

David Kastrup wrote:
Junio C Hamano [off-list ref] writes:
quoted
Johannes Schindelin [off-list ref] writes:
quoted
quoted
I don't see our discourse leading anywhere: the points have been made.
I would really, really, really like to see a solution. Alas, I
cannot think of one, other than _forcing_ the developers to use
ASCII-only filenames.
Note that there is no convention yet in Git to state which encoding
your filenames are supposed to use. And in fact, we already had a
fine example in git.git why this is particularly difficult. MacOSX
is too clever to be true, in that it gladly takes filenames in one
encoding, but reads those filenames out in _another_
encoding. Thus, a "git add <filename>" can well end up in
git-status saying that a file was deleted, and another file
(actually the same, but in a different encoding) is untracked.
Having said that, the absolute minimum that needs to be quoted are
double-quote (because it is used by quoting as agreed with GNU
diff/patch maintainer), backslash (used to introduce C-like
quoting),
newline and horizontal tab (makes "patch" confused, as it would make
it ambiguous where the pathname ends), so I am not opposed to a
patch that introduces a new mode, probably on by default _unless_ we
are generating --format=email, that does not quote high byte values.
I think it would be ok to quote non-graphic characters with octal
escape sequences.  On ASCII-based systems, those are the characters
0x00 to 0x1f.  They don't have a visual representation of their own,
anyway.  _IF_ they appear in filenames, it is certainly a case
involved with excessive cleverness and/or garbage.  I'd leave the rest
alone.
By the way, ls(1) has its --quoting-style=WORD option, why shouldn't
git-diff and friends (including git-format-patch) have the same? And we
could change the default later on...

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help