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

[PATCH 1/3] pack-bitmap: add 'test_bitmap_commits()' helper

From
Taylor Blau <me@ttaylorr.com>
Date
Apr 1, 2021, 01:32 UTC
Message-ID
<053ba4b8319cae9fc804b5f9ce452be1bb16e1da.1617240723.git.me@ttaylorr.com>
In-Reply-To
<cover.1617240723.git.me@ttaylorr.com>

The next patch will add a 'bitmap' test-tool which prints the list of commits that have bitmaps computed.

The test helper could implement this itself, but it would need access to the 'bitmaps' field of the 'pack_bitmap' struct. To avoid exposing this private detail, implement the entirety of the helper behind a test_bitmap_commits() function in pack-bitmap.c.

There is some precedence for this with test_bitmap_walk() which is used to implement the '--test-bitmap' flag in 'git rev-list' (and is also implemented in pack-bitmap.c).

A caller will be added in the next patch.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
 pack-bitmap.c | 18 ++++++++++++++++++
 pack-bitmap.h |  1 +
 2 files changed, 19 insertions(+)
diff --git a/pack-bitmap.c b/pack-bitmap.c
index 1ebe0c8162..7554510b14 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -1350,6 +1350,24 @@ void test_bitmap_walk(struct rev_info *revs)
 	free_bitmap_index(bitmap_git);
 }
 
+int test_bitmap_commits(struct repository *r)
+{
+	struct bitmap_index *bitmap_git = prepare_bitmap_git(r);
+	struct object_id oid;
+	MAYBE_UNUSED void *value;
+
+	if (!bitmap_git)
+		die("failed to load bitmap indexes");
+
+	kh_foreach(bitmap_git->bitmaps, oid, value, {
+		printf("%s\n", oid_to_hex(&oid));
+	});
+
+	free_bitmap_index(bitmap_git);
+
+	return 0;
+}
+
 int rebuild_bitmap(const uint32_t *reposition,
 		   struct ewah_bitmap *source,
 		   struct bitmap *dest)
diff --git a/pack-bitmap.h b/pack-bitmap.h
index 36d99930d8..c3cdd80756 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -49,6 +49,7 @@ void traverse_bitmap_commit_list(struct bitmap_index *,
 				 struct rev_info *revs,
 				 show_reachable_fn show_reachable);
 void test_bitmap_walk(struct rev_info *revs);
+int test_bitmap_commits(struct repository *r);
 struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
 					 struct list_objects_filter_options *filter);
 int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
-- 
2.31.1.163.ga65ce7f831
Previous: Taylor BlauNext: Taylor Blau
Message 2 of 13 in “pack-objects: introduce pack.preferBitmapTips”
  1. 0/3 pack-objects: introduce pack.preferBitmapTipsTaylor Blau, Apr 1, 2021
  2. 1/3 pack-bitmap: add 'test_bitmap_commits()' helperTaylor Blau, Apr 1, 2021
  3. 2/3 t/helper/test-bitmap.c: initial commitTaylor Blau, Apr 1, 2021
  4. SunCC doesn't compile v2.32.0-rc* anymore (was "Re: [PATCH 2/3] t/helper/test-bitmap.c: initial commit")Ævar Arnfjörð Bjarmason, May 26, 2021
  5. Taylor BlauMay 26, 2021
  6. Ævar Arnfjörð BjarmasonMay 26, 2021
  7. pack-objects: move builtin-only code to its own headerÆvar Arnfjörð Bjarmason, May 27, 2021
  8. Junio C HamanoMay 27, 2021
  9. Junio C HamanoMay 27, 2021
  10. Junio C HamanoMay 27, 2021
  11. Ævar Arnfjörð BjarmasonMay 27, 2021
  12. 3/3 builtin/pack-objects.c: respect 'pack.preferBitmapTips'Taylor Blau, Apr 1, 2021
  13. Derrick StoleeApr 1, 2021

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.