treewide: use get_all_packs
There are many places in the codebase that want to iterate over all packfiles known to Git. The purposes are wide-ranging, and those that can take advantage of the multi-pack-index already do. So, use get_all_packs() instead of get_packed_git() to be sure we are iterating over all packfiles. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
0bff5269d3
commit
454ea2e4d7
@ -123,7 +123,7 @@ int cmd_count_objects(int argc, const char **argv, const char *prefix)
|
|||||||
struct strbuf pack_buf = STRBUF_INIT;
|
struct strbuf pack_buf = STRBUF_INIT;
|
||||||
struct strbuf garbage_buf = STRBUF_INIT;
|
struct strbuf garbage_buf = STRBUF_INIT;
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local)
|
if (!p->pack_local)
|
||||||
continue;
|
continue;
|
||||||
if (open_pack_index(p))
|
if (open_pack_index(p))
|
||||||
|
@ -740,7 +740,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
|||||||
struct progress *progress = NULL;
|
struct progress *progress = NULL;
|
||||||
|
|
||||||
if (show_progress) {
|
if (show_progress) {
|
||||||
for (p = get_packed_git(the_repository); p;
|
for (p = get_all_packs(the_repository); p;
|
||||||
p = p->next) {
|
p = p->next) {
|
||||||
if (open_pack_index(p))
|
if (open_pack_index(p))
|
||||||
continue;
|
continue;
|
||||||
@ -749,7 +749,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
|||||||
|
|
||||||
progress = start_progress(_("Checking objects"), total);
|
progress = start_progress(_("Checking objects"), total);
|
||||||
}
|
}
|
||||||
for (p = get_packed_git(the_repository); p;
|
for (p = get_all_packs(the_repository); p;
|
||||||
p = p->next) {
|
p = p->next) {
|
||||||
/* verify gives error messages itself */
|
/* verify gives error messages itself */
|
||||||
if (verify_pack(p, fsck_obj_buffer,
|
if (verify_pack(p, fsck_obj_buffer,
|
||||||
|
@ -183,7 +183,7 @@ static struct packed_git *find_base_packs(struct string_list *packs,
|
|||||||
{
|
{
|
||||||
struct packed_git *p, *base = NULL;
|
struct packed_git *p, *base = NULL;
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local)
|
if (!p->pack_local)
|
||||||
continue;
|
continue;
|
||||||
if (limit) {
|
if (limit) {
|
||||||
@ -208,7 +208,7 @@ static int too_many_packs(void)
|
|||||||
if (gc_auto_pack_limit <= 0)
|
if (gc_auto_pack_limit <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (cnt = 0, p = get_packed_git(the_repository); p; p = p->next) {
|
for (cnt = 0, p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local)
|
if (!p->pack_local)
|
||||||
continue;
|
continue;
|
||||||
if (p->pack_keep)
|
if (p->pack_keep)
|
||||||
|
@ -2809,7 +2809,7 @@ static void add_objects_in_unpacked_packs(struct rev_info *revs)
|
|||||||
|
|
||||||
memset(&in_pack, 0, sizeof(in_pack));
|
memset(&in_pack, 0, sizeof(in_pack));
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
struct object *o;
|
struct object *o;
|
||||||
|
|
||||||
@ -2873,7 +2873,7 @@ static int has_sha1_pack_kept_or_nonlocal(const struct object_id *oid)
|
|||||||
struct packed_git *p;
|
struct packed_git *p;
|
||||||
|
|
||||||
p = (last_found != (void *)1) ? last_found :
|
p = (last_found != (void *)1) ? last_found :
|
||||||
get_packed_git(the_repository);
|
get_all_packs(the_repository);
|
||||||
|
|
||||||
while (p) {
|
while (p) {
|
||||||
if ((!p->pack_local || p->pack_keep ||
|
if ((!p->pack_local || p->pack_keep ||
|
||||||
@ -2883,7 +2883,7 @@ static int has_sha1_pack_kept_or_nonlocal(const struct object_id *oid)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (p == last_found)
|
if (p == last_found)
|
||||||
p = get_packed_git(the_repository);
|
p = get_all_packs(the_repository);
|
||||||
else
|
else
|
||||||
p = p->next;
|
p = p->next;
|
||||||
if (p == last_found)
|
if (p == last_found)
|
||||||
@ -2919,7 +2919,7 @@ static void loosen_unused_packed_objects(struct rev_info *revs)
|
|||||||
uint32_t i;
|
uint32_t i;
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local || p->pack_keep || p->pack_keep_in_core)
|
if (!p->pack_local || p->pack_keep || p->pack_keep_in_core)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -3066,7 +3066,7 @@ static void add_extra_kept_packs(const struct string_list *names)
|
|||||||
if (!names->nr)
|
if (!names->nr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
const char *name = basename(p->pack_name);
|
const char *name = basename(p->pack_name);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -3339,7 +3339,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
|||||||
add_extra_kept_packs(&keep_pack_list);
|
add_extra_kept_packs(&keep_pack_list);
|
||||||
if (ignore_packed_keep_on_disk) {
|
if (ignore_packed_keep_on_disk) {
|
||||||
struct packed_git *p;
|
struct packed_git *p;
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next)
|
for (p = get_all_packs(the_repository); p; p = p->next)
|
||||||
if (p->pack_local && p->pack_keep)
|
if (p->pack_local && p->pack_keep)
|
||||||
break;
|
break;
|
||||||
if (!p) /* no keep-able packs found */
|
if (!p) /* no keep-able packs found */
|
||||||
@ -3352,7 +3352,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
|||||||
* it also covers non-local objects
|
* it also covers non-local objects
|
||||||
*/
|
*/
|
||||||
struct packed_git *p;
|
struct packed_git *p;
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local) {
|
if (!p->pack_local) {
|
||||||
have_non_local_packs = 1;
|
have_non_local_packs = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -577,7 +577,7 @@ static struct pack_list * add_pack(struct packed_git *p)
|
|||||||
|
|
||||||
static struct pack_list * add_pack_file(const char *filename)
|
static struct pack_list * add_pack_file(const char *filename)
|
||||||
{
|
{
|
||||||
struct packed_git *p = get_packed_git(the_repository);
|
struct packed_git *p = get_all_packs(the_repository);
|
||||||
|
|
||||||
if (strlen(filename) < 40)
|
if (strlen(filename) < 40)
|
||||||
die("Bad pack filename: %s", filename);
|
die("Bad pack filename: %s", filename);
|
||||||
@ -592,7 +592,7 @@ static struct pack_list * add_pack_file(const char *filename)
|
|||||||
|
|
||||||
static void load_all(void)
|
static void load_all(void)
|
||||||
{
|
{
|
||||||
struct packed_git *p = get_packed_git(the_repository);
|
struct packed_git *p = get_all_packs(the_repository);
|
||||||
|
|
||||||
while (p) {
|
while (p) {
|
||||||
add_pack(p);
|
add_pack(p);
|
||||||
|
@ -1068,7 +1068,7 @@ static int store_object(
|
|||||||
duplicate_count_by_type[type]++;
|
duplicate_count_by_type[type]++;
|
||||||
return 1;
|
return 1;
|
||||||
} else if (find_sha1_pack(oid.hash,
|
} else if (find_sha1_pack(oid.hash,
|
||||||
get_packed_git(the_repository))) {
|
get_all_packs(the_repository))) {
|
||||||
e->type = type;
|
e->type = type;
|
||||||
e->pack_id = MAX_PACK_ID;
|
e->pack_id = MAX_PACK_ID;
|
||||||
e->idx.offset = 1; /* just not zero! */
|
e->idx.offset = 1; /* just not zero! */
|
||||||
@ -1266,7 +1266,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark)
|
|||||||
truncate_pack(&checkpoint);
|
truncate_pack(&checkpoint);
|
||||||
|
|
||||||
} else if (find_sha1_pack(oid.hash,
|
} else if (find_sha1_pack(oid.hash,
|
||||||
get_packed_git(the_repository))) {
|
get_all_packs(the_repository))) {
|
||||||
e->type = OBJ_BLOB;
|
e->type = OBJ_BLOB;
|
||||||
e->pack_id = MAX_PACK_ID;
|
e->pack_id = MAX_PACK_ID;
|
||||||
e->idx.offset = 1; /* just not zero! */
|
e->idx.offset = 1; /* just not zero! */
|
||||||
|
@ -595,13 +595,13 @@ static void get_info_packs(struct strbuf *hdr, char *arg)
|
|||||||
size_t cnt = 0;
|
size_t cnt = 0;
|
||||||
|
|
||||||
select_getanyfile(hdr);
|
select_getanyfile(hdr);
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (p->pack_local)
|
if (p->pack_local)
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
strbuf_grow(&buf, cnt * 53 + 2);
|
strbuf_grow(&buf, cnt * 53 + 2);
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (p->pack_local)
|
if (p->pack_local)
|
||||||
strbuf_addf(&buf, "P %s\n", p->pack_name + objdirlen + 6);
|
strbuf_addf(&buf, "P %s\n", p->pack_name + objdirlen + 6);
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,7 @@ static int open_pack_bitmap(struct bitmap_index *bitmap_git)
|
|||||||
|
|
||||||
assert(!bitmap_git->map && !bitmap_git->loaded);
|
assert(!bitmap_git->map && !bitmap_git->loaded);
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (open_pack_bitmap_1(bitmap_git, p) == 0)
|
if (open_pack_bitmap_1(bitmap_git, p) == 0)
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ static void prepare_in_pack_by_idx(struct packing_data *pdata)
|
|||||||
* (i.e. in_pack_idx also zero) should return NULL.
|
* (i.e. in_pack_idx also zero) should return NULL.
|
||||||
*/
|
*/
|
||||||
mapping[cnt++] = NULL;
|
mapping[cnt++] = NULL;
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next, cnt++) {
|
for (p = get_all_packs(the_repository); p; p = p->next, cnt++) {
|
||||||
if (cnt == nr) {
|
if (cnt == nr) {
|
||||||
free(mapping);
|
free(mapping);
|
||||||
return;
|
return;
|
||||||
|
@ -2036,7 +2036,7 @@ int for_each_packed_object(each_packed_object_fn cb, void *data,
|
|||||||
int pack_errors = 0;
|
int pack_errors = 0;
|
||||||
|
|
||||||
prepare_packed_git(the_repository);
|
prepare_packed_git(the_repository);
|
||||||
for (p = the_repository->objects->packed_git; p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
|
if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
|
||||||
continue;
|
continue;
|
||||||
if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
|
if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
|
||||||
|
@ -199,7 +199,7 @@ static void init_pack_info(const char *infofile, int force)
|
|||||||
objdir = get_object_directory();
|
objdir = get_object_directory();
|
||||||
objdirlen = strlen(objdir);
|
objdirlen = strlen(objdir);
|
||||||
|
|
||||||
for (p = get_packed_git(the_repository); p; p = p->next) {
|
for (p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
/* we ignore things on alternate path since they are
|
/* we ignore things on alternate path since they are
|
||||||
* not available to the pullers in general.
|
* not available to the pullers in general.
|
||||||
*/
|
*/
|
||||||
@ -209,7 +209,7 @@ static void init_pack_info(const char *infofile, int force)
|
|||||||
}
|
}
|
||||||
num_pack = i;
|
num_pack = i;
|
||||||
info = xcalloc(num_pack, sizeof(struct pack_info *));
|
info = xcalloc(num_pack, sizeof(struct pack_info *));
|
||||||
for (i = 0, p = get_packed_git(the_repository); p; p = p->next) {
|
for (i = 0, p = get_all_packs(the_repository); p; p = p->next) {
|
||||||
if (!p->pack_local)
|
if (!p->pack_local)
|
||||||
continue;
|
continue;
|
||||||
info[i] = xcalloc(1, sizeof(struct pack_info));
|
info[i] = xcalloc(1, sizeof(struct pack_info));
|
||||||
|
Loading…
Reference in New Issue
Block a user