git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).