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>next
parent
d2779beb36
commit
dd52a29b78
|
@ -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);
|
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);
|
want = want_object_in_pack_one(p, oid, exclude, found_pack, found_offset, found_mtime);
|
||||||
if (!exclude && want > 0)
|
if (!exclude && want > 0)
|
||||||
list_move(&p->mru,
|
list_move(&p->mru,
|
||||||
get_packed_git_mru(the_repository));
|
packfile_store_get_packs_mru(the_repository->objects->packfiles));
|
||||||
if (want != -1)
|
if (want != -1)
|
||||||
return want;
|
return want;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1048,10 +1048,10 @@ struct packed_git *packfile_store_get_all_packs(struct packfile_store *store)
|
||||||
return store->packs;
|
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);
|
packfile_store_prepare(store);
|
||||||
return &r->objects->packfiles->mru;
|
return &store->mru;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -148,6 +148,11 @@ struct packed_git *packfile_store_get_packs(struct packfile_store *store);
|
||||||
*/
|
*/
|
||||||
struct packed_git *packfile_store_get_all_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
|
* 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
|
* either the newly opened packfile or the preexisting packfile. Returns a
|
||||||
|
@ -232,8 +237,6 @@ int for_each_packed_object(struct repository *repo, each_packed_object_fn cb,
|
||||||
#define PACKDIR_FILE_GARBAGE 4
|
#define PACKDIR_FILE_GARBAGE 4
|
||||||
extern void (*report_garbage)(unsigned seen_bits, const char *path);
|
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
|
* Give a rough count of objects in the repository. This sacrifices accuracy
|
||||||
* for speed.
|
* for speed.
|
||||||
|
|
Loading…
Reference in New Issue