pack-bitmap-write.c: select pseudo-merges even for small bitmaps

Ordinarily, the pack-bitmap machinery will select some subset of reachable commits to receive bitmaps. But when there are fewer than 100 commits indexed in the first place, they will all receive bitmaps as a special case. When this happens, pseudo-merges are not generated, making it impossible to test pseudo-merge corner cases with fewer than 100 commits. Select pseudo-merges even for bitmaps with fewer than 100 commits to make such testing easier. In practice, this should not make a difference to non-testing bitmaps, as they are unlikely to be used when a repository has so few commits to begin with. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Aug 15, 2024 at 13:31 UTC 187504f9b2b2af89c77247100b246a704c68c884
1 file changed +4
pack-bitmap-write.c
+4
@@ -694,6 +694,10 @@ void bitmap_writer_select_commits(struct bitmap_writer *writer,
694 if (indexed_commits_nr < 100) {
695 for (i = 0; i < indexed_commits_nr; ++i)
696 bitmap_writer_push_commit(writer, indexed_commits[i], 0);
697 +
698 + select_pseudo_merges(writer, indexed_commits,
699 + indexed_commits_nr);
700 +
701 return;
702 }
703