diff options
| author | Patrick Steinhardt <ps@pks.im> | 2025-09-23 12:17:14 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-09-24 11:53:51 -0700 |
| commit | dd52a29b78d80e425be660f3b443a42e0374a7d1 (patch) | |
| tree | 31bb2e5fe7845ccc8776ff18c9b20b59d486e537 | |
| parent | packfile: refactor `get_all_packs()` to work on packfile store (diff) | |
| download | git-dd52a29b78d80e425be660f3b443a42e0374a7d1.tar.gz git-dd52a29b78d80e425be660f3b443a42e0374a7d1.zip | |
packfile: refactor `get_packed_git_mru()` to work on packfile store
The `get_packed_git_mru()` function prepares the packfile store and then
returns its packfiles in most-recently-used order. Refactor it to accept
a packfile store instead of a repository to clarify its scope.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/pack-objects.c | 4 | ||||
| -rw-r--r-- | packfile.c | 6 | ||||
| -rw-r--r-- | packfile.h | 7 |
3 files changed, 10 insertions, 7 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index de351b757a..61bbbdfb83 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -1748,12 +1748,12 @@ static int want_object_in_pack_mtime(const struct object_id *oid, } } - list_for_each(pos, get_packed_git_mru(the_repository)) { + list_for_each(pos, packfile_store_get_packs_mru(the_repository->objects->packfiles)) { struct packed_git *p = list_entry(pos, struct packed_git, mru); want = want_object_in_pack_one(p, oid, exclude, found_pack, found_offset, found_mtime); if (!exclude && want > 0) list_move(&p->mru, - get_packed_git_mru(the_repository)); + packfile_store_get_packs_mru(the_repository->objects->packfiles)); if (want != -1) return want; } diff --git a/packfile.c b/packfile.c index cd5431b6aa..5a7caec292 100644 --- a/packfile.c +++ b/packfile.c @@ -1048,10 +1048,10 @@ struct packed_git *packfile_store_get_all_packs(struct packfile_store *store) return store->packs; } -struct list_head *get_packed_git_mru(struct repository *r) +struct list_head *packfile_store_get_packs_mru(struct packfile_store *store) { - packfile_store_prepare(r->objects->packfiles); - return &r->objects->packfiles->mru; + packfile_store_prepare(store); + return &store->mru; } /* diff --git a/packfile.h b/packfile.h index 1afb9cd664..e7a5792b6c 100644 --- a/packfile.h +++ b/packfile.h @@ -149,6 +149,11 @@ struct packed_git *packfile_store_get_packs(struct packfile_store *store); struct packed_git *packfile_store_get_all_packs(struct packfile_store *store); /* + * Get all packs in most-recently-used order. + */ +struct list_head *packfile_store_get_packs_mru(struct packfile_store *store); + +/* * Open the packfile and add it to the store if it isn't yet known. Returns * either the newly opened packfile or the preexisting packfile. Returns a * `NULL` pointer in case the packfile could not be opened. @@ -232,8 +237,6 @@ int for_each_packed_object(struct repository *repo, each_packed_object_fn cb, #define PACKDIR_FILE_GARBAGE 4 extern void (*report_garbage)(unsigned seen_bits, const char *path); -struct list_head *get_packed_git_mru(struct repository *r); - /* * Give a rough count of objects in the repository. This sacrifices accuracy * for speed. |
