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 | Merge branch 'ps/maintenance-detach-fix-more' (diff) | |
| parent | pseudo-merge.c: ensure pseudo-merge groups are closed (diff) | |
| download | git-1f4d89dfce80e17e6d9939b93391a8ba3885f750.tar.gz git-1f4d89dfce80e17e6d9939b93391a8ba3885f750.zip | |
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; } |
