git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 04/12] pack-bitmap: introduce bitmap_walk_contains()

From
Christian Couder <christian.couder@gmail.com>
Date
Dec 18, 2019, 11:25 UTC
Message-ID
<20191218112547.4974-5-chriscool@tuxfamily.org>
In-Reply-To
<20191218112547.4974-1-chriscool@tuxfamily.org>
From: Jeff King <peff@peff.net>

We will use this helper function in a following commit to tell us if an object is packed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 pack-bitmap.c | 12 ++++++++++++
 pack-bitmap.h |  3 +++
 2 files changed, 15 insertions(+)
diff --git a/pack-bitmap.c b/pack-bitmap.c
index e07c798879..fb4f6297f2 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -830,6 +830,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;
+
+	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
-- 
2.24.1.498.g561400140f
Previous: Christian CouderNext: Christian Couder
Message 5 of 13 in “Rewrite packfile reuse code”
  1. 00/12 Rewrite packfile reuse codeChristian Couder, Dec 18, 2019
  2. 01/12 builtin/pack-objects: report reused packfile objectsChristian Couder, Dec 18, 2019
  3. 03/12 ewah/bitmap: introduce bitmap_word_alloc()Christian Couder, Dec 18, 2019
  4. 02/12 packfile: expose get_delta_base()Christian Couder, Dec 18, 2019
  5. 04/12 pack-bitmap: introduce bitmap_walk_contains()Christian Couder, Dec 18, 2019
  6. 05/12 pack-bitmap: uninteresting oid can be outside bitmapped packfileChristian Couder, Dec 18, 2019
  7. 06/12 pack-bitmap: simplify bitmap_has_oid_in_uninteresting()Christian Couder, Dec 18, 2019
  8. 09/12 builtin/pack-objects: introduce obj_is_packed()Christian Couder, Dec 18, 2019
  9. 07/12 csum-file: introduce hashfile_total()Christian Couder, Dec 18, 2019
  10. 08/12 pack-objects: introduce pack.allowPackReuseChristian Couder, Dec 18, 2019
  11. 10/12 pack-objects: improve partial packfile reuseChristian Couder, Dec 18, 2019
  12. 12/12 pack-bitmap: don't rely on bitmap_git->reuse_objectsChristian Couder, Dec 18, 2019
  13. 11/12 pack-objects: add checks for duplicate objectsChristian Couder, Dec 18, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.