From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Philippe Blain <levraiphilippeblain@gmail.com>,
Git mailing list <git@vger.kernel.org>,
Taylor Blau <me@ttaylorr.com>,
"Martin von Zweigbergk" <martinvonz@google.com>,
Nico Williams <nico@cryptonector.com>,
Edwin Kempin <ekempin@google.com>,
"Elijah Newren" <newren@gmail.com>
Subject: Re: [PATCH] p5332: drop "+" from --stdin-packs input
Date: Tue, 22 Apr 2025 08:49:45 -0700 [thread overview]
Message-ID: <xmqqv7qw42na.fsf@gitster.g> (raw)
In-Reply-To: <20250422111632.GA1855088@coredump.intra.peff.net> (Jeff King's message of "Tue, 22 Apr 2025 07:16:32 -0400")
Jeff King <peff@peff.net> writes:
>
> -- >8 --
> Subject: [PATCH] p5332: drop "+" from --stdin-packs input
>
> This perf script creates a midx by running "git multi-pack-index write"
> with the "--stdin-packs" option. We feed that stdin by running "find" on
> .git/objects/pack, using sed to strip off everything but the basename.
>
> But that sed invocation also does something peculiar: it adds a "+" to
> the start of each pack name. This causes the multi-pack-index command to
> barf. The modified name does not match any pack it knows about, so it
> ends up with an empty list of packs to put in the midx. And thus nothing
> matches the --preferred-pack option we pass, which causes it die().
>
> The fix is to remove the extra "+" (which also lets us simplify the sed
> invocation a bit, as it is now just stripping the leading directories).
>
> But that leaves the mystery of why it was ever there in the first place.
> The answer is that an earlier iteration of the patch series had a
> concept of "disjoint" packs in the midx. And one of its patches here:
>
> https://lore.kernel.org/git/c52d7e7b27a9add4f58b8334db4fe4498af1c90f.1701198172.git.me@ttaylorr.com/
>
> taught read_packs_from_stdin() to treat a leading "+" as marking a
> disjoint pack. But in the second version of the series, which was
> ultimately merged, that disjoint concept went away, and the code to
> parse "+" did likewise. The regular regression tests were adjusted to
> match, but this case in t/perf was forgotten.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> t/perf/p5332-multi-pack-reuse.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Thanks. I wonder if we had some tools and mechanisms people were
discussing to track changes on changsets, such a mishap could have
been caught more easily. [jc: random folks from that discussion
CC'ed, just in case they are interested].
>
> diff --git a/t/perf/p5332-multi-pack-reuse.sh b/t/perf/p5332-multi-pack-reuse.sh
> index d1c89a8b7d..0a2525db44 100755
> --- a/t/perf/p5332-multi-pack-reuse.sh
> +++ b/t/perf/p5332-multi-pack-reuse.sh
> @@ -58,7 +58,7 @@ do
> '
>
> test_expect_success "setup bitmaps for $nr_packs-pack scenario" '
> - find $packdir -type f -name "*.idx" | sed -e "s/.*\/\(.*\)$/+\1/g" |
> + find $packdir -type f -name "*.idx" | sed -e "s/.*\///" |
> git multi-pack-index write --stdin-packs --bitmap \
> --preferred-pack="$(find_pack $(git rev-parse HEAD))"
> '
next prev parent reply other threads:[~2025-04-22 15:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-22 2:01 Test failure in p5332-multi-pack-reuse.sh Philippe Blain
2025-04-22 4:06 ` Junio C Hamano
2025-04-22 11:16 ` [PATCH] p5332: drop "+" from --stdin-packs input Jeff King
2025-04-22 15:49 ` Junio C Hamano [this message]
2025-05-01 16:03 ` Jeff King
2025-04-22 17:24 ` Taylor Blau
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=xmqqv7qw42na.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=ekempin@google.com \
--cc=git@vger.kernel.org \
--cc=levraiphilippeblain@gmail.com \
--cc=martinvonz@google.com \
--cc=me@ttaylorr.com \
--cc=newren@gmail.com \
--cc=nico@cryptonector.com \
--cc=peff@peff.net \
/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).