Message ID | 20210915223316.1653443-1-gitster@pobox.com (mailing list archive) |
---|---|
Headers | show |
Series | (experimental) diff --quote-path-with-sp | expand |
On 2021-09-15 15:33:14-0700, Junio C Hamano wrote: > 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" I believe GNU patch is fine with unquoted spaces in the "--- a/path" and "+++ b/path", and only has an issue with unquoted spaces in the "diff --git" line. busybox patch does seem to have an issue with quoted filenames in the "---" and "+++" lines but is fine if those lines are unquoted. Maybe we could leave spaces unquoted in those lines, only quoted if there's some other character that needs it.
Gwyneth Morgan <gwymor@tilde.club> writes: > On 2021-09-15 15:33:14-0700, Junio C Hamano wrote: >> 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" > > I believe GNU patch is fine with unquoted spaces in the "--- a/path" > and "+++ b/path", and only has an issue with unquoted spaces in the > "diff --git" line. busybox patch does seem to have an issue with quoted > filenames in the "---" and "+++" lines but is fine if those lines are > unquoted. Maybe we could leave spaces unquoted in those lines, only > quoted if there's some other character that needs it. Well, if they are so inconsistent, perhaps we shouldn't bend over backwards to cater to them, I would have to say. I do not think we want to break the convention that these a/ & b/ labeled paths are spelled exactly the same way, only to please external tools. Thanks for a quick report.