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

Re: More git status --porcelain lossage

From
Jeff King <peff@peff.net>
Date
Apr 10, 2010, 04:12 UTC
Message-ID
<20100410041247.GB11977@coredump.intra.peff.net>
In-Reply-To
<20100409190601.47B37475FEF@snark.thyrsus.com>
On Fri, Apr 09, 2010 at 03:06:01PM -0400, Eric Raymond wrote:
Show 9 quoted lines
> A format properly designed for script parseability should use even use
> whitespace as a field separator.
> 
> Why?
> 
> Because if you do that, front ends *will* do field analysis using a
> naive split-on-whitespace operation.  And then...someday...someone
> will try to run one of these of these on a volume from a system where
> filenames contain embedded whitespace.  Like Mac OS X or Windows.

Yes, that is why almost every scriptable git interface supports a "-z" variant with NUL termination.

> Conclusion: As it is presently, git status --porcelain format is
> irretrievably botched.  You need a field separator that's musch less
> likely to land in a filename, like '|' - and to warn in the documentation
> that careful front ends must check for and ignore '\|'.

We already quote correctly, so it is only sloppy parsers that will be in trouble. Yes, space is more common than "|", but sloppy is sloppy. Parse it right, or use "-z".

-Peff
Previous: Eric RaymondNext: Jeff King
Message 5 of 18 in “More git status --porcelain lossage”
  1. Eric RaymondApr 9, 2010
  2. Eric RaymondApr 9, 2010
  3. Jakub NarebskiApr 9, 2010
  4. Eric RaymondApr 9, 2010
  5. Jeff KingApr 10, 2010
  6. Jeff KingApr 10, 2010
  7. SimonApr 10, 2010
  8. Jakub NarebskiApr 10, 2010
  9. Eric RaymondApr 10, 2010
  10. Martin LanghoffApr 10, 2010
  11. Paolo BonziniApr 10, 2010
  12. Eric RaymondApr 10, 2010
  13. David AguilarApr 11, 2010
  14. Jakub NarebskiApr 10, 2010
  15. Eric RaymondApr 10, 2010
  16. Eric RaymondApr 10, 2010
  17. Ævar Arnfjörð BjarmasonApr 10, 2010
  18. SimonApr 10, 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.