Show 18 quoted lines
> So regardless of what the future default value of core.quotePath
> would be, I am not convinced that it is a good idea to octal quote
> any and all bytes outside the ASCII range in the rev-list output.
>
> After all, "git rev-list --objects" would show such a path without
> quoting, no [*]?
>
> Side note: the path in the output from "git rev-list --objects"
> is a hack to allow receiving end to compute a path hash, and
> does not have to be strictly reversible, so it emits verbatim
> bytes but truncates the output at LF to preserve the one-line
> one-object output format.
>
> We do need to quote certain bytes (e.g., LF cannot be allowed
> verbatim, when the output is line-oriented, and we use C-quote,
> which means literal double-quote needs to be also quoted), so we
> cannot mimic paths emitted by "git rev-list --objects", but I do not
> think it buys us much to quote non-ASCII bytes these days.
Rereading this I realize that I was not quite making sense.
A short version of what I wanted to say is:
- The output format need to do some quoting anyway because it is
inevitable to make the string stuffed as "value" in a space
separated list of var=value on a single line.
- It does not really matter if core.quotePath allows us to pass
bytes with 8-bit set (e.g. UTF-8 outside ASCII) unquoted or
require quoting. The receiving end must be prepared to unquote,
so it is dubious that a new feature to ignore core.quotePath is
needed.
- We do need to quote SP that cquote does not require quoting, so
some wrapping around quote_c_style() like quote_path() does is
needed.
Thanks.