Re: [PATCH 40/44] packfile: allow prepare_packed_git to handle arbitrary repositories
- From
- Brandon Williams <bmwill@google.com>
- Date
- Mar 21, 2018, 22:39 UTC
- Message-ID
- <20180321223923.GB202156@google.com>
- In-Reply-To
- <20180303113637.26518-41-pclouds@gmail.com>
On 03/03, Nguyễn Thái Ngọc Duy wrote:
Show 6 quoted lines
> From: Stefan Beller <sbeller@google.com> > > 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> > ---
This is an invalid conversion.
Show 28 quoted lines
> packfile.c | 18 +++++++++---------
> packfile.h | 3 +--
> 2 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/packfile.c b/packfile.c
> index 52febba932..2276e2ad26 100644
> --- a/packfile.c
> +++ b/packfile.c
> @@ -882,19 +882,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, get_object_directory(), 1);Calling get_object_directory() returns the_repository's object dir, this needs to be replaced with r->objects.objectdir.
Show 26 quoted lines
> + 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 ab5046938c..3fd9092472 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); > -- > 2.16.1.435.g8f24da2e1a >
-- Brandon Williams