diff options
author | Junio C Hamano <gitster@pobox.com> | 2024-08-26 11:32:21 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-08-26 11:32:21 -0700 |
commit | 1f4d89dfce80e17e6d9939b93391a8ba3885f750 (patch) | |
tree | d7226191c9afd3fab0b819795f9dee50a9ad8aa1 /pseudo-merge.c | |
parent | 6e6f68b59b601cca2111f646416246248d732a84 (diff) | |
parent | a72dfab8b8bcccee06d7bf53e5c0323e82a1765a (diff) |
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
Diffstat (limited to 'pseudo-merge.c')
-rw-r--r-- | pseudo-merge.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/pseudo-merge.c b/pseudo-merge.c index 77a83b9c5c..0c11b0ab3d 100644 --- a/pseudo-merge.c +++ b/pseudo-merge.c @@ -218,6 +218,8 @@ static int find_pseudo_merge_group_for_ref(const char *refname, c = lookup_commit(the_repository, oid); if (!c) return 0; + if (!packlist_find(writer->to_pack, oid)) + return 0; has_bitmap = bitmap_writer_has_bitmapped_object_id(writer, oid); @@ -358,8 +360,10 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer, p = commit_list_append(c, p); } while (j % group->stable_size); - bitmap_writer_push_commit(writer, merge, 1); - writer->pseudo_merges_nr++; + if (merge->parents) { + bitmap_writer_push_commit(writer, merge, 1); + writer->pseudo_merges_nr++; + } } /* make up to group->max_merges pseudo merges for unstable commits */ @@ -399,8 +403,9 @@ static void select_pseudo_merges_1(struct bitmap_writer *writer, p = commit_list_append(c, p); } - bitmap_writer_push_commit(writer, merge, 1); - writer->pseudo_merges_nr++; + if (merge->parents) { + bitmap_writer_push_commit(writer, merge, 1); + writer->pseudo_merges_nr++; } if (end >= matches->unstable_nr) break; } |