Long time ago, we had a discussion with GNU patch/diff maintainer and agreed that pathnames with certain "difficult" bytes needs to be quoted to ensure the resulting patch is machine parseable in an unambiguous way [*1*]. Recently, we saw a report that found that GNU patch is unhappy with our diff output for a path with SP in it [*2*]. With this experimental option, the beginning part of the patch output will have pathnames with SP in them enclosed inside a pair of double quotes, like so: diff --git "a/A Name" "b/A Name" --- "a/A Name" +++ "b/A Name" We have always done this enclosing inside dq when the pathname had an even more difficult byte (like LF, double quotes, and HT), so we know Git tools can handle such a patch output just fine already. *1* https://lore.kernel.org/git/87ek6s0w34.fsf@xxxxxxxxxxxxxxxxxxx/ *2* https://lore.kernel.org/git/YR9Iaj%2FFqAyCMade@xxxxxxxxxx/ Junio C Hamano (2): diff: simplify quote_two() diff: --quote-path-with-sp Documentation/diff-options.txt | 5 +++++ diff.c | 26 ++++++++++---------------- diff.h | 1 + quote.c | 23 ++++++++++++++++++----- quote.h | 3 ++- t/t3902-quoted.sh | 24 +++++++++++++++++++++++- 6 files changed, 59 insertions(+), 23 deletions(-) -- 2.33.0-649-gd4f4107c2b