pack-bitmap: introduce function to check whether a pack is bitmapped
Introduce a function that allows us to verify whether a pack is bitmapped or not. This functionality will be used in a subsequent commit. Helped-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
5420901bde
commit
c9b94a7785
|
@ -745,6 +745,21 @@ struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index *midx)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bitmap_index_contains_pack(struct bitmap_index *bitmap, struct packed_git *pack)
|
||||||
|
{
|
||||||
|
for (; bitmap; bitmap = bitmap->base) {
|
||||||
|
if (bitmap_is_midx(bitmap)) {
|
||||||
|
for (size_t i = 0; i < bitmap->midx->num_packs; i++)
|
||||||
|
if (bitmap->midx->packs[i] == pack)
|
||||||
|
return 1;
|
||||||
|
} else if (bitmap->pack == pack) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct include_data {
|
struct include_data {
|
||||||
struct bitmap_index *bitmap_git;
|
struct bitmap_index *bitmap_git;
|
||||||
struct bitmap *base;
|
struct bitmap *base;
|
||||||
|
|
|
@ -67,6 +67,13 @@ struct bitmapped_pack {
|
||||||
|
|
||||||
struct bitmap_index *prepare_bitmap_git(struct repository *r);
|
struct bitmap_index *prepare_bitmap_git(struct repository *r);
|
||||||
struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index *midx);
|
struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index *midx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Given a bitmap index, determine whether it contains the pack either directly
|
||||||
|
* or via the multi-pack-index.
|
||||||
|
*/
|
||||||
|
int bitmap_index_contains_pack(struct bitmap_index *bitmap, struct packed_git *pack);
|
||||||
|
|
||||||
void count_bitmap_commit_list(struct bitmap_index *, uint32_t *commits,
|
void count_bitmap_commit_list(struct bitmap_index *, uint32_t *commits,
|
||||||
uint32_t *trees, uint32_t *blobs, uint32_t *tags);
|
uint32_t *trees, uint32_t *blobs, uint32_t *tags);
|
||||||
void traverse_bitmap_commit_list(struct bitmap_index *,
|
void traverse_bitmap_commit_list(struct bitmap_index *,
|
||||||
|
|
Loading…
Reference in New Issue