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);