summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2018-03-23 17:45:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-03-26 17:07:43 (GMT)
commit0f90a9f27e464caffe69c5ab9e4d744b53bad143 (patch)
tree5f88ceafc720944e3e19d32d9da2d734fea251d3
parent935cdd6922e40f5812cdcf2741d274ab2fc110a6 (diff)
downloadgit-0f90a9f27e464caffe69c5ab9e4d744b53bad143.zip
git-0f90a9f27e464caffe69c5ab9e4d744b53bad143.tar.gz
git-0f90a9f27e464caffe69c5ab9e4d744b53bad143.tar.bz2
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>
-rw-r--r--packfile.c18
-rw-r--r--packfile.h3
2 files changed, 10 insertions, 11 deletions
diff --git a/packfile.c b/packfile.c
index fd6aa54..f6f7a84 100644
--- a/packfile.c
+++ b/packfile.c
@@ -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)
diff --git a/packfile.h b/packfile.h
index ab50469..3fd9092 100644
--- a/packfile.h
+++ b/packfile.h
@@ -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);