Junio C Hamano <gitster@xxxxxxxxx> writes: > 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.