All of lore.kernel.org
 help / color / mirror / Atom feed
From: "René Scharfe" <l.s.r@web.de>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Laurent Lyaudet" <laurent.lyaudet@gmail.com>,
	git@vger.kernel.org,
	"Eckhard S. Maaß" <eckhard.s.maass@googlemail.com>,
	"Elijah Newren" <newren@gmail.com>
Subject: Re: Git has two ways to count modified lines
Date: Tue, 5 Apr 2022 17:57:51 +0200	[thread overview]
Message-ID: <3dbc5e5c-19dd-eef0-7ce9-e5b639cfb133@web.de> (raw)
In-Reply-To: <220405.865ynomgkg.gmgdl@evledraar.gmail.com>

Am 05.04.22 um 03:58 schrieb Ævar Arnfjörð Bjarmason:
>
> On Mon, Apr 04 2022, René Scharfe wrote:
>
>> diff --git a/sequencer.c b/sequencer.c
>> index a1bb39383d..85a17d45bd 100644
>> --- a/sequencer.c
>> +++ b/sequencer.c
>> @@ -1327,7 +1327,6 @@ void print_commit_summary(struct repository *r,
>>  	get_commit_format(format.buf, &rev);
>>  	rev.always_show_header = 0;
>>  	rev.diffopt.detect_rename = DIFF_DETECT_RENAME;
>> -	rev.diffopt.break_opt = 0;
>>  	diff_setup_done(&rev.diffopt);
>>
>>  	refs = get_main_ref_store(the_repository);
>> diff --git a/t/t7524-commit-summary.sh b/t/t7524-commit-summary.sh
>> new file mode 100755
>> index 0000000000..47b2f1dc22
>> --- /dev/null
>> +++ b/t/t7524-commit-summary.sh
>> @@ -0,0 +1,31 @@
>> +#!/bin/sh
>> +
>> +test_description='git commit summary'
>> +. ./test-lib.sh
>> +
>> +test_expect_success 'setup' '
>> +	test_seq 101 200 >file &&
>> +	git add file &&
>> +	git commit -m initial &&
>> +	git tag initial
>> +'
>> +
>> +test_expect_success 'commit summary ignores rewrites' '
>> +	git reset --hard initial &&
>
> A leftover debugging aid?

No, I expect all tests in that file will need to reset the state and
didn't want to make an exception just for the first one.  It might be a
case of YAGNI, but I put the reset in intentionally.

> You can also use test_commit earlier:
>
> 	diff --git a/t/t7524-commit-summary.sh b/t/t7524-commit-summary.sh
> 	index 47b2f1dc22a..60027e86ccd 100755
> 	--- a/t/t7524-commit-summary.sh
> 	+++ b/t/t7524-commit-summary.sh
> 	@@ -4,14 +4,10 @@ test_description='git commit summary'
> 	 . ./test-lib.sh
>
> 	 test_expect_success 'setup' '
> 	-	test_seq 101 200 >file &&
> 	-	git add file &&
> 	-	git commit -m initial &&
> 	-	git tag initial
> 	+	test_commit initial file "$(test_seq 101 200)"

Nice.  Would ignore test_seq errors, though.  Probably not worth
worrying too much about.

> 	 '
>
> 	 test_expect_success 'commit summary ignores rewrites' '
> 	-	git reset --hard initial &&
> 	 	test_seq 200 300 >file &&
>
> 	 	git diff --stat >diffstat &&
>
>
>> +	test_seq 200 300 >file &&
>> +
>> +	git diff --stat >diffstat &&
>> +	git diff --stat --break-rewrites >diffstatrewrite &&
>> +
>> +	# make sure this scenario is a detectable rewrite
>> +	! test_cmp_bin diffstat diffstatrewrite &&
>
> Is this really binary? I removed the ! and tried test_cmp, and it's just
> a diffstat.
>
> Elsewhere in the test suite we test_cmp this output, would be
> clearer/easier to read to do the same here if possible.

The required result is one bit (same content or not?).  That sanity
check should not waste cycles calculating and printing a diff of the
diffstats.  I only want to make sure they are different.

>
>> +
>> +	git add file &&
>> +	git commit -m second >actual &&
>> +
>> +	grep "1 file" <actual >actual.total &&
>> +	grep "1 file" <diffstat >diffstat.total &&
>> +	test_cmp diffstat.total actual.total
>> +'
>> +
>> +test_done
>

  reply	other threads:[~2022-04-05 21:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-16 18:08 Git has two ways to count modified lines Laurent Lyaudet
2022-04-02 16:49 ` Laurent Lyaudet
2022-04-02 21:55   ` René Scharfe
     [not found]     ` <xmqqh779u72a.fsf@gitster.g>
2022-04-04 21:08       ` René Scharfe
2022-04-05  1:58         ` Ævar Arnfjörð Bjarmason
2022-04-05 15:57           ` René Scharfe [this message]
2022-04-05 15:57     ` Laurent Lyaudet

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=3dbc5e5c-19dd-eef0-7ce9-e5b639cfb133@web.de \
    --to=l.s.r@web.de \
    --cc=avarab@gmail.com \
    --cc=eckhard.s.maass@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=laurent.lyaudet@gmail.com \
    --cc=newren@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.