midx-write: pass down repository to write_midx_file[_only]

In a previous commit, we passed the repository field to all
subcommands in the `builtin/` directory. Utilize this to pass the
repository field down to the `write_midx_file[_only]` functions to
remove the usage of `the_repository` global variables.

With this, all usage of global variables in `midx-write.c` is removed,
hence, remove the `USE_THE_REPOSITORY_VARIABLE` guard from the file.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Karthik Nayak
2024-11-27 17:28:29 +01:00
committed by Junio C Hamano
parent dfa7c68245
commit 2fed09aa9b
4 changed files with 17 additions and 23 deletions

View File

@ -120,7 +120,7 @@ static void read_packs_from_stdin(struct string_list *to)
static int cmd_multi_pack_index_write(int argc, const char **argv,
const char *prefix,
struct repository *repo UNUSED)
struct repository *repo)
{
struct option *options;
static struct option builtin_multi_pack_index_write_options[] = {
@ -165,7 +165,7 @@ static int cmd_multi_pack_index_write(int argc, const char **argv,
read_packs_from_stdin(&packs);
ret = write_midx_file_only(opts.object_dir, &packs,
ret = write_midx_file_only(repo, opts.object_dir, &packs,
opts.preferred_pack,
opts.refs_snapshot, opts.flags);
@ -176,7 +176,7 @@ static int cmd_multi_pack_index_write(int argc, const char **argv,
}
ret = write_midx_file(opts.object_dir, opts.preferred_pack,
ret = write_midx_file(repo, opts.object_dir, opts.preferred_pack,
opts.refs_snapshot, opts.flags);
free(opts.refs_snapshot);

View File

@ -1569,7 +1569,7 @@ int cmd_repack(int argc,
unsigned flags = 0;
if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL, 0))
flags |= MIDX_WRITE_INCREMENTAL;
write_midx_file(repo_get_object_directory(the_repository),
write_midx_file(the_repository, repo_get_object_directory(the_repository),
NULL, NULL, flags);
}

View File

@ -1,5 +1,3 @@
#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "abspath.h"
#include "config.h"
@ -1505,24 +1503,22 @@ cleanup:
return result;
}
int write_midx_file(const char *object_dir,
int write_midx_file(struct repository *r, const char *object_dir,
const char *preferred_pack_name,
const char *refs_snapshot,
unsigned flags)
const char *refs_snapshot, unsigned flags)
{
return write_midx_internal(the_repository, object_dir, NULL, NULL,
preferred_pack_name, refs_snapshot, flags);
return write_midx_internal(r, object_dir, NULL, NULL,
preferred_pack_name, refs_snapshot,
flags);
}
int write_midx_file_only(const char *object_dir,
int write_midx_file_only(struct repository *r, const char *object_dir,
struct string_list *packs_to_include,
const char *preferred_pack_name,
const char *refs_snapshot,
unsigned flags)
const char *refs_snapshot, unsigned flags)
{
return write_midx_internal(the_repository, object_dir, packs_to_include,
NULL, preferred_pack_name, refs_snapshot,
flags);
return write_midx_internal(r, object_dir, packs_to_include, NULL,
preferred_pack_name, refs_snapshot, flags);
}
int expire_midx_packs(struct repository *r, const char *object_dir, unsigned flags)

10
midx.h
View File

@ -123,15 +123,13 @@ int prepare_multi_pack_index_one(struct repository *r, const char *object_dir, i
* Variant of write_midx_file which writes a MIDX containing only the packs
* specified in packs_to_include.
*/
int write_midx_file(const char *object_dir,
const char *preferred_pack_name,
const char *refs_snapshot,
int write_midx_file(struct repository *r, const char *object_dir,
const char *preferred_pack_name, const char *refs_snapshot,
unsigned flags);
int write_midx_file_only(const char *object_dir,
int write_midx_file_only(struct repository *r, const char *object_dir,
struct string_list *packs_to_include,
const char *preferred_pack_name,
const char *refs_snapshot,
unsigned flags);
const char *refs_snapshot, unsigned flags);
void clear_midx_file(struct repository *r);
int verify_midx_file(struct repository *r, const char *object_dir, unsigned flags);
int expire_midx_packs(struct repository *r, const char *object_dir, unsigned flags);