From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, jltobler@gmail.com, toon@iotcl.com,
gitster@pobox.com, Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCH v2] blame: print unblamable and ignored commits in porcelain mode
Date: Fri, 28 Mar 2025 08:00:08 +0100 [thread overview]
Message-ID: <Z-ZI-M2jBf5pqMoA@pks.im> (raw)
In-Reply-To: <20250326-514-git-blame-1-s-porcelain-output-does-not-emit-unblamable-and-ignored-markers-v2-1-79037e17a74b@gmail.com>
On Wed, Mar 26, 2025 at 10:06:10PM +0100, Karthik Nayak wrote:
> diff --git a/builtin/blame.c b/builtin/blame.c
> index c470654c7e..528bfef249 100644
> --- a/builtin/blame.c
> +++ b/builtin/blame.c
> @@ -351,6 +351,19 @@ static void emit_porcelain_details(struct blame_origin *suspect, int repeat)
> write_filename_info(suspect);
> }
>
> +/*
> + * Information which needs to be printed per-line goes here. Any
> + * information which can be clubbed on a commit/file level, should
> + * be printed via 'emit_one_suspect_detail()'.
> + */
> +static void emit_per_line_details(struct blame_entry *ent)
Tiny nit, feel free to ignore: should this something like
`emit_porcelain_per_line_details()` to highlight that this is part of
the porcelain format?
> +{
> + if (mark_unblamable_lines && ent->unblamable)
> + printf("unblamable\n");
> + if (mark_ignored_lines && ent->ignored)
> + printf("ignored\n");
> +}
> +
Another tiny nit: you may use `puts()` instead of `printf()`. I don't
mind it much though, both versions work equally well.
> diff --git a/t/t8013-blame-ignore-revs.sh b/t/t8013-blame-ignore-revs.sh
> index 370b768149..306fc61057 100755
> --- a/t/t8013-blame-ignore-revs.sh
> +++ b/t/t8013-blame-ignore-revs.sh
> @@ -158,6 +158,16 @@ test_expect_success mark_unblamable_lines '
> test_cmp expect actual
> '
>
> +for opt in --porcelain --line-porcelain
> +do
> + test_expect_success 'mark_unblamable_lines with $opt' '
> + sha=$(git rev-parse Y) &&
> +
> + git -c blame.markUnblamableLines=true blame $opt --ignore-rev Y file >actual &&
> + test $(grep ^unblamable actual | wc -l) -eq 2
> + '
> +done
> +
Okay, makes sense. We cannot batch the information on the first time
we've seen the commit here because both the "unblamable" and "ignored"
properties are properties of the line, not of the commit. So we'd expect
to see the information per line in both modes.
Patrick
next prev parent reply other threads:[~2025-03-28 7:00 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
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 [this message]
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=Z-ZI-M2jBf5pqMoA@pks.im \
--to=ps@pks.im \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=karthik.188@gmail.com \
--cc=toon@iotcl.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).