return p;
}
-void install_packed_git(struct packed_git *pack)
+void install_packed_git(struct repository *r, struct packed_git *pack)
{
if (pack->pack_fd != -1)
pack_open_fds++;
- pack->next = the_repository->objects->packed_git;
- the_repository->objects->packed_git = pack;
+ pack->next = r->objects->packed_git;
+ r->objects->packed_git = pack;
}
void (*report_garbage)(unsigned seen_bits, const char *path);
report_helper(list, seen_bits, first, list->nr);
}
-static void prepare_packed_git_one(char *objdir, int local)
+#define prepare_packed_git_one(r, o, l) prepare_packed_git_one_##r(o, l)
+static void prepare_packed_git_one_the_repository(char *objdir, int local)
{
struct strbuf path = STRBUF_INIT;
size_t dirnamelen;
* corresponding .pack file that we can map.
*/
(p = add_packed_git(path.buf, path.len, local)) != NULL)
- install_packed_git(p);
+ install_packed_git(the_repository, p);
}
if (!report_garbage)
unsigned long count;
struct packed_git *p;
- prepare_packed_git();
+ prepare_packed_git(the_repository);
count = 0;
for (p = the_repository->objects->packed_git; p; p = p->next) {
if (open_pack_index(p))
return -1;
}
-static void rearrange_packed_git(void)
+static void rearrange_packed_git(struct repository *r)
{
- the_repository->objects->packed_git = llist_mergesort(
- the_repository->objects->packed_git, get_next_packed_git,
+ r->objects->packed_git = llist_mergesort(
+ r->objects->packed_git, get_next_packed_git,
set_next_packed_git, sort_pack);
}
list_add_tail(&p->mru, &r->objects->packed_git_mru);
}
-void prepare_packed_git(void)
+void prepare_packed_git_the_repository(void)
{
struct alternate_object_database *alt;
if (the_repository->objects->packed_git_initialized)
return;
- prepare_packed_git_one(get_object_directory(), 1);
+ prepare_packed_git_one(the_repository, get_object_directory(), 1);
prepare_alt_odb(the_repository);
for (alt = the_repository->objects->alt_odb_list; alt; alt = alt->next)
- prepare_packed_git_one(alt->path, 0);
- rearrange_packed_git();
+ prepare_packed_git_one(the_repository, alt->path, 0);
+ rearrange_packed_git(the_repository);
prepare_packed_git_mru(the_repository);
the_repository->objects->packed_git_initialized = 1;
}
-void reprepare_packed_git(void)
+void reprepare_packed_git_the_repository(void)
{
the_repository->objects->approximate_object_count_valid = 0;
the_repository->objects->packed_git_initialized = 0;
- prepare_packed_git();
+ prepare_packed_git(the_repository);
}
struct packed_git *get_packed_git(struct repository *r)
{
struct list_head *pos;
- prepare_packed_git();
+ prepare_packed_git(the_repository);
if (!the_repository->objects->packed_git)
return 0;
int r = 0;
int pack_errors = 0;
- prepare_packed_git();
+ prepare_packed_git(the_repository);
for (p = the_repository->objects->packed_git; p; p = p->next) {
if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
continue;