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

[PATCH v7 6/9] packfile: pass down repository to `for_each_packed_object`

From
Karthik Nayak <karthik.188@gmail.com>
Date
Nov 11, 2024, 11:14 UTC
Message-ID
<1b26e45a9b4952da03ad0e2fbc0fa22bc1f5b447.1731323350.git.karthik.188@gmail.com>
In-Reply-To
<cover.1731323350.git.karthik.188@gmail.com>

The function `for_each_packed_object` currently relies on the global variable `the_repository`. To eliminate global variable usage in `packfile.c`, we should progressively shift the dependency on the_repository to higher layers. Let's remove its usage from this function and closely related function `is_promisor_object`.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
 builtin/cat-file.c     |  7 ++++---
 builtin/fsck.c         | 18 +++++++++++-------
 builtin/pack-objects.c |  7 +++++--
 builtin/repack.c       |  2 +-
 builtin/rev-list.c     |  2 +-
 commit-graph.c         |  2 +-
 fsck.c                 |  2 +-
 list-objects.c         |  4 ++--
 object-store-ll.h      |  4 ++--
 packfile.c             | 14 +++++++-------
 packfile.h             |  2 +-
 promisor-remote.c      |  2 +-
 reachable.c            |  2 +-
 revision.c             |  9 +++++----
 tag.c                  |  2 +-
 15 files changed, 44 insertions(+), 35 deletions(-)
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index bfdfb51c7c..d67b101c20 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -827,15 +827,16 @@ static int batch_objects(struct batch_options *opt)
 			cb.seen = &seen;
 
 			for_each_loose_object(batch_unordered_loose, &cb, 0);
-			for_each_packed_object(batch_unordered_packed, &cb,
-					       FOR_EACH_OBJECT_PACK_ORDER);
+			for_each_packed_object(the_repository, batch_unordered_packed,
+					       &cb, FOR_EACH_OBJECT_PACK_ORDER);
 
 			oidset_clear(&seen);
 		} else {
 			struct oid_array sa = OID_ARRAY_INIT;
 
 			for_each_loose_object(collect_loose_object, &sa, 0);
-			for_each_packed_object(collect_packed_object, &sa, 0);
+			for_each_packed_object(the_repository, collect_packed_object,
+					       &sa, 0);
 
 			oid_array_for_each_unique(&sa, batch_object_cb, &cb);
 
diff --git a/builtin/fsck.c b/builtin/fsck.c
index bb56eb98ac..0196c54eb6 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -150,7 +150,7 @@ static int mark_object(struct object *obj, enum object_type type,
 		return 0;
 	obj->flags |= REACHABLE;
 
-	if (is_promisor_object(&obj->oid))
+	if (is_promisor_object(the_repository, &obj->oid))
 		/*
 		 * Further recursion does not need to be performed on this
 		 * object since it is a promisor object (so it does not need to
@@ -270,7 +270,7 @@ static void check_reachable_object(struct object *obj)
 	 * do a full fsck
 	 */
 	if (!(obj->flags & HAS_OBJ)) {
-		if (is_promisor_object(&obj->oid))
+		if (is_promisor_object(the_repository, &obj->oid))
 			return;
 		if (has_object_pack(the_repository, &obj->oid))
 			return; /* it is in pack - forget about it */
@@ -391,7 +391,10 @@ static void check_connectivity(void)
 		 * traversal.
 		 */
 		for_each_loose_object(mark_loose_unreachable_referents, NULL, 0);
-		for_each_packed_object(mark_packed_unreachable_referents, NULL, 0);
+		for_each_packed_object(the_repository,
+				       mark_packed_unreachable_referents,
+				       NULL,
+				       0);
 	}
 
 	/* Look up all the requirements, warn about missing objects.. */
@@ -488,7 +491,7 @@ static void fsck_handle_reflog_oid(const char *refname, struct object_id *oid,
 						     refname, timestamp);
 			obj->flags |= USED;
 			mark_object_reachable(obj);
-		} else if (!is_promisor_object(oid)) {
+		} else if (!is_promisor_object(the_repository, oid)) {
 			error(_("%s: invalid reflog entry %s"),
 			      refname, oid_to_hex(oid));
 			errors_found |= ERROR_REACHABLE;
@@ -531,7 +534,7 @@ static int fsck_handle_ref(const char *refname, const char *referent UNUSED, con
 
 	obj = parse_object(the_repository, oid);
 	if (!obj) {
-		if (is_promisor_object(oid)) {
+		if (is_promisor_object(the_repository, oid)) {
 			/*
 			 * Increment default_refs anyway, because this is a
 			 * valid ref.
@@ -966,7 +969,8 @@ int cmd_fsck(int argc,
 
 	if (connectivity_only) {
 		for_each_loose_object(mark_loose_for_connectivity, NULL, 0);
-		for_each_packed_object(mark_packed_for_connectivity, NULL, 0);
+		for_each_packed_object(the_repository,
+				       mark_packed_for_connectivity, NULL, 0);
 	} else {
 		prepare_alt_odb(the_repository);
 		for (odb = the_repository->objects->odb; odb; odb = odb->next)
@@ -1011,7 +1015,7 @@ int cmd_fsck(int argc,
 							   &oid);
 
 			if (!obj || !(obj->flags & HAS_OBJ)) {
-				if (is_promisor_object(&oid))
+				if (is_promisor_object(the_repository, &oid))
 					continue;
 				error(_("%s: object missing"), oid_to_hex(&oid));
 				errors_found |= ERROR_OBJECT;
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 0f32e92a3a..db20f0cf51 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -3858,7 +3858,8 @@ static void show_object__ma_allow_promisor(struct object *obj, const char *name,
 	 * Quietly ignore EXPECTED missing objects.  This avoids problems with
 	 * staging them now and getting an odd error later.
 	 */
-	if (!has_object(the_repository, &obj->oid, 0) && is_promisor_object(&obj->oid))
+	if (!has_object(the_repository, &obj->oid, 0) &&
+	    is_promisor_object(to_pack.repo, &obj->oid))
 		return;
 
 	show_object(obj, name, data);
@@ -3927,7 +3928,9 @@ static int add_object_in_unpacked_pack(const struct object_id *oid,
 
 static void add_objects_in_unpacked_packs(void)
 {
-	if (for_each_packed_object(add_object_in_unpacked_pack, NULL,
+	if (for_each_packed_object(to_pack.repo,
+				   add_object_in_unpacked_pack,
+				   NULL,
 				   FOR_EACH_OBJECT_PACK_ORDER |
 				   FOR_EACH_OBJECT_LOCAL_ONLY |
 				   FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS |
diff --git a/builtin/repack.c b/builtin/repack.c
index d6bb37e84a..96a4fa234b 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -404,7 +404,7 @@ static void repack_promisor_objects(const struct pack_objects_args *args,
 	 * {type -> existing pack order} ordering when computing deltas instead
 	 * of a {type -> size} ordering, which may produce better deltas.
 	 */
-	for_each_packed_object(write_oid, &cmd,
+	for_each_packed_object(the_repository, write_oid, &cmd,
 			       FOR_EACH_OBJECT_PROMISOR_ONLY);
 
 	if (cmd.in == -1) {
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index f62bcbf2b1..43c42621e3 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -121,7 +121,7 @@ static inline void finish_object__ma(struct object *obj)
 		return;
 
 	case MA_ALLOW_PROMISOR:
-		if (is_promisor_object(&obj->oid))
+		if (is_promisor_object(the_repository, &obj->oid))
 			return;
 		die("unexpected missing %s object '%s'",
 		    type_name(obj->type), oid_to_hex(&obj->oid));
diff --git a/commit-graph.c b/commit-graph.c
index 83dd69bfeb..e2e2083951 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -1960,7 +1960,7 @@ static void fill_oids_from_all_packs(struct write_commit_graph_context *ctx)
 		ctx->progress = start_delayed_progress(
 			_("Finding commits for commit graph among packed objects"),
 			ctx->approx_nr_objects);
-	for_each_packed_object(add_packed_commits, ctx,
+	for_each_packed_object(ctx->r, add_packed_commits, ctx,
 			       FOR_EACH_OBJECT_PACK_ORDER);
 	if (ctx->progress_done < ctx->approx_nr_objects)
 		display_progress(ctx->progress, ctx->approx_nr_objects);
diff --git a/fsck.c b/fsck.c
index 3756f52459..87ce999a49 100644
--- a/fsck.c
+++ b/fsck.c
@@ -1295,7 +1295,7 @@ static int fsck_blobs(struct oidset *blobs_found, struct oidset *blobs_done,
 
 		buf = repo_read_object_file(the_repository, oid, &type, &size);
 		if (!buf) {
-			if (is_promisor_object(oid))
+			if (is_promisor_object(the_repository, oid))
 				continue;
 			ret |= report(options,
 				      oid, OBJ_BLOB, msg_missing,
diff --git a/list-objects.c b/list-objects.c
index 31236a8dc9..d11a389b3a 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -75,7 +75,7 @@ static void process_blob(struct traversal_context *ctx,
 	 */
 	if (ctx->revs->exclude_promisor_objects &&
 	    !repo_has_object_file(the_repository, &obj->oid) &&
-	    is_promisor_object(&obj->oid))
+	    is_promisor_object(ctx->revs->repo, &obj->oid))
 		return;
 
 	pathlen = path->len;
@@ -180,7 +180,7 @@ static void process_tree(struct traversal_context *ctx,
 		 * an incomplete list of missing objects.
 		 */
 		if (revs->exclude_promisor_objects &&
-		    is_promisor_object(&obj->oid))
+		    is_promisor_object(revs->repo, &obj->oid))
 			return;
 
 		if (!revs->do_not_die_on_missing_objects)
diff --git a/object-store-ll.h b/object-store-ll.h
index 538f2c60cb..bcfae2e1bf 100644
--- a/object-store-ll.h
+++ b/object-store-ll.h
@@ -550,7 +550,7 @@ typedef int each_packed_object_fn(const struct object_id *oid,
 int for_each_object_in_pack(struct packed_git *p,
 			    each_packed_object_fn, void *data,
 			    enum for_each_object_flags flags);
-int for_each_packed_object(each_packed_object_fn, void *,
-			   enum for_each_object_flags flags);
+int for_each_packed_object(struct repository *repo, each_packed_object_fn cb,
+			   void *data, enum for_each_object_flags flags);
 
 #endif /* OBJECT_STORE_LL_H */
diff --git a/packfile.c b/packfile.c
index e7dd270217..5e8019b1fe 100644
--- a/packfile.c
+++ b/packfile.c
@@ -2200,15 +2200,15 @@ int for_each_object_in_pack(struct packed_git *p,
 	return r;
 }
 
-int for_each_packed_object(each_packed_object_fn cb, void *data,
-			   enum for_each_object_flags flags)
+int for_each_packed_object(struct repository *repo, each_packed_object_fn cb,
+			   void *data, enum for_each_object_flags flags)
 {
 	struct packed_git *p;
 	int r = 0;
 	int pack_errors = 0;
 
-	prepare_packed_git(the_repository);
-	for (p = get_all_packs(the_repository); p; p = p->next) {
+	prepare_packed_git(repo);
+	for (p = get_all_packs(repo); p; p = p->next) {
 		if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
 			continue;
 		if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
@@ -2286,14 +2286,14 @@ static int add_promisor_object(const struct object_id *oid,
 	return 0;
 }
 
-int is_promisor_object(const struct object_id *oid)
+int is_promisor_object(struct repository *r, const struct object_id *oid)
 {
 	static struct oidset promisor_objects;
 	static int promisor_objects_prepared;
 
 	if (!promisor_objects_prepared) {
-		if (repo_has_promisor_remote(the_repository)) {
-			for_each_packed_object(add_promisor_object,
+		if (repo_has_promisor_remote(r)) {
+			for_each_packed_object(r, add_promisor_object,
 					       &promisor_objects,
 					       FOR_EACH_OBJECT_PROMISOR_ONLY |
 					       FOR_EACH_OBJECT_PACK_ORDER);
diff --git a/packfile.h b/packfile.h
index b09fb2c530..addb95b0c4 100644
--- a/packfile.h
+++ b/packfile.h
@@ -201,7 +201,7 @@ int has_object_kept_pack(struct repository *r, const struct object_id *oid,
  * Return 1 if an object in a promisor packfile is or refers to the given
  * object, 0 otherwise.
  */
-int is_promisor_object(const struct object_id *oid);
+int is_promisor_object(struct repository *r, const struct object_id *oid);
 
 /*
  * Expose a function for fuzz testing.
diff --git a/promisor-remote.c b/promisor-remote.c
index 9345ae3db2..c714f4f007 100644
--- a/promisor-remote.c
+++ b/promisor-remote.c
@@ -283,7 +283,7 @@ void promisor_remote_get_direct(struct repository *repo,
 	}
 
 	for (i = 0; i < remaining_nr; i++) {
-		if (is_promisor_object(&remaining_oids[i]))
+		if (is_promisor_object(repo, &remaining_oids[i]))
 			die(_("could not fetch %s from promisor remote"),
 			    oid_to_hex(&remaining_oids[i]));
 	}
diff --git a/reachable.c b/reachable.c
index 09d2c50079..ecf7ccf504 100644
--- a/reachable.c
+++ b/reachable.c
@@ -324,7 +324,7 @@ int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
 	if (ignore_in_core_kept_packs)
 		flags |= FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS;
 
-	r = for_each_packed_object(add_recent_packed, &data, flags);
+	r = for_each_packed_object(revs->repo, add_recent_packed, &data, flags);
 
 done:
 	oidset_clear(&data.extra_recent_oids);
diff --git a/revision.c b/revision.c
index d1d152a67b..45dc6d2819 100644
--- a/revision.c
+++ b/revision.c
@@ -390,7 +390,8 @@ static struct object *get_reference(struct rev_info *revs, const char *name,
 	if (!object) {
 		if (revs->ignore_missing)
 			return NULL;
-		if (revs->exclude_promisor_objects && is_promisor_object(oid))
+		if (revs->exclude_promisor_objects &&
+		    is_promisor_object(revs->repo, oid))
 			return NULL;
 		if (revs->do_not_die_on_missing_objects) {
 			oidset_insert(&revs->missing_commits, oid);
@@ -432,7 +433,7 @@ static struct commit *handle_commit(struct rev_info *revs,
 			if (revs->ignore_missing_links || (flags & UNINTERESTING))
 				return NULL;
 			if (revs->exclude_promisor_objects &&
-			    is_promisor_object(&tag->tagged->oid))
+			    is_promisor_object(revs->repo, &tag->tagged->oid))
 				return NULL;
 			if (revs->do_not_die_on_missing_objects && oid) {
 				oidset_insert(&revs->missing_commits, oid);
@@ -1211,7 +1212,7 @@ static int process_parents(struct rev_info *revs, struct commit *commit,
 			     revs->do_not_die_on_missing_objects;
 		if (repo_parse_commit_gently(revs->repo, p, gently) < 0) {
 			if (revs->exclude_promisor_objects &&
-			    is_promisor_object(&p->object.oid)) {
+			    is_promisor_object(revs->repo, &p->object.oid)) {
 				if (revs->first_parent_only)
 					break;
 				continue;
@@ -3915,7 +3916,7 @@ int prepare_revision_walk(struct rev_info *revs)
 		revs->treesame.name = "treesame";
 
 	if (revs->exclude_promisor_objects) {
-		for_each_packed_object(mark_uninteresting, revs,
+		for_each_packed_object(revs->repo, mark_uninteresting, revs,
 				       FOR_EACH_OBJECT_PROMISOR_ONLY);
 	}
 
diff --git a/tag.c b/tag.c
index d24170e340..beef9571b5 100644
--- a/tag.c
+++ b/tag.c
@@ -84,7 +84,7 @@ struct object *deref_tag(struct repository *r, struct object *o, const char *war
 			o = NULL;
 		}
 	if (!o && warn) {
-		if (last_oid && is_promisor_object(last_oid))
+		if (last_oid && is_promisor_object(r, last_oid))
 			return NULL;
 		if (!warnlen)
 			warnlen = strlen(warn);
-- 
2.47.0
Previous: Karthik NayakNext: Taylor Blau
Message 117 of 171 in “packfile: avoid using the 'the_repository' global variable”
  1. 00/20 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Oct 21, 2024
  2. 01/20 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Oct 21, 2024
  3. Taylor BlauOct 21, 2024
  4. karthik nayakOct 22, 2024
  5. Taylor BlauOct 22, 2024
  6. 02/20 packfile: pass down repository to `unuse_one_window`Karthik Nayak, Oct 21, 2024
  7. Taylor BlauOct 21, 2024
  8. 03/20 packfile: pass down repository to `close_one_pack`Karthik Nayak, Oct 21, 2024
  9. 04/20 packfile: pass down repository to `add_packed_git`Karthik Nayak, Oct 21, 2024
  10. 05/20 packfile: pass down repository to `unpack_object_header`Karthik Nayak, Oct 21, 2024
  11. 06/20 packfile: pass down repository to `get_delta_base`Karthik Nayak, Oct 21, 2024
  12. 07/20 packfile: use provided repository in `packed_object_info`Karthik Nayak, Oct 21, 2024
  13. 08/20 packfile: pass down repository to `unpack_compressed_entry`Karthik Nayak, Oct 21, 2024
  14. 09/20 packfile: pass down repository to `nth_packed_object_id`Karthik Nayak, Oct 21, 2024
  15. 10/20 packfile: pass down repository to `find_pack_entry_one`Karthik Nayak, Oct 21, 2024
  16. 11/20 packfile: pass down repository to `fill_pack_entry`Karthik Nayak, Oct 21, 2024
  17. 12/20 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Oct 21, 2024
  18. 13/20 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Oct 21, 2024
  19. 14/20 packfile: pass down repository to `is_promisor_object`Karthik Nayak, Oct 21, 2024
  20. 15/20 object-store: pass down repository to `each_packed_object_fn`Karthik Nayak, Oct 21, 2024
  21. 16/20 packfile: pass down repository to `open_pack_index`Karthik Nayak, Oct 21, 2024
  22. 17/20 packfile: stop using 'the_hash_algo'Karthik Nayak, Oct 21, 2024
  23. 18/20 packfile: pass down repository to `nth_packed_object_offset`Karthik Nayak, Oct 21, 2024
  24. 19/20 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Oct 21, 2024
  25. 20/20 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Oct 21, 2024
  26. Taylor BlauOct 21, 2024
  27. karthik nayakOct 27, 2024
  28. Taylor BlauOct 27, 2024
  29. Jeff KingOct 28, 2024
  30. karthik nayakOct 28, 2024
  31. Taylor BlauOct 28, 2024
  32. 0/8 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Oct 28, 2024
  33. 1/8 packfile: add repository to struct `packed_git`Karthik Nayak, Oct 28, 2024
  34. Taylor BlauOct 28, 2024
  35. karthik nayakOct 29, 2024
  36. Taylor BlauOct 29, 2024
  37. 2/8 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Oct 28, 2024
  38. Taylor BlauOct 28, 2024
  39. karthik nayakOct 29, 2024
  40. 3/8 packfile: pass `repository` to static function in the fileKarthik Nayak, Oct 28, 2024
  41. Taylor BlauOct 28, 2024
  42. 5/8 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Oct 28, 2024
  43. Taylor BlauOct 28, 2024
  44. karthik nayakOct 29, 2024
  45. 4/8 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Oct 28, 2024
  46. Taylor BlauOct 28, 2024
  47. Jeff KingOct 29, 2024
  48. karthik nayakOct 29, 2024
  49. Taylor BlauOct 29, 2024
  50. 6/8 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Oct 28, 2024
  51. 7/8 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Oct 28, 2024
  52. me@ttaylorr.comOct 28, 2024
  53. karthik nayakOct 29, 2024
  54. 8/8 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Oct 28, 2024
  55. Taylor BlauOct 28, 2024
  56. karthik nayakOct 29, 2024
  57. Taylor BlauOct 29, 2024
  58. 0/9 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Oct 31, 2024
  59. 1/9 packfile: add repository to struct `packed_git`Karthik Nayak, Oct 31, 2024
  60. 2/9 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Oct 31, 2024
  61. 3/9 packfile: pass `repository` to static function in the fileKarthik Nayak, Oct 31, 2024
  62. 4/9 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Oct 31, 2024
  63. 5/9 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Oct 31, 2024
  64. 6/9 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Oct 31, 2024
  65. 7/9 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Oct 31, 2024
  66. 8/9 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Oct 31, 2024
  67. Jeff KingNov 1, 2024
  68. Taylor BlauNov 1, 2024
  69. karthik nayakNov 4, 2024
  70. 9/9 midx: add repository to `multi_pack_index` structKarthik Nayak, Oct 31, 2024
  71. Taylor BlauOct 31, 2024
  72. Taylor BlauNov 1, 2024
  73. karthik nayakNov 1, 2024
  74. Jeff KingNov 1, 2024
  75. karthik nayakNov 4, 2024
  76. Jeff KingNov 4, 2024
  77. 0/9 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Nov 4, 2024
  78. 1/9 packfile: add repository to struct `packed_git`Karthik Nayak, Nov 4, 2024
  79. 2/9 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Nov 4, 2024
  80. 3/9 packfile: pass `repository` to static function in the fileKarthik Nayak, Nov 4, 2024
  81. 4/9 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Nov 4, 2024
  82. 5/9 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Nov 4, 2024
  83. 6/9 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Nov 4, 2024
  84. 7/9 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Nov 4, 2024
  85. 8/9 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Nov 4, 2024
  86. Jeff KingNov 4, 2024
  87. karthik nayakNov 5, 2024
  88. 9/9 midx: add repository to `multi_pack_index` structKarthik Nayak, Nov 4, 2024
  89. Jeff KingNov 4, 2024
  90. karthik nayakNov 5, 2024
  91. 0/9 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Nov 7, 2024
  92. 1/9 packfile: add repository to struct `packed_git`Karthik Nayak, Nov 7, 2024
  93. 2/9 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Nov 7, 2024
  94. 3/9 packfile: pass `repository` to static function in the fileKarthik Nayak, Nov 7, 2024
  95. 4/9 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Nov 7, 2024
  96. 5/9 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Nov 7, 2024
  97. 6/9 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Nov 7, 2024
  98. 7/9 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Nov 7, 2024
  99. 8/9 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Nov 7, 2024
  100. Junio C HamanoNov 8, 2024
  101. karthik nayakNov 8, 2024
  102. 9/9 midx: add repository to `multi_pack_index` structKarthik Nayak, Nov 7, 2024
  103. Junio C HamanoNov 8, 2024
  104. karthik nayakNov 8, 2024
  105. 0/9 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Nov 11, 2024
  106. 1/9 packfile: add repository to struct `packed_git`Karthik Nayak, Nov 11, 2024
  107. Toon ClaesNov 13, 2024
  108. karthik nayakNov 13, 2024
  109. Junio C HamanoNov 13, 2024
  110. karthik nayakNov 14, 2024
  111. Taylor BlauNov 20, 2024
  112. karthik nayakNov 21, 2024
  113. 2/9 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Nov 11, 2024
  114. 3/9 packfile: pass `repository` to static function in the fileKarthik Nayak, Nov 11, 2024
  115. 5/9 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Nov 11, 2024
  116. 4/9 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Nov 11, 2024
  117. 6/9 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Nov 11, 2024
  118. Taylor BlauNov 20, 2024
  119. packfile.c: remove unnecessary prepare_packed_git() callTaylor Blau, Nov 20, 2024
  120. Jeff KingNov 21, 2024
  121. 7/9 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Nov 11, 2024
  122. Taylor BlauNov 20, 2024
  123. Jeff KingNov 21, 2024
  124. karthik nayakNov 21, 2024
  125. 8/9 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Nov 11, 2024
  126. 9/9 midx: add repository to `multi_pack_index` structKarthik Nayak, Nov 11, 2024
  127. Jeff KingNov 12, 2024
  128. karthik nayakNov 13, 2024
  129. Taylor BlauNov 20, 2024
  130. karthik nayakNov 21, 2024
  131. 00/10 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Nov 22, 2024
  132. 01/10 packfile: add repository to struct `packed_git`Karthik Nayak, Nov 22, 2024
  133. 03/10 packfile: pass `repository` to static function in the fileKarthik Nayak, Nov 22, 2024
  134. 02/10 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Nov 22, 2024
  135. 04/10 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Nov 22, 2024
  136. 05/10 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Nov 22, 2024
  137. 06/10 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Nov 22, 2024
  138. 07/10 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Nov 22, 2024
  139. Junio C HamanoNov 26, 2024
  140. karthik nayakNov 26, 2024
  141. 08/10 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Nov 22, 2024
  142. 09/10 midx: add repository to `multi_pack_index` structKarthik Nayak, Nov 22, 2024
  143. 10/10 packfile.c: remove unnecessary prepare_packed_git() callKarthik Nayak, Nov 22, 2024
  144. 00/10 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Nov 26, 2024
  145. 01/10 packfile: add repository to struct `packed_git`Karthik Nayak, Nov 26, 2024
  146. Kristoffer HaugsbakkNov 27, 2024
  147. karthik nayakNov 27, 2024
  148. 02/10 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Nov 26, 2024
  149. 03/10 packfile: pass `repository` to static function in the fileKarthik Nayak, Nov 26, 2024
  150. Kristoffer HaugsbakkNov 27, 2024
  151. karthik nayakNov 27, 2024
  152. 04/10 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Nov 26, 2024
  153. 05/10 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Nov 26, 2024
  154. 06/10 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Nov 26, 2024
  155. 08/10 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Nov 26, 2024
  156. 07/10 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Nov 26, 2024
  157. 09/10 midx: add repository to `multi_pack_index` structKarthik Nayak, Nov 26, 2024
  158. 10/10 packfile.c: remove unnecessary prepare_packed_git() callKarthik Nayak, Nov 26, 2024
  159. 00/10 packfile: avoid using the 'the_repository' global variableKarthik Nayak, Dec 3, 2024
  160. 01/10 packfile: add repository to struct `packed_git`Karthik Nayak, Dec 3, 2024
  161. 02/10 packfile: use `repository` from `packed_git` directlyKarthik Nayak, Dec 3, 2024
  162. 03/10 packfile: pass `repository` to static function in the fileKarthik Nayak, Dec 3, 2024
  163. 04/10 packfile: pass down repository to `odb_pack_name`Karthik Nayak, Dec 3, 2024
  164. 05/10 packfile: pass down repository to `has_object[_kept]_pack`Karthik Nayak, Dec 3, 2024
  165. 06/10 packfile: pass down repository to `for_each_packed_object`Karthik Nayak, Dec 3, 2024
  166. 07/10 config: make `delta_base_cache_limit` a non-global variableKarthik Nayak, Dec 3, 2024
  167. 08/10 config: make `packed_git_(limit|window_size)` non-global variablesKarthik Nayak, Dec 3, 2024
  168. 10/10 packfile.c: remove unnecessary prepare_packed_git() callKarthik Nayak, Dec 3, 2024
  169. 09/10 midx: add repository to `multi_pack_index` structKarthik Nayak, Dec 3, 2024
  170. Kristoffer HaugsbakkDec 3, 2024
  171. Junio C HamanoDec 3, 2024

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.