packfile: allow prepare_packed_git to handle arbitrary repositories
authorStefan Beller <sbeller@google.com>
Fri, 23 Mar 2018 17:45:23 +0000 (18:45 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Mar 2018 17:07:43 +0000 (10:07 -0700)
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>
packfile.c
packfile.h
index fd6aa54b4bd90c5a24cc1f20d0e79ce0a709baac..f6f7a84335d998e120c80cb9f76a9073060d4eae 100644 (file)
@@ -883,19 +883,19 @@ static void prepare_packed_git_mru(struct repository *r)
                list_add_tail(&p->mru, &r->objects->packed_git_mru);
 }
 
-void prepare_packed_git_the_repository(void)
+void prepare_packed_git(struct repository *r)
 {
        struct alternate_object_database *alt;
 
-       if (the_repository->objects->packed_git_initialized)
+       if (r->objects->packed_git_initialized)
                return;
-       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(the_repository, alt->path, 0);
-       rearrange_packed_git(the_repository);
-       prepare_packed_git_mru(the_repository);
-       the_repository->objects->packed_git_initialized = 1;
+       prepare_packed_git_one(r, r->objects->objectdir, 1);
+       prepare_alt_odb(r);
+       for (alt = r->objects->alt_odb_list; alt; alt = alt->next)
+               prepare_packed_git_one(r, alt->path, 0);
+       rearrange_packed_git(r);
+       prepare_packed_git_mru(r);
+       r->objects->packed_git_initialized = 1;
 }
 
 void reprepare_packed_git_the_repository(void)
index ab5046938c70f814031d14140b0b6c0da50f70c4..3fd90924729e81193de117a341481f840b647730 100644 (file)
@@ -34,8 +34,7 @@ extern struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_
 #define PACKDIR_FILE_GARBAGE 4
 extern void (*report_garbage)(unsigned seen_bits, const char *path);
 
-#define prepare_packed_git(r) prepare_packed_git_##r()
-extern void prepare_packed_git_the_repository(void);
+extern void prepare_packed_git(struct repository *r);
 #define reprepare_packed_git(r) reprepare_packed_git_##r()
 extern void reprepare_packed_git_the_repository(void);
 extern void install_packed_git(struct repository *r, struct packed_git *pack);