]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
authorTaylor Blau <me@ttaylorr.com>
Thu, 20 Mar 2025 17:56:56 +0000 (13:56 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Mar 2025 11:34:01 +0000 (04:34 -0700)
Prepare for using pseudo-merges with incremental MIDX bitmaps by
attempting to apply pseudo-merges from each layer when encountering a
given commit during a walk.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Acked-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-bitmap.c

index 4086277de8c637a966e2a30e3acbd182a6a64ccc..1d1e1a65ca3422810bf1becd8e9b08c072946fab 100644 (file)
@@ -1082,10 +1082,15 @@ static unsigned apply_pseudo_merges_for_commit_1(struct bitmap_index *bitmap_git
                                                 struct commit *commit,
                                                 uint32_t commit_pos)
 {
-       int ret;
+       struct bitmap_index *curr = bitmap_git;
+       int ret = 0;
 
-       ret = apply_pseudo_merges_for_commit(&bitmap_git->pseudo_merges,
-                                            result, commit, commit_pos);
+       while (curr) {
+               ret += apply_pseudo_merges_for_commit(&curr->pseudo_merges,
+                                                     result, commit,
+                                                     commit_pos);
+               curr = curr->base;
+       }
 
        if (ret)
                pseudo_merges_satisfied_nr += ret;