From: Jakub Narebski <jnareb@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Sverre Rabbelier <srabbelier@gmail.com>,
Julian Phillips <julian@quantumfyre.co.uk>,
git@vger.kernel.org, Eric Raymond <esr@thyrsus.com>
Subject: Re: [RFC/PATCH v2 0/4] A new library for plumbing output
Date: Wed, 14 Apr 2010 23:29:38 +0200 [thread overview]
Message-ID: <201004142329.38914.jnareb@gmail.com> (raw)
In-Reply-To: <7vbpdlpy5t.fsf@alter.siamese.dyndns.org>
On Wed, 14 April 2010, Junio C Hamano wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
>
>>> Wouldn't the exact same argument apply equally well to the output format
>>> of "status --porcelain", by the way? It is line-based and pretty much
>>> self-describing (once you know the mnemonic but you can make an educated
>>> guess from previous SCM experience).
>>
>> No, current "git status --porcelain" output is record-based (tabular);
>> the meaning is not described by header but depends on field in record,
>> i.e. position in line.
>
> Now, what's wrong about that?
Well, this whole idea started with the fact, that "git status --short"
was hard (or impossible) to parse unambigously by scripts[1], and even
"git status --porcelain -z"[2] is not that easy to parse[3].
With JSON output format one can use existing JSON parsers, which are
available in any language.
[1] And it was woefully underdocumented
[2] I wonder why git-config and git-grep have '--null' as long version
of '-z' option... and only those.
[3] I rather liked the idea of -Z output format, the form that uses
NUL as field separator for each field (and not only filenames),
and NUL NUL as record terminator; it makes parsing much easier
because you don't need to take a look at other field to know
where the record ends.
> For that matter, would you say "diff --raw" output should be
> JSON/XMLified because it is columnar?
It would be nice to have raw diff format JSONified, or have --porcelain
(like "git blame --porcelain" output format) version of it. Especially
for "diff -c --raw" i.e. raw output format for merges, which lacks some
information, namely filename and similarity score for n-th pre-image,
if rename or copy was detected.
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2010-04-14 21:29 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-11 23:21 [RFC/PATCH v2 0/4] A new library for plumbing output Julian Phillips
2010-04-11 23:21 ` [RFC/PATCH v2 1/4] output: Add a " Julian Phillips
2010-04-13 9:43 ` Ilari Liusvaara
2010-04-13 11:46 ` Julian Phillips
2010-04-11 23:21 ` [RFC/PATCH v2 2/4] ls-tree: complete conversion to using output library Julian Phillips
2010-04-11 23:21 ` [RFC/PATCH v2 3/4] status: use output library for porcelain output Julian Phillips
2010-04-11 23:21 ` [RFC/PATCH v2 4/4] output: WIP: Add XML backend Julian Phillips
2010-04-11 23:35 ` [RFC/PATCH v2 0/4] A new library for plumbing output Sverre Rabbelier
2010-04-12 0:46 ` Eric Raymond
2010-04-14 19:10 ` Jakub Narebski
2010-04-14 19:13 ` Sverre Rabbelier
2010-04-14 21:42 ` Jakub Narebski
2010-04-14 19:32 ` Junio C Hamano
2010-04-14 20:12 ` Jakub Narebski
2010-04-14 20:38 ` Junio C Hamano
2010-04-14 21:29 ` Jakub Narebski [this message]
2010-04-14 21:34 ` Junio C Hamano
2010-04-15 6:57 ` Jeff King
2010-04-15 9:07 ` Jakub Narebski
2010-04-17 9:53 ` Jeff King
2010-04-17 13:02 ` Jakub Narebski
2010-04-17 14:00 ` Jeff King
2010-04-18 21:46 ` [RFC/PATCH v2 0/4] A new library for plumbing output (inc. current status) Julian Phillips
2010-04-19 19:40 ` Jeff King
2010-04-14 20:57 ` [RFC/PATCH v2 0/4] A new library for plumbing output Julian Phillips
2010-04-14 21:16 ` Jakub Narebski
2010-04-14 21:28 ` Julian Phillips
2010-04-15 7:15 ` Jeff King
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=201004142329.38914.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=esr@thyrsus.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=julian@quantumfyre.co.uk \
--cc=srabbelier@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).