On Friday 01 January 2010 09:01:19 pm Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > > I used "cat -e" to make it easier to see that "c file " not only has SP > > in it but it has trailing space. Let's try the result. > > > > $ git diff --cached | cat -e > > diff --git "a/a\001file" "b/a\001file"$ > > new file mode 100644$ > > index 0000000..e69de29$ > > diff --git a/b file b/b file$ > > new file mode 100644$ > > index 0000000..e69de29$ > > diff --git a/c file b/c file $ > > new file mode 100644$ > > index 0000000..e69de29$ > > $ git diff --cached >P.diff > > > > And as you described, "b file" and "c file " are not quoted and they do > > not have ---/+++ lines. > > > > But observe this: > > ... > > We are now back in the state without any of these files, and P.diff > > records a patch to recreate these three files, one with quoting and the > > other two without. > > > > $ git apply --index P.diff > > $ git ls-files -s | cat -e > > 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 > > "a\001file"$ 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 b > > file$ 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 c file $ > > 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 hello$ > > > > This demonstrates that The claim below is false, doesn't it? > > > > > Not parseable: > > > diff --git a/baz b/baz > > > new file mode 100644 > > > index 0000000..e69de29 > > > > Both "b file" and "c file " are parsed by "git apply" perfectly fine. Right, the "diff --git" lines are technically still parseable when the file name stays the same. With renames, lines like "diff --git a/f a/f b/f" or "diff --git a/f b/f b/f" are possible, but then there will also be "renamed from" and "renamed to" headers which will disambiguate things. Still, it doesn't seem like a good idea to allow such ambiguities in the first place. > Having said all that, I don't think we would mind a change to treat a > pathname with trailing SP a bit specially (iow, quoting "c file " in the > above failed attempt to reproduce the issue). I would prefer quoting file names which contain spaces anywhere, not only at the end. If quoting helps to disambiguate a program's output, I'm all for it. People who can't be bothered with such details can always use a pretty printer (side by side view, whatever). Thanks, Andreas -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html