From: Jakub Narebski <jnareb@gmail.com>
To: Eric Raymond <esr@snark.thyrsus.com>
Cc: git@vger.kernel.org
Subject: Re: More git status --porcelain lossage
Date: Fri, 09 Apr 2010 12:22:22 -0700 (PDT) [thread overview]
Message-ID: <m3ochsh1oc.fsf@localhost.localdomain> (raw)
In-Reply-To: <20100409190601.47B37475FEF@snark.thyrsus.com>
Eric Raymond <esr@snark.thyrsus.com> writes:
> After I posted my last, I noticed another crash landing...
>
> 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.
>
> Hilarity will ensue.
>
> 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 '\|'.
Or follow what other porcelain does, like git-diff-tree raw output
format, where all fields except final filename are space separated,
filename is separated by tab character (or NUL when '-z' options is
used). If there are two names (in the case of copy or renames),
they are separated by a tab (or NUL). Record ends with LF (or NUL).
When '-z' option is not used, TAB, LF, " and backslash characters
are represented by '\t', '\n', '\"' and \\, and the filename is
enclosed in '"' doublequotes.
--
Jakub Narebski
Poland
ShadeHawk on #git
next prev parent reply other threads:[~2010-04-09 19:23 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 19:06 More git status --porcelain lossage Eric Raymond
2010-04-09 19:09 ` Eric Raymond
2010-04-09 19:22 ` Jakub Narebski [this message]
2010-04-09 19:50 ` Eric Raymond
2010-04-10 4:12 ` Jeff King
2010-04-10 4:14 ` Jeff King
2010-04-10 18:48 ` Simon
2010-04-10 19:01 ` Jakub Narebski
2010-04-10 19:41 ` Eric Raymond
2010-04-10 20:31 ` Martin Langhoff
2010-04-10 22:28 ` Paolo Bonzini
2010-04-10 23:06 ` Eric Raymond
2010-04-11 11:04 ` David Aguilar
2010-04-10 21:21 ` Jakub Narebski
2010-04-10 22:57 ` Eric Raymond
2010-04-10 19:30 ` Eric Raymond
2010-04-10 19:39 ` Ævar Arnfjörð Bjarmason
2010-04-10 21:24 ` Simon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3ochsh1oc.fsf@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=esr@snark.thyrsus.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.