Re: [PATCH v4 13/13] midx: implement writing incremental MIDX bitmaps
- From
Jeff King <peff@peff.net>
- Date
- Mar 18, 2025, 02:16 UTC
- Message-ID
- <20250318021605.GC1473033@coredump.intra.peff.net>
- In-Reply-To
- <d0d564685bc66df71b4c3ed1093452e58e0f54fd.1741983492.git.me@ttaylorr.com>
On Fri, Mar 14, 2025 at 04:19:00PM -0400, Taylor Blau wrote:
Show 31 quoted lines
> +write_midx_layer () {
> + n=1
> + if test -f $midx_chain
> + then
> + n="$(($(wc -l <$midx_chain) + 1))"
> + fi
> +
> + for i in 1 2
> + do
> + test_commit $n.$i &&
> + git repack -d || return 1
> + done &&
> + git multi-pack-index write --bitmap --incremental
> +}
> +
> +test_expect_success 'write initial MIDX layer' '
> + git repack -ad &&
> + write_midx_layer
> +'
> +
> +test_expect_success 'read bitmap from first MIDX layer' '
> + git rev-list --test-bitmap 1.2
> +'
> +
> +test_expect_success 'write another MIDX layer' '
> + write_midx_layer
> +'
> +
> +test_expect_success 'midx verify with multiple layers' '
> + git multi-pack-index verify
> +'Perhaps a silly suggestion, but do you want to confirm in one of these tests that there are in fact multiple layers of bitmaps? (I expect it to be true, but just trying to cover all bases in the test).
I guess that happens somewhat here:
Show 23 quoted lines
> +test_expect_success 'relink existing MIDX layer' ' > + rm -fr "$midxdir" && > + > + GIT_TEST_MIDX_WRITE_REV=1 git multi-pack-index write --bitmap && > + > + midx_hash="$(test-tool read-midx --checksum $objdir)" && > + > + test_path_is_file "$packdir/multi-pack-index" && > + test_path_is_file "$packdir/multi-pack-index-$midx_hash.bitmap" && > + test_path_is_file "$packdir/multi-pack-index-$midx_hash.rev" && > + > + test_commit another && > + git repack -d && > + git multi-pack-index write --bitmap --incremental && > + > + test_path_is_missing "$packdir/multi-pack-index" && > + test_path_is_missing "$packdir/multi-pack-index-$midx_hash.bitmap" && > + test_path_is_missing "$packdir/multi-pack-index-$midx_hash.rev" && > + > + test_path_is_file "$midxdir/multi-pack-index-$midx_hash.midx" && > + test_path_is_file "$midxdir/multi-pack-index-$midx_hash.bitmap" && > + test_path_is_file "$midxdir/multi-pack-index-$midx_hash.rev" && > + test_line_count = 2 "$midx_chain"
where we check that we switched to $midxdir.
-Peff