Re: [PATCH v2] blame: print unblamable and ignored commits in porcelain mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 26, 2025 at 5:07 PM Karthik Nayak <karthik.188@xxxxxxxxx> wrote:
> The 'git-blame(1)' command allows users to ignore specific revisions via
> the '--ignore-rev <rev>' and '--ignore-revs-file <file>' flags. These
> flags are often combined with the 'blame.markIgnoredLines' and
> 'blame.markUnblamableLines' config options. These config options prefix
> ignored and unblamable lines with a '?' and '*', respectively.
>
> 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.
>
> Fix this by printing 'ignored' and 'unblamable' respectively for the
> options when using the porcelain modes.
>
> Signed-off-by: Karthik Nayak <karthik.188@xxxxxxxxx>
> ---
> diff --git a/t/t8013-blame-ignore-revs.sh b/t/t8013-blame-ignore-revs.sh
> @@ -158,6 +158,16 @@ test_expect_success mark_unblamable_lines '
> +for opt in --porcelain --line-porcelain
> +do
> +       test_expect_success 'mark_unblamable_lines with $opt' '

This test title is going to display literal "$opt" rather than the
intended option. Fix this by replacing the single quotes with double
quotes:

    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
> @@ -191,6 +201,16 @@ test_expect_success mark_ignored_lines '
> +for opt in --porcelain --line-porcelain
> +do
> +       test_expect_success 'mark_ignored_lines line_porcelain' '

Similarly, this is going to display the same title for both cases,
which isn't as helpful as it could be. Presumably, you instead wanted
this (using double quotes):

     test_expect_success "mark_ignored_lines with $opt" '

> +               sha=$(git rev-parse Y) &&
> +
> +               git -c blame.markIgnoredLines=true blame $opt --ignore-rev Z file >actual &&
> +               test $(grep ^ignored actual | wc -l) -eq 2
> +       '





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux