git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Karthik Nayak <karthik.188@gmail.com>
To: karthik.188@gmail.com
Cc: git@vger.kernel.org, me@ttaylorr.com, peff@peff.net
Subject: [PATCH v6 9/9] midx: add repository to `multi_pack_index` struct
Date: Thu,  7 Nov 2024 15:10:36 +0100	[thread overview]
Message-ID: <2f9a14697806d3d358b79f0863d2d03ce79d1da8.1730976185.git.karthik.188@gmail.com> (raw)
In-Reply-To: <cover.1730976185.git.karthik.188@gmail.com>

The `multi_pack_index` struct represents the MIDX for a repository.
Here, we add a pointer to the repository in this struct, allowing direct
use of the repository variable without relying on the global
`the_repository` struct.

With this addition, we can determine the repository associated with a
`bitmap_index` struct. A `bitmap_index` points to either a `packed_git`
or a `multi_pack_index`, both of which have direct repository
references. To support this, we introduce a static helper function,
`bitmap_repo`, in `pack-bitmap.c`, which retrieves a repository given a
`bitmap_index`.

With this, we clear up all usages of `the_repository` within
`pack-bitmap.c` and also remove the `USE_THE_REPOSITORY_VARIABLE`
definition. Bringing us another step closer to remove all global
variable usage.

Although this change also opens up the potential to clean up `midx.c`,
doing so would require additional refactoring to pass the repository
struct to functions where the MIDX struct is created: a task better
suited for future patches.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
 midx.c        |  1 +
 midx.h        |  3 ++
 pack-bitmap.c | 90 +++++++++++++++++++++++++++++++--------------------
 3 files changed, 59 insertions(+), 35 deletions(-)

diff --git a/midx.c b/midx.c
index 8edb75f51d..079c45a1aa 100644
--- a/midx.c
+++ b/midx.c
@@ -131,6 +131,7 @@ static struct multi_pack_index *load_multi_pack_index_one(const char *object_dir
 	m->data = midx_map;
 	m->data_len = midx_size;
 	m->local = local;
+	m->repo = the_repository;
 
 	m->signature = get_be32(m->data);
 	if (m->signature != MIDX_SIGNATURE)
diff --git a/midx.h b/midx.h
index 42d4f8d149..3b0ac4d878 100644
--- a/midx.h
+++ b/midx.h
@@ -71,6 +71,9 @@ struct multi_pack_index {
 
 	const char **pack_names;
 	struct packed_git **packs;
+
+	struct repository *repo;
+
 	char object_dir[FLEX_ARRAY];
 };
 
diff --git a/pack-bitmap.c b/pack-bitmap.c
index d34ba9909a..0cb1b56c9d 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -1,5 +1,3 @@
-#define USE_THE_REPOSITORY_VARIABLE
-
 #include "git-compat-util.h"
 #include "commit.h"
 #include "gettext.h"
@@ -177,12 +175,21 @@ static uint32_t bitmap_num_objects(struct bitmap_index *index)
 	return index->pack->num_objects;
 }
 
+static struct repository *bitmap_repo(struct bitmap_index *bitmap_git)
+{
+	if (bitmap_is_midx(bitmap_git))
+		return bitmap_git->midx->repo;
+	return bitmap_git->pack->repo;
+}
+
 static int load_bitmap_header(struct bitmap_index *index)
 {
 	struct bitmap_disk_header *header = (void *)index->map;
-	size_t header_size = sizeof(*header) - GIT_MAX_RAWSZ + the_hash_algo->rawsz;
+	const struct git_hash_algo *hash_algo = bitmap_repo(index)->hash_algo;
+
+	size_t header_size = sizeof(*header) - GIT_MAX_RAWSZ + hash_algo->rawsz;
 
-	if (index->map_size < header_size + the_hash_algo->rawsz)
+	if (index->map_size < header_size + hash_algo->rawsz)
 		return error(_("corrupted bitmap index (too small)"));
 
 	if (memcmp(header->magic, BITMAP_IDX_SIGNATURE, sizeof(BITMAP_IDX_SIGNATURE)) != 0)
@@ -196,7 +203,7 @@ static int load_bitmap_header(struct bitmap_index *index)
 	{
 		uint32_t flags = ntohs(header->options);
 		size_t cache_size = st_mult(bitmap_num_objects(index), sizeof(uint32_t));
-		unsigned char *index_end = index->map + index->map_size - the_hash_algo->rawsz;
+		unsigned char *index_end = index->map + index->map_size - hash_algo->rawsz;
 
 		if ((flags & BITMAP_OPT_FULL_DAG) == 0)
 			BUG("unsupported options for bitmap index file "
@@ -409,7 +416,7 @@ static int open_midx_bitmap_1(struct bitmap_index *bitmap_git,
 	if (bitmap_git->pack || bitmap_git->midx) {
 		struct strbuf buf = STRBUF_INIT;
 		get_midx_filename(&buf, midx->object_dir);
-		trace2_data_string("bitmap", the_repository,
+		trace2_data_string("bitmap", bitmap_repo(bitmap_git),
 				   "ignoring extra midx bitmap file", buf.buf);
 		close(fd);
 		strbuf_release(&buf);
@@ -427,7 +434,7 @@ static int open_midx_bitmap_1(struct bitmap_index *bitmap_git,
 		goto cleanup;
 
 	if (!hasheq(get_midx_checksum(bitmap_git->midx), bitmap_git->checksum,
-		    the_repository->hash_algo)) {
+		    bitmap_repo(bitmap_git)->hash_algo)) {
 		error(_("checksum doesn't match in MIDX and bitmap"));
 		goto cleanup;
 	}
@@ -438,7 +445,9 @@ static int open_midx_bitmap_1(struct bitmap_index *bitmap_git,
 	}
 
 	for (i = 0; i < bitmap_git->midx->num_packs; i++) {
-		if (prepare_midx_pack(the_repository, bitmap_git->midx, i)) {
+		if (prepare_midx_pack(bitmap_repo(bitmap_git),
+				      bitmap_git->midx,
+				      i)) {
 			warning(_("could not open pack %s"),
 				bitmap_git->midx->pack_names[i]);
 			goto cleanup;
@@ -492,8 +501,9 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
 	}
 
 	if (bitmap_git->pack || bitmap_git->midx) {
-		trace2_data_string("bitmap", the_repository,
-				   "ignoring extra bitmap file", packfile->pack_name);
+		trace2_data_string("bitmap", bitmap_repo(bitmap_git),
+				   "ignoring extra bitmap file",
+				   packfile->pack_name);
 		close(fd);
 		return -1;
 	}
@@ -518,8 +528,8 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
 		return -1;
 	}
 
-	trace2_data_string("bitmap", the_repository, "opened bitmap file",
-			   packfile->pack_name);
+	trace2_data_string("bitmap", bitmap_repo(bitmap_git),
+			   "opened bitmap file", packfile->pack_name);
 	return 0;
 }
 
@@ -649,7 +659,7 @@ struct bitmap_index *prepare_bitmap_git(struct repository *r)
 
 struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index *midx)
 {
-	struct repository *r = the_repository;
+	struct repository *r = midx->repo;
 	struct bitmap_index *bitmap_git = xcalloc(1, sizeof(*bitmap_git));
 
 	if (!open_midx_bitmap_1(bitmap_git, midx) && !load_bitmap(r, bitmap_git))
@@ -1213,6 +1223,7 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
 {
 	struct bitmap_boundary_cb cb;
 	struct object_list *root;
+	struct repository *repo;
 	unsigned int i;
 	unsigned int tmp_blobs, tmp_trees, tmp_tags;
 	int any_missing = 0;
@@ -1222,6 +1233,8 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
 	cb.base = bitmap_new();
 	object_array_init(&cb.boundary);
 
+	repo = bitmap_repo(bitmap_git);
+
 	revs->ignore_missing_links = 1;
 
 	if (bitmap_git->pseudo_merges.nr) {
@@ -1280,19 +1293,19 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
 	 * revision walk to (a) OR in any bitmaps that are UNINTERESTING
 	 * between the tips and boundary, and (b) record the boundary.
 	 */
-	trace2_region_enter("pack-bitmap", "boundary-prepare", the_repository);
+	trace2_region_enter("pack-bitmap", "boundary-prepare", repo);
 	if (prepare_revision_walk(revs))
 		die("revision walk setup failed");
-	trace2_region_leave("pack-bitmap", "boundary-prepare", the_repository);
+	trace2_region_leave("pack-bitmap", "boundary-prepare", repo);
 
-	trace2_region_enter("pack-bitmap", "boundary-traverse", the_repository);
+	trace2_region_enter("pack-bitmap", "boundary-traverse", repo);
 	revs->boundary = 1;
 	traverse_commit_list_filtered(revs,
 				      show_boundary_commit,
 				      show_boundary_object,
 				      &cb, NULL);
 	revs->boundary = 0;
-	trace2_region_leave("pack-bitmap", "boundary-traverse", the_repository);
+	trace2_region_leave("pack-bitmap", "boundary-traverse", repo);
 
 	revs->blob_objects = tmp_blobs;
 	revs->tree_objects = tmp_trees;
@@ -1304,7 +1317,7 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
 	/*
 	 * Then add the boundary commit(s) as fill-in traversal tips.
 	 */
-	trace2_region_enter("pack-bitmap", "boundary-fill-in", the_repository);
+	trace2_region_enter("pack-bitmap", "boundary-fill-in", repo);
 	for (i = 0; i < cb.boundary.nr; i++) {
 		struct object *obj = cb.boundary.objects[i].item;
 		if (bitmap_walk_contains(bitmap_git, cb.base, &obj->oid))
@@ -1314,7 +1327,7 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
 	}
 	if (revs->pending.nr)
 		cb.base = fill_in_bitmap(bitmap_git, revs, cb.base, NULL);
-	trace2_region_leave("pack-bitmap", "boundary-fill-in", the_repository);
+	trace2_region_leave("pack-bitmap", "boundary-fill-in", repo);
 
 cleanup:
 	object_array_clear(&cb.boundary);
@@ -1718,7 +1731,8 @@ static unsigned long get_size_by_pos(struct bitmap_index *bitmap_git,
 			ofs = pack_pos_to_offset(pack, pos);
 		}
 
-		if (packed_object_info(the_repository, pack, ofs, &oi) < 0) {
+		if (packed_object_info(bitmap_repo(bitmap_git), pack, ofs,
+				       &oi) < 0) {
 			struct object_id oid;
 			nth_bitmap_object_oid(bitmap_git, &oid,
 					      pack_pos_to_index(pack, pos));
@@ -1727,7 +1741,8 @@ static unsigned long get_size_by_pos(struct bitmap_index *bitmap_git,
 	} else {
 		struct eindex *eindex = &bitmap_git->ext_index;
 		struct object *obj = eindex->objects[pos - bitmap_num_objects(bitmap_git)];
-		if (oid_object_info_extended(the_repository, &obj->oid, &oi, 0) < 0)
+		if (oid_object_info_extended(bitmap_repo(bitmap_git), &obj->oid,
+					     &oi, 0) < 0)
 			die(_("unable to get size of %s"), oid_to_hex(&obj->oid));
 	}
 
@@ -1889,7 +1904,8 @@ static void filter_packed_objects_from_bitmap(struct bitmap_index *bitmap_git,
 		bitmap_unset(result, i);
 
 	for (i = 0; i < eindex->count; ++i) {
-		if (has_object_pack(the_repository, &eindex->objects[i]->oid))
+		if (has_object_pack(bitmap_repo(bitmap_git),
+				    &eindex->objects[i]->oid))
 			bitmap_unset(result, objects_nr + i);
 	}
 }
@@ -1907,6 +1923,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
 	struct bitmap *haves_bitmap = NULL;
 
 	struct bitmap_index *bitmap_git;
+	struct repository *repo;
 
 	/*
 	 * We can't do pathspec limiting with bitmaps, because we don't know
@@ -1980,18 +1997,20 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
 	if (!use_boundary_traversal)
 		object_array_clear(&revs->pending);
 
+	repo = bitmap_repo(bitmap_git);
+
 	if (haves) {
 		if (use_boundary_traversal) {
-			trace2_region_enter("pack-bitmap", "haves/boundary", the_repository);
+			trace2_region_enter("pack-bitmap", "haves/boundary", repo);
 			haves_bitmap = find_boundary_objects(bitmap_git, revs, haves);
-			trace2_region_leave("pack-bitmap", "haves/boundary", the_repository);
+			trace2_region_leave("pack-bitmap", "haves/boundary", repo);
 		} else {
-			trace2_region_enter("pack-bitmap", "haves/classic", the_repository);
+			trace2_region_enter("pack-bitmap", "haves/classic", repo);
 			revs->ignore_missing_links = 1;
 			haves_bitmap = find_objects(bitmap_git, revs, haves, NULL);
 			reset_revision_walk();
 			revs->ignore_missing_links = 0;
-			trace2_region_leave("pack-bitmap", "haves/classic", the_repository);
+			trace2_region_leave("pack-bitmap", "haves/classic", repo);
 		}
 
 		if (!haves_bitmap)
@@ -2025,17 +2044,17 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
 	object_list_free(&wants);
 	object_list_free(&haves);
 
-	trace2_data_intmax("bitmap", the_repository, "pseudo_merges_satisfied",
+	trace2_data_intmax("bitmap", repo, "pseudo_merges_satisfied",
 			   pseudo_merges_satisfied_nr);
-	trace2_data_intmax("bitmap", the_repository, "pseudo_merges_cascades",
+	trace2_data_intmax("bitmap", repo, "pseudo_merges_cascades",
 			   pseudo_merges_cascades_nr);
-	trace2_data_intmax("bitmap", the_repository, "bitmap/hits",
+	trace2_data_intmax("bitmap", repo, "bitmap/hits",
 			   existing_bitmaps_hits_nr);
-	trace2_data_intmax("bitmap", the_repository, "bitmap/misses",
+	trace2_data_intmax("bitmap", repo, "bitmap/misses",
 			   existing_bitmaps_misses_nr);
-	trace2_data_intmax("bitmap", the_repository, "bitmap/roots_with_bitmap",
+	trace2_data_intmax("bitmap", repo, "bitmap/roots_with_bitmap",
 			   roots_with_bitmaps_nr);
-	trace2_data_intmax("bitmap", the_repository, "bitmap/roots_without_bitmap",
+	trace2_data_intmax("bitmap", repo, "bitmap/roots_without_bitmap",
 			   roots_without_bitmaps_nr);
 
 	return bitmap_git;
@@ -2256,7 +2275,7 @@ void reuse_partial_packfile_from_bitmap(struct bitmap_index *bitmap_git,
 					struct bitmap **reuse_out,
 					int multi_pack_reuse)
 {
-	struct repository *r = the_repository;
+	struct repository *r = bitmap_repo(bitmap_git);
 	struct bitmapped_pack *packs = NULL;
 	struct bitmap *result = bitmap_git->result;
 	struct bitmap *reuse;
@@ -2792,7 +2811,7 @@ int rebuild_bitmap(const uint32_t *reposition,
 uint32_t *create_bitmap_mapping(struct bitmap_index *bitmap_git,
 				struct packing_data *mapping)
 {
-	struct repository *r = the_repository;
+	struct repository *r = bitmap_repo(bitmap_git);
 	uint32_t i, num_objects;
 	uint32_t *reposition;
 
@@ -2948,7 +2967,8 @@ static off_t get_disk_usage_for_extended(struct bitmap_index *bitmap_git)
 				st_add(bitmap_num_objects(bitmap_git), i)))
 			continue;
 
-		if (oid_object_info_extended(the_repository, &obj->oid, &oi, 0) < 0)
+		if (oid_object_info_extended(bitmap_repo(bitmap_git), &obj->oid,
+					     &oi, 0) < 0)
 			die(_("unable to get disk usage of '%s'"),
 			    oid_to_hex(&obj->oid));
 
-- 
2.47.0


  parent reply	other threads:[~2024-11-07 14:10 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-21  9:57 [PATCH 00/20] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-21  9:57 ` [PATCH 01/20] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-21 21:06   ` Taylor Blau
2024-10-22  8:51     ` karthik nayak
2024-10-22 16:37       ` Taylor Blau
2024-10-21  9:57 ` [PATCH 02/20] packfile: pass down repository to `unuse_one_window` Karthik Nayak
2024-10-21 21:08   ` Taylor Blau
2024-10-21  9:57 ` [PATCH 03/20] packfile: pass down repository to `close_one_pack` Karthik Nayak
2024-10-21  9:57 ` [PATCH 04/20] packfile: pass down repository to `add_packed_git` Karthik Nayak
2024-10-21  9:57 ` [PATCH 05/20] packfile: pass down repository to `unpack_object_header` Karthik Nayak
2024-10-21  9:57 ` [PATCH 06/20] packfile: pass down repository to `get_delta_base` Karthik Nayak
2024-10-21  9:57 ` [PATCH 07/20] packfile: use provided repository in `packed_object_info` Karthik Nayak
2024-10-21  9:57 ` [PATCH 08/20] packfile: pass down repository to `unpack_compressed_entry` Karthik Nayak
2024-10-21  9:57 ` [PATCH 09/20] packfile: pass down repository to `nth_packed_object_id` Karthik Nayak
2024-10-21  9:57 ` [PATCH 10/20] packfile: pass down repository to `find_pack_entry_one` Karthik Nayak
2024-10-21  9:57 ` [PATCH 11/20] packfile: pass down repository to `fill_pack_entry` Karthik Nayak
2024-10-21  9:57 ` [PATCH 12/20] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-21  9:57 ` [PATCH 13/20] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-21  9:57 ` [PATCH 14/20] packfile: pass down repository to `is_promisor_object` Karthik Nayak
2024-10-21  9:57 ` [PATCH 15/20] object-store: pass down repository to `each_packed_object_fn` Karthik Nayak
2024-10-21  9:57 ` [PATCH 16/20] packfile: pass down repository to `open_pack_index` Karthik Nayak
2024-10-21  9:58 ` [PATCH 17/20] packfile: stop using 'the_hash_algo' Karthik Nayak
2024-10-21  9:58 ` [PATCH 18/20] packfile: pass down repository to `nth_packed_object_offset` Karthik Nayak
2024-10-21  9:58 ` [PATCH 19/20] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-21  9:58 ` [PATCH 20/20] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-21 21:03 ` [PATCH 00/20] packfile: avoid using the 'the_repository' global variable Taylor Blau
2024-10-27 21:23   ` karthik nayak
2024-10-27 23:54     ` Taylor Blau
2024-10-28  5:31     ` Jeff King
2024-10-28 13:36       ` karthik nayak
2024-10-28 15:21         ` Taylor Blau
2024-10-28 13:43 ` [PATCH v2 0/8] " Karthik Nayak
2024-10-28 13:43   ` [PATCH v2 1/8] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-28 16:05     ` Taylor Blau
2024-10-29 11:46       ` karthik nayak
2024-10-29 17:27         ` Taylor Blau
2024-10-28 13:43   ` [PATCH v2 2/8] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-28 16:08     ` Taylor Blau
2024-10-29 11:48       ` karthik nayak
2024-10-28 13:43   ` [PATCH v2 3/8] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-28 16:12     ` Taylor Blau
2024-10-28 13:43   ` [PATCH v2 4/8] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-28 16:14     ` Taylor Blau
2024-10-29  5:50     ` Jeff King
2024-10-29 12:45       ` karthik nayak
2024-10-29 17:33       ` Taylor Blau
2024-10-28 13:43   ` [PATCH v2 5/8] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-28 16:28     ` Taylor Blau
2024-10-29 16:03       ` karthik nayak
2024-10-28 13:43   ` [PATCH v2 6/8] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-28 13:43   ` [PATCH v2 7/8] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-28 16:38     ` me
2024-10-29 16:07       ` karthik nayak
2024-10-28 13:43   ` [PATCH v2 8/8] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-28 16:45     ` Taylor Blau
2024-10-29 16:09       ` karthik nayak
2024-10-29 17:48         ` Taylor Blau
2024-10-30 14:32 ` [PATCH v3 0/9] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-30 20:00     ` Taylor Blau
2024-10-30 14:32   ` [PATCH v3 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-30 14:32   ` [PATCH v3 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-10-30 20:13     ` Taylor Blau
2024-10-31  9:34       ` karthik nayak
2024-10-31  9:39 ` [PATCH v4 0/9] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-31  9:39   ` [PATCH v4 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-01 17:45     ` Jeff King
2024-11-01 19:00       ` Taylor Blau
2024-11-04  9:35       ` karthik nayak
2024-10-31  9:39   ` [PATCH v4 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-10-31 20:05   ` [PATCH v4 0/9] packfile: avoid using the 'the_repository' global variable Taylor Blau
2024-11-01 14:36     ` Taylor Blau
2024-11-01 16:07       ` karthik nayak
2024-11-01 17:29         ` Jeff King
2024-11-04  9:39           ` karthik nayak
2024-11-04 17:27             ` Jeff King
2024-11-04 11:41 ` [PATCH v5 " Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-04 11:41   ` [PATCH v5 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-04 17:38     ` Jeff King
2024-11-05  9:50       ` karthik nayak
2024-11-04 11:41   ` [PATCH v5 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-04 17:32   ` [PATCH v5 0/9] packfile: avoid using the 'the_repository' global variable Jeff King
2024-11-05  9:43     ` karthik nayak
2024-11-07 14:10 ` [PATCH v6 " Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-07 14:10   ` [PATCH v6 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-08  3:42     ` Junio C Hamano
2024-11-08  9:27       ` karthik nayak
2024-11-07 14:10   ` Karthik Nayak [this message]
2024-11-08  7:49   ` [PATCH v6 0/9] packfile: avoid using the 'the_repository' global variable Junio C Hamano
2024-11-08  9:28     ` karthik nayak
2024-11-11 11:14 ` [PATCH v7 " Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-13 12:41     ` Toon Claes
2024-11-13 13:04       ` karthik nayak
2024-11-13 23:56         ` Junio C Hamano
2024-11-14 10:04           ` karthik nayak
2024-11-20 22:30       ` Taylor Blau
2024-11-21 10:20         ` karthik nayak
2024-11-11 11:14   ` [PATCH v7 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-20 22:38     ` Taylor Blau
2024-11-20 22:48       ` [PATCH] packfile.c: remove unnecessary prepare_packed_git() call Taylor Blau
2024-11-21  9:13         ` Jeff King
2024-11-11 11:14   ` [PATCH v7 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-20 22:52     ` Taylor Blau
2024-11-21  9:06       ` Jeff King
2024-11-21 13:10       ` karthik nayak
2024-11-11 11:14   ` [PATCH v7 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-11 11:14   ` [PATCH v7 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-12  8:30   ` [PATCH v7 0/9] packfile: avoid using the 'the_repository' global variable Jeff King
2024-11-13 13:03     ` karthik nayak
2024-11-20 22:55   ` Taylor Blau
2024-11-21 13:12     ` karthik nayak
2024-11-22 10:08 ` [PATCH v8 00/10] " Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-26  7:25     ` Junio C Hamano
2024-11-26 10:54       ` karthik nayak
2024-11-22 10:08   ` [PATCH v8 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-22 10:08   ` [PATCH v8 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 00/10] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-27  9:24     ` Kristoffer Haugsbakk
2024-11-27 12:15       ` karthik nayak
2024-11-26 10:57   ` [PATCH v9 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-27  7:44     ` Kristoffer Haugsbakk
2024-11-27  9:09       ` karthik nayak
2024-11-26 10:57   ` [PATCH v9 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-26 10:57   ` [PATCH v9 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 00/10] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-12-03 14:43   ` [PATCH v10 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-12-03 14:43   ` [PATCH v10 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-12-03 14:43   ` [PATCH v10 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-12-03 14:43   ` [PATCH v10 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-12-03 14:43   ` [PATCH v10 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-12-03 14:44   ` [PATCH v10 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-12-03 14:44   ` [PATCH v10 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-12-03 14:44   ` [PATCH v10 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-12-03 14:44   ` [PATCH v10 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-12-03 14:44   ` [PATCH v10 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-12-03 16:46   ` [PATCH v10 00/10] packfile: avoid using the 'the_repository' global variable Kristoffer Haugsbakk
2024-12-03 23:24     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2f9a14697806d3d358b79f0863d2d03ce79d1da8.1730976185.git.karthik.188@gmail.com \
    --to=karthik.188@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=me@ttaylorr.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).