git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Filename quoting / parsing problem

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 1, 2010, 20:01 UTC
Message-ID
<7vr5q9lhm8.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vws01li4c.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 39 quoted lines
> 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.

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). A pathname with SP in it is an eyesore but is a fact of life outside of sane world, but a quoted pathname is an even worse eyesore. A pathname with trailing SP would be much less common and is more likely to be corrupted by MUA and cut & paste; with quoting we can protect them a bit better.

Previous: Junio C HamanoNext: Andreas Gruenbacher
Message 3 of 10 in “Filename quoting / parsing problem”
  1. Andreas GruenbacherJan 1, 2010
  2. Junio C HamanoJan 1, 2010
  3. Junio C HamanoJan 1, 2010
  4. Andreas GruenbacherJan 2, 2010
  5. Junio C HamanoJan 2, 2010
  6. Andreas GruenbacherJan 2, 2010
  7. Andreas GruenbacherJan 6, 2010
  8. Junio C HamanoJan 6, 2010
  9. Junio C HamanoJan 6, 2010
  10. Andreas SchwabJan 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.