From: Junio C Hamano <gitster@pobox.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, jltobler@gmail.com,
Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCH] blame: fix unblamable and ignored lines in porcelain mode
Date: Sun, 23 Mar 2025 08:58:03 -0700 [thread overview]
Message-ID: <xmqqzfhbrb78.fsf@gitster.g> (raw)
In-Reply-To: <20250321-514-git-blame-1-s-porcelain-output-does-not-emit-unblamable-and-ignored-markers-v1-1-44b562d9beb8@gmail.com> (Karthik Nayak's message of "Fri, 21 Mar 2025 17:39:14 +0100")
Karthik Nayak <karthik.188@gmail.com> writes:
> However, this option was never extended to the porcelain mode of
> 'git-blame(1)'. Since the documentation does not indicate this
> exclusion, it is a bug.
I agree it is a bug when people added ignore or unblamable support
that they did not _consider_ what to do with their new pieces of
information to help porcelain writers. It is not a bug in the code
per-se, but it is a bug in the brain of these people ;-)
But prefixing random garbage to the commit object name line in the
porcelain mode output does not sound like the right solution to the
bug, either.
When enhancing an existing output format, make sure that your
changes will have minimum empact to existing parsers that do not
know about your extension. It is reasonably expected that existing
Porcelain scripts reading from --porcelain mode output works by
- Recognizing a line that match "^[0-9a-f]{40} \d+ \d+ \d+$" and
take it as the beginning of a new record;
- Collect all info lines before the payload line. Lines that
describe per-commit information are not repeated if it is already
shown, so remember them when you see the commit for the first
time, and recall them when you recognize the commit you already
saw.
- A payload line is indented with HT and terminates the record.
If you start to add unrecognizable garbage to the line with very
well known fixed format that is used as record delimiter, you would
break the existing parsers, which is not a very nice thing to do.
Are there other and better ways you can think of to add new pieces
of information like this in a way with less severe damage?
next prev parent reply other threads:[~2025-03-23 15:58 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-21 16:39 [PATCH] blame: fix unblamable and ignored lines in porcelain mode Karthik Nayak
2025-03-23 15:58 ` Junio C Hamano [this message]
2025-03-24 10:16 ` Patrick Steinhardt
2025-03-24 10:37 ` Toon Claes
2025-03-24 20:04 ` Karthik Nayak
2025-03-25 8:45 ` Toon Claes
2025-03-25 10:31 ` Karthik Nayak
2025-03-25 19:44 ` Junio C Hamano
2025-03-24 20:00 ` Karthik Nayak
2025-03-24 19:56 ` Karthik Nayak
2025-03-26 21:06 ` [PATCH v2] blame: print unblamable and ignored commits " Karthik Nayak
2025-03-26 22:49 ` Eric Sunshine
2025-03-27 11:07 ` Karthik Nayak
2025-03-29 19:06 ` Junio C Hamano
2025-03-28 7:00 ` Patrick Steinhardt
2025-03-29 10:26 ` Karthik Nayak
2025-03-29 18:21 ` [PATCH v3] " Karthik Nayak
2025-03-30 4:56 ` Junio C Hamano
2025-03-30 9:28 ` Phillip Wood
2025-03-30 20:43 ` [PATCH v4] " Karthik Nayak
2025-03-31 7:05 ` Patrick Steinhardt
2025-03-31 7:34 ` Karthik Nayak
2025-03-31 10:24 ` phillip.wood123
2025-03-31 10:47 ` Phillip Wood
[not found] ` <CAOLa=ZSQ7PiasRk23Hxp7Gk5vU-x83N4e4WTxG3eVsxK0zKnWA@mail.gmail.com>
[not found] ` <f39c6468-aade-489a-bc7b-c3d342a22cb8@gmail.com>
[not found] ` <CAOLa=ZQMYn2eYndX0saTKnuzAacjtNZeTb9PCrcNC50nneAq5g@mail.gmail.com>
2025-04-02 13:07 ` Phillip Wood
2025-04-03 16:03 ` [PATCH v5] " Karthik Nayak
2025-04-04 15:58 ` Phillip Wood
2025-04-08 0:32 ` Junio C Hamano
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=xmqqzfhbrb78.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=jltobler@gmail.com \
--cc=karthik.188@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).