Hi Christian,
can I check one thing?
On 19/10/2019 11:35, Christian Couder wrote:
From: Jeff King <peff@xxxxxxxx>
We will use this helper function in a following commit to
tell us if an object is packed.
Signed-off-by: Jeff King <peff@xxxxxxxx>
Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx>
---
pack-bitmap.c | 12 ++++++++++++
pack-bitmap.h | 3 +++
2 files changed, 15 insertions(+)
diff --git a/pack-bitmap.c b/pack-bitmap.c
index 016d0319fc..8a51302a1a 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -826,6 +826,18 @@ int reuse_partial_packfile_from_bitmap(struct bitmap_index *bitmap_git,
return 0;
}
+int bitmap_walk_contains(struct bitmap_index *bitmap_git,
+ struct bitmap *bitmap, const struct object_id *oid)
+{
+ int idx;
Excuse my ignorance here...
For the case on Windows (int/long 32 bit), is this return value
guaranteed to be less than 2GiB, i.e. not a memory offset?
I'm just thinking ahead to the resolution of the 4GiB file limit issue
on Git-for-Windows (https://github.com/git-for-windows/git/pull/2179)
+
+ if (!bitmap)
+ return 0;
+
+ idx = bitmap_position(bitmap_git, oid);
+ return idx >= 0 && bitmap_get(bitmap, idx);
+}
+
void traverse_bitmap_commit_list(struct bitmap_index *bitmap_git,
show_reachable_fn show_reachable)
{
diff --git a/pack-bitmap.h b/pack-bitmap.h
index 466c5afa09..6ab6033dbe 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -3,6 +3,7 @@
#include "ewah/ewok.h"
#include "khash.h"
+#include "pack.h"
#include "pack-objects.h"
struct commit;
@@ -53,6 +54,8 @@ int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
int rebuild_existing_bitmaps(struct bitmap_index *, struct packing_data *mapping,
kh_oid_map_t *reused_bitmaps, int show_progress);
void free_bitmap_index(struct bitmap_index *);
+int bitmap_walk_contains(struct bitmap_index *,
+ struct bitmap *bitmap, const struct object_id *oid);
/*
* After a traversal has been performed by prepare_bitmap_walk(), this can be
--
Philip