]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-bitmap: implement `bitmap_writer_has_bitmapped_object_id()`
authorTaylor Blau <me@ttaylorr.com>
Thu, 23 May 2024 21:26:32 +0000 (17:26 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 May 2024 18:40:42 +0000 (11:40 -0700)
Prepare to implement pseudo-merge bitmap selection by implementing a
necessary new function, `bitmap_writer_has_bitmapped_object_id()`.

This function returns whether or not the bitmap_writer selected the
given object ID for bitmapping. This will allow the pseudo-merge
machinery to reject candidates for pseudo-merges if they have already
been selected as an ordinary bitmap tip.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-bitmap-write.c
pack-bitmap.h

index 60eb1e71c983bcaf9c3f427be035d08e2963f5fe..299aa8af6f5fe2c3eb4340cb574caf32c7dcf0ff 100644 (file)
@@ -130,6 +130,12 @@ void bitmap_writer_build_type_index(struct bitmap_writer *writer,
        }
 }
 
+int bitmap_writer_has_bitmapped_object_id(struct bitmap_writer *writer,
+                                         const struct object_id *oid)
+{
+       return kh_get_oid_map(writer->bitmaps, *oid) != kh_end(writer->bitmaps);
+}
+
 /**
  * Compute the actual bitmaps
  */
index 6937a0f090f86a651405178230f0c79f2fa040ac..e175f28e0de8598e5109a683406bae1557f57a59 100644 (file)
@@ -125,6 +125,8 @@ void bitmap_writer_build_type_index(struct bitmap_writer *writer,
                                    struct packing_data *to_pack,
                                    struct pack_idx_entry **index,
                                    uint32_t index_nr);
+int bitmap_writer_has_bitmapped_object_id(struct bitmap_writer *writer,
+                                         const struct object_id *oid);
 uint32_t *create_bitmap_mapping(struct bitmap_index *bitmap_git,
                                struct packing_data *mapping);
 int rebuild_bitmap(const uint32_t *reposition,