Merge branch 'tb/pseudo-merge-bitmap-fixes'
We created a useless pseudo-merge reachability bitmap that is about 0 commits, and attempted to include commits that are not in packs, which made no sense. These bugs have been corrected. * tb/pseudo-merge-bitmap-fixes: pseudo-merge.c: ensure pseudo-merge groups are closed pseudo-merge.c: do not generate empty pseudo-merge commits t/t5333-pseudo-merge-bitmaps.sh: demonstrate empty pseudo-merge groups pack-bitmap-write.c: select pseudo-merges even for small bitmaps pack-bitmap: drop redundant args from `bitmap_writer_finish()` pack-bitmap: drop redundant args from `bitmap_writer_build()` pack-bitmap: drop redundant args from `bitmap_writer_build_type_index()` pack-bitmap: initialize `bitmap_writer_init()` with packing_data
This commit is contained in:
@ -390,4 +390,60 @@ test_expect_success 'pseudo-merge reuse' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'empty pseudo-merge group' '
|
||||
git init pseudo-merge-empty-group &&
|
||||
(
|
||||
cd pseudo-merge-empty-group &&
|
||||
|
||||
# Ensure that a pseudo-merge group with no unstable
|
||||
# commits does not generate an empty pseudo-merge
|
||||
# bitmap.
|
||||
git config bitmapPseudoMerge.empty.pattern refs/ &&
|
||||
|
||||
test_commit base &&
|
||||
git repack -adb &&
|
||||
|
||||
test-tool bitmap dump-pseudo-merges >merges &&
|
||||
test_line_count = 1 merges &&
|
||||
|
||||
test 0 -eq "$(grep -c commits=0 <merges)"
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'pseudo-merge closure' '
|
||||
git init pseudo-merge-closure &&
|
||||
(
|
||||
cd pseudo-merge-closure &&
|
||||
|
||||
test_commit A &&
|
||||
git repack -d &&
|
||||
|
||||
test_commit B &&
|
||||
|
||||
# Note that the contents of A is packed, but B is not. A
|
||||
# (and the objects reachable from it) are thus visible
|
||||
# to the MIDX, but the same is not true for B and its
|
||||
# objects.
|
||||
#
|
||||
# Ensure that we do not attempt to create a pseudo-merge
|
||||
# for B, depsite it matching the below pseudo-merge
|
||||
# group pattern, as doing so would result in a failure
|
||||
# to write a non-closed bitmap.
|
||||
git config bitmapPseudoMerge.test.pattern refs/ &&
|
||||
git config bitmapPseudoMerge.test.threshold now &&
|
||||
|
||||
git multi-pack-index write --bitmap &&
|
||||
|
||||
test-tool bitmap dump-pseudo-merges >pseudo-merges &&
|
||||
test_line_count = 1 pseudo-merges &&
|
||||
|
||||
git rev-parse A >expect &&
|
||||
|
||||
test-tool bitmap list-commits >actual &&
|
||||
test_cmp expect actual &&
|
||||
test-tool bitmap dump-pseudo-merge-commits 0 >actual &&
|
||||
test_cmp expect actual
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user