packfile: allow prepare_packed_git to handle arbitrary repositories

Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed Mar 23, 2018 at 18:45 UTC 0f90a9f27e464caffe69c5ab9e4d744b53bad143
2 files changed +10 -11
packfile.c
+9 -9
@@ -883,19 +883,19 @@ static void prepare_packed_git_mru(struct repository *r)
883 list_add_tail(&p->mru, &r->objects->packed_git_mru);
884 }
885
886 -void prepare_packed_git_the_repository(void)
886 +void prepare_packed_git(struct repository *r)
887 {
888 struct alternate_object_database *alt;
889
890 - if (the_repository->objects->packed_git_initialized)
890 + if (r->objects->packed_git_initialized)
891 return;
892 - prepare_packed_git_one(the_repository, get_object_directory(), 1);
893 - prepare_alt_odb(the_repository);
894 - for (alt = the_repository->objects->alt_odb_list; alt; alt = alt->next)
895 - prepare_packed_git_one(the_repository, alt->path, 0);
896 - rearrange_packed_git(the_repository);
897 - prepare_packed_git_mru(the_repository);
898 - the_repository->objects->packed_git_initialized = 1;
892 + prepare_packed_git_one(r, r->objects->objectdir, 1);
893 + prepare_alt_odb(r);
894 + for (alt = r->objects->alt_odb_list; alt; alt = alt->next)
895 + prepare_packed_git_one(r, alt->path, 0);
896 + rearrange_packed_git(r);
897 + prepare_packed_git_mru(r);
898 + r->objects->packed_git_initialized = 1;
899 }
900
901 void reprepare_packed_git_the_repository(void)
packfile.h
+1 -2
@@ -34,8 +34,7 @@ extern struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_
34 #define PACKDIR_FILE_GARBAGE 4
35 extern void (*report_garbage)(unsigned seen_bits, const char *path);
36
37 -#define prepare_packed_git(r) prepare_packed_git_##r()
38 -extern void prepare_packed_git_the_repository(void);
37 +extern void prepare_packed_git(struct repository *r);
38 #define reprepare_packed_git(r) reprepare_packed_git_##r()
39 extern void reprepare_packed_git_the_repository(void);
40 extern void install_packed_git(struct repository *r, struct packed_git *pack);