aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-09-23 12:17:02 +0200
committerJunio C Hamano <gitster@pobox.com>2025-09-24 11:53:49 -0700
commit3421cb56a8b37425f2a47695adfa4a29a06a9d2e (patch)
tree524592b533c9a18a441862ae4ddad3fe115a96d5
parent535b7a667a94d5882add829e30e20b6dfa076640 (diff)
downloadgit-3421cb56a8b37425f2a47695adfa4a29a06a9d2e.tar.xz
odb: move initialization bit into `struct packfile_store`
The object database knows to skip re-initializing the list of packfiles in case it's already been initialized. Whether or not that is the case is tracked via a separate `initialized` bit that is stored in the object database. With the introduction of the `struct packfile_store` we have a better place to host this bit though. Move it accordingly. While at it, convert the field into a boolean now that we're allowed to use them in our code base. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--odb.h6
-rw-r--r--packfile.c6
-rw-r--r--packfile.h6
3 files changed, 9 insertions, 9 deletions
diff --git a/odb.h b/odb.h
index 22a170b434..bf1b4d4677 100644
--- a/odb.h
+++ b/odb.h
@@ -170,12 +170,6 @@ struct object_database {
unsigned approximate_object_count_valid : 1;
/*
- * Whether packed_git has already been populated with this repository's
- * packs.
- */
- unsigned packed_git_initialized : 1;
-
- /*
* Submodule source paths that will be added as additional sources to
* allow lookup of submodule objects via the main object database.
*/
diff --git a/packfile.c b/packfile.c
index 36bc240107..f37557eac5 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1027,7 +1027,7 @@ static void prepare_packed_git(struct repository *r)
{
struct odb_source *source;
- if (r->objects->packed_git_initialized)
+ if (r->objects->packfiles->initialized)
return;
odb_prepare_alternates(r->objects);
@@ -1038,7 +1038,7 @@ static void prepare_packed_git(struct repository *r)
rearrange_packed_git(r);
prepare_packed_git_mru(r);
- r->objects->packed_git_initialized = 1;
+ r->objects->packfiles->initialized = true;
}
void reprepare_packed_git(struct repository *r)
@@ -1060,7 +1060,7 @@ void reprepare_packed_git(struct repository *r)
odb_clear_loose_cache(source);
r->objects->approximate_object_count_valid = 0;
- r->objects->packed_git_initialized = 0;
+ r->objects->packfiles->initialized = false;
prepare_packed_git(r);
obj_read_unlock();
}
diff --git a/packfile.h b/packfile.h
index d7ac8d24b4..cf81091175 100644
--- a/packfile.h
+++ b/packfile.h
@@ -63,6 +63,12 @@ struct packfile_store {
* the store.
*/
struct packed_git *packs;
+
+ /*
+ * Whether packfiles have already been populated with this store's
+ * packs.
+ */
+ bool initialized;
};
/*