summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2017-08-30 00:13:49 -0700
committerJunio C Hamano <gitster@pobox.com>2017-09-07 08:49:46 +0900
commitaddad182b8dc0e1b3bdd841a8aa843a6a1b25371 (patch)
tree1d1d9df622a144a83fdaeee134550592239da785
parent37835275e5be8594e5620cba015955d4e48b52cf (diff)
downloadgit-addad182b8dc0e1b3bdd841a8aa843a6a1b25371.tar.gz
pack: allow prepare_packed_git to handle arbitrary repositories
Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Jonathan Nieder <jrnieder@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 4652be0b6e..23a835f7fb 100644
--- a/packfile.c
+++ b/packfile.c
@@ -865,19 +865,19 @@ static void prepare_packed_git_mru(struct repository *r)
mru_append(&r->objects.packed_git_mru, p);
}
-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->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 ba6f08be99..75be3cb877 100644
--- a/packfile.h
+++ b/packfile.h
@@ -32,8 +32,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);