From: Patrick Steinhardt <ps@pks.im>
To: Tamir Duberstein <tamird@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 1/2] t4205: compare huge output without diff
Date: Mon, 28 Sep 2026 08:36:17 +0200 [thread overview]
Message-ID: <aroK4d5GZ6VoFUim@pks.im> (raw)
In-Reply-To: <CAJ-ks9kJWc0e7aEX4vAL-RoJ5kVvfjDABqV86_hZf2Fn-085GA@mail.gmail.com>
On Thu, Sep 24, 2026 at 04:41:05PM -0400, Tamir Duberstein wrote:
> On Thu, Sep 24, 2026 at 2:13 AM Patrick Steinhardt <ps@pks.im> wrote:
> >
> > On Wed, Sep 23, 2026 at 01:13:28PM -0400, Tamir Duberstein wrote:
> > > The huge-commit test compares two files with a line larger than 2 GiB.
> > > In Linux GitHub Actions jobs, git log produces its huge output but
> > > its subsequent diff process is killed with SIGKILL.
> >
> > I've never seen that failure before. Do you maybe have a link to it?
>
> The failures happened on a private repo that I've since lost access to
> - but I believe it was precipitated by GitHub runners having half the
> memory in private repos as in public ones [1].
Okay.
> > > Use test_cmp_bin to compare the output byte for byte without constructing
> > > a line-oriented diff. Remove the two large files after a successful
> > > comparison, releasing more than 4 GiB before subsequent tests.
> >
> > It would be great to back up the claim that test_cmp_bin is better than
> > test_cmp, e.g. by comparing peak RSS and its runtime.
>
> As for the comparison: on Linux arm64 with GNU
> diffutils 3.8 using two identical files containing 2,147,483,649 "1" bytes
> followed by "0\n" (matching this test's expected output) gave:
>
> Command Mean +/- stddev Maximum RSS (KiB)
> diff -u expect actual 5.276 +/- 0.572 s 4199924
> cmp expect actual 0.506 +/- 0.099 s 1264
Quite a significant win indeed.
> > > Signed-off-by: Tamir Duberstein <tamird@gmail.com>
> > > ---
> > > t/t4205-log-pretty-formats.sh | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh
> > > index 4be5c51489..6279a7e9bc 100755
> > > --- a/t/t4205-log-pretty-formats.sh
> > > +++ b/t/t4205-log-pretty-formats.sh
> > > @@ -1189,7 +1189,8 @@ test_expect_success EXPENSIVE,SIZE_T_IS_64BIT 'set up huge commit' '
> > > test_expect_success EXPENSIVE,SIZE_T_IS_64BIT 'log --pretty with huge commit message' '
> > > git log -1 --format="%B%<(1)%x30" $huge_commit >actual &&
> > > echo 0 >>expect &&
> > > - test_cmp expect actual
> > > + test_cmp_bin expect actual &&
> > > + rm expect actual
> > > '
> >
> > Hm. Sure, releasing these files isn't a bad idea by itself. But we
> > rewrite "expect" in the next test anyway, and "actual" will be rewritten
> > two tests further down. So does it really buy us that much...?
>
> You're right, this probably does not buy much.
>
> Would you like me to include the performance comparison in v2?
I think that'd be good, yes. Providing context like this to the reviewer
makes everyone's life easier :)
> As for the deletion: would you prefer I drop it?
My personal take is that we can just drop it as it doesn't buy us much.
If we want to keep it we should be honest about its effect in the commit
message.
Patrick
next prev parent reply other threads:[~2026-09-28 6:36 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 17:13 [PATCH 0/2] ci: reduce pressure from large test fixtures Tamir Duberstein
2026-09-23 17:13 ` [PATCH 1/2] t4205: compare huge output without diff Tamir Duberstein
2026-09-24 6:13 ` Patrick Steinhardt
2026-09-24 20:41 ` Tamir Duberstein
2026-09-25 0:13 ` Jeff King
2026-09-25 6:41 ` Junio C Hamano
2026-09-28 6:36 ` Patrick Steinhardt [this message]
2026-09-23 17:13 ` [PATCH 2/2] ci: match Linux jobs to available CPUs Tamir Duberstein
2026-09-24 6:13 ` Patrick Steinhardt
2026-09-25 15:03 ` Tamir Duberstein
2026-09-23 18:36 ` [PATCH 0/2] ci: reduce pressure from large test fixtures Tamir Duberstein
2026-09-25 16:35 ` [PATCH v2 0/2] ci: use cmp and align job-count selection Tamir Duberstein
2026-09-25 16:35 ` [PATCH v2 1/2] t4205: compare huge output without diff Tamir Duberstein
2026-09-28 6:36 ` Patrick Steinhardt
2026-09-25 16:35 ` [PATCH v2 2/2] ci: align job counts across CI providers Tamir Duberstein
2026-09-28 6:36 ` Patrick Steinhardt
2026-09-28 10:16 ` Tamir Duberstein
2026-09-28 11:14 ` Patrick Steinhardt
2026-09-30 14:20 ` [PATCH v3 0/2] ci: use cmp and align job-count selection Tamir Duberstein
2026-09-30 14:20 ` [PATCH v3 1/2] t4205: compare huge output without diff Tamir Duberstein
2026-09-30 14:20 ` [PATCH v3 2/2] ci: use twice the CPU count on both providers Tamir Duberstein
2026-09-30 14:45 ` Patrick Steinhardt
2026-09-30 14:45 ` [PATCH v3 0/2] ci: use cmp and align job-count selection Patrick Steinhardt
2026-09-30 14:58 ` Tamir Duberstein
2026-09-30 18:04 ` 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=aroK4d5GZ6VoFUim@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=tamird@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