]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/t5333-pseudo-merge-bitmaps.sh: demonstrate empty pseudo-merge groups
authorTaylor Blau <me@ttaylorr.com>
Thu, 15 Aug 2024 17:31:14 +0000 (13:31 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Aug 2024 18:26:35 +0000 (11:26 -0700)
Demonstrate that it is possible to generate empty pseudo-merge commits
in certain cases.

In the below instance, we generate one non-empty pseudo-merge
(containing commit "base"), and one empty pseudo-merge group
(corresponding to the unstable commits within that group).

(In my testing, the pseudo-merge machinery seems to handle empty groups
just fine, but generating them is pointless as they carry no
information.)

This commit (introducing a deliberate "test_expect_failure") is split
out from the actual fix (which will appear in the following commit) to
demonstrate that the failure is correctly induced.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5333-pseudo-merge-bitmaps.sh

index f052f395a778fd3107c6fb5ae5e5fad23091e961..02886913402a084311ccf9497123fe859a98d79c 100755 (executable)
@@ -390,4 +390,24 @@ test_expect_success 'pseudo-merge reuse' '
        )
 '
 
+test_expect_failure '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_done