mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
packfile: move get_multi_pack_index() into "midx.c"
The `get_multi_pack_index()` function is declared and implemented in the packfile subsystem, even though it really belongs into the multi-pack index subsystem. The reason for this is likely that it needs to call `packfile_store_prepare()`, which is not exposed by the packfile system. In a subsequent commit we're about to add another caller outside of the packfile system though, so we'll have to expose the function anyway. Do so now already and move `get_multi_pack_index()` into the MIDX subsystem. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
d67530f6bb
commit
ab8aff4a6b
6
midx.c
6
midx.c
@@ -93,6 +93,12 @@ static int midx_read_object_offsets(const unsigned char *chunk_start,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct multi_pack_index *get_multi_pack_index(struct odb_source *source)
|
||||||
|
{
|
||||||
|
packfile_store_prepare(source->odb->packfiles);
|
||||||
|
return source->midx;
|
||||||
|
}
|
||||||
|
|
||||||
static struct multi_pack_index *load_multi_pack_index_one(struct odb_source *source,
|
static struct multi_pack_index *load_multi_pack_index_one(struct odb_source *source,
|
||||||
const char *midx_name)
|
const char *midx_name)
|
||||||
{
|
{
|
||||||
|
|||||||
1
midx.h
1
midx.h
@@ -94,6 +94,7 @@ void get_midx_chain_filename(struct odb_source *source, struct strbuf *out);
|
|||||||
void get_split_midx_filename_ext(struct odb_source *source, struct strbuf *buf,
|
void get_split_midx_filename_ext(struct odb_source *source, struct strbuf *buf,
|
||||||
const unsigned char *hash, const char *ext);
|
const unsigned char *hash, const char *ext);
|
||||||
|
|
||||||
|
struct multi_pack_index *get_multi_pack_index(struct odb_source *source);
|
||||||
struct multi_pack_index *load_multi_pack_index(struct odb_source *source);
|
struct multi_pack_index *load_multi_pack_index(struct odb_source *source);
|
||||||
int prepare_midx_pack(struct multi_pack_index *m, uint32_t pack_int_id);
|
int prepare_midx_pack(struct multi_pack_index *m, uint32_t pack_int_id);
|
||||||
struct packed_git *nth_midxed_pack(struct multi_pack_index *m,
|
struct packed_git *nth_midxed_pack(struct multi_pack_index *m,
|
||||||
|
|||||||
@@ -1003,7 +1003,7 @@ static void packfile_store_prepare_mru(struct packfile_store *store)
|
|||||||
list_add_tail(&p->mru, &store->mru);
|
list_add_tail(&p->mru, &store->mru);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void packfile_store_prepare(struct packfile_store *store)
|
void packfile_store_prepare(struct packfile_store *store)
|
||||||
{
|
{
|
||||||
struct odb_source *source;
|
struct odb_source *source;
|
||||||
|
|
||||||
@@ -1033,12 +1033,6 @@ struct packed_git *get_packed_git(struct repository *r)
|
|||||||
return r->objects->packfiles->packs;
|
return r->objects->packfiles->packs;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct multi_pack_index *get_multi_pack_index(struct odb_source *source)
|
|
||||||
{
|
|
||||||
packfile_store_prepare(source->odb->packfiles);
|
|
||||||
return source->midx;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct packed_git *get_all_packs(struct repository *r)
|
struct packed_git *get_all_packs(struct repository *r)
|
||||||
{
|
{
|
||||||
packfile_store_prepare(r->objects->packfiles);
|
packfile_store_prepare(r->objects->packfiles);
|
||||||
|
|||||||
10
packfile.h
10
packfile.h
@@ -112,6 +112,15 @@ void packfile_store_free(struct packfile_store *store);
|
|||||||
*/
|
*/
|
||||||
void packfile_store_close(struct packfile_store *store);
|
void packfile_store_close(struct packfile_store *store);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prepare the packfile store by loading packfiles and multi-pack indices for
|
||||||
|
* all alternates. This becomes a no-op if the store is already prepared.
|
||||||
|
*
|
||||||
|
* It shouldn't typically be necessary to call this function directly, as
|
||||||
|
* functions that access the store know to prepare it.
|
||||||
|
*/
|
||||||
|
void packfile_store_prepare(struct packfile_store *store);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear the packfile caches and try to look up any new packfiles that have
|
* Clear the packfile caches and try to look up any new packfiles that have
|
||||||
* appeared since last preparing the packfiles store.
|
* appeared since last preparing the packfiles store.
|
||||||
@@ -213,7 +222,6 @@ extern void (*report_garbage)(unsigned seen_bits, const char *path);
|
|||||||
|
|
||||||
struct packed_git *get_packed_git(struct repository *r);
|
struct packed_git *get_packed_git(struct repository *r);
|
||||||
struct list_head *get_packed_git_mru(struct repository *r);
|
struct list_head *get_packed_git_mru(struct repository *r);
|
||||||
struct multi_pack_index *get_multi_pack_index(struct odb_source *source);
|
|
||||||
struct packed_git *get_all_packs(struct repository *r);
|
struct packed_git *get_all_packs(struct repository *r);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user