]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sha1_file: allow prepare_alt_odb to handle arbitrary repositories
authorStefan Beller <sbeller@google.com>
Fri, 23 Mar 2018 17:21:09 +0000 (18:21 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Mar 2018 17:05:55 +0000 (10:05 -0700)
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object-store.h
sha1_file.c

index 3fc461a46377c426228ffded79c66687d8d63b4e..f54bc0b951a6af5a082dd131d36a9bb53d6d1958 100644 (file)
@@ -24,8 +24,7 @@ struct alternate_object_database {
         */
        char path[FLEX_ARRAY];
 };
-#define prepare_alt_odb(r) prepare_alt_odb_##r()
-void prepare_alt_odb_the_repository(void);
+void prepare_alt_odb(struct repository *r);
 char *compute_alternate_path(const char *path, struct strbuf *err);
 typedef int alt_odb_fn(struct alternate_object_database *, void *);
 int foreach_alt_odb(alt_odb_fn, void*);
index d38f5cdb0ea8df80cb2a56af0806cc47e12eb487..04118f331c78ee0904b44bcc3496a2ead851e399 100644 (file)
@@ -673,18 +673,15 @@ int foreach_alt_odb(alt_odb_fn fn, void *cb)
        return r;
 }
 
-void prepare_alt_odb_the_repository(void)
+void prepare_alt_odb(struct repository *r)
 {
-       if (the_repository->objects->alt_odb_tail)
+       if (r->objects->alt_odb_tail)
                return;
 
-       the_repository->objects->alt_odb_tail =
-                       &the_repository->objects->alt_odb_list;
-       link_alt_odb_entries(the_repository,
-                            the_repository->objects->alternate_db,
-                            PATH_SEP, NULL, 0);
+       r->objects->alt_odb_tail = &r->objects->alt_odb_list;
+       link_alt_odb_entries(r, r->objects->alternate_db, PATH_SEP, NULL, 0);
 
-       read_info_alternates(the_repository, get_object_directory(), 0);
+       read_info_alternates(r, r->objects->objectdir, 0);
 }
 
 /* Returns 1 if we have successfully freshened the file, 0 otherwise. */