builtin: pass repository to sub commands

In 9b1cb5070f (builtin: add a repository parameter for builtin
functions, 2024-09-13) the repository was passed down to all builtin
commands. This allowed the repository to be passed down to lower layers
without depending on the global `the_repository` variable.

Continue this work by also passing down the repository parameter from
the command to sub-commands. This will help pass down the repository to
other subsystems and cleanup usage of global variables like
'the_repository' and 'the_hash_algo'.

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-25 15:55:30 +01:00
committed by Junio C Hamano
parent 6ea2d9d271
commit 6f33d8e255
17 changed files with 239 additions and 135 deletions

View File

@ -431,7 +431,8 @@ static struct notes_tree *init_notes_check(const char *subcommand,
return t;
}
static int list(int argc, const char **argv, const char *prefix)
static int list(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
struct notes_tree *t;
struct object_id object;
@ -468,9 +469,11 @@ static int list(int argc, const char **argv, const char *prefix)
return retval;
}
static int append_edit(int argc, const char **argv, const char *prefix);
static int append_edit(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED);
static int add(int argc, const char **argv, const char *prefix)
static int add(int argc, const char **argv, const char *prefix,
struct repository *repo)
{
int force = 0, allow_empty = 0;
const char *object_ref;
@ -543,7 +546,7 @@ static int add(int argc, const char **argv, const char *prefix)
* argv[0-1].
*/
argv[0] = "edit";
return append_edit(argc, argv, prefix);
return append_edit(argc, argv, prefix, repo);
}
fprintf(stderr, _("Overwriting existing notes for object %s\n"),
oid_to_hex(&object));
@ -569,7 +572,8 @@ static int add(int argc, const char **argv, const char *prefix)
return 0;
}
static int copy(int argc, const char **argv, const char *prefix)
static int copy(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
int retval = 0, force = 0, from_stdin = 0;
const struct object_id *from_note, *note;
@ -646,7 +650,8 @@ out:
return retval;
}
static int append_edit(int argc, const char **argv, const char *prefix)
static int append_edit(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
int allow_empty = 0;
const char *object_ref;
@ -749,7 +754,8 @@ static int append_edit(int argc, const char **argv, const char *prefix)
return 0;
}
static int show(int argc, const char **argv, const char *prefix)
static int show(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
const char *object_ref;
struct notes_tree *t;
@ -875,7 +881,8 @@ static int git_config_get_notes_strategy(const char *key,
return 0;
}
static int merge(int argc, const char **argv, const char *prefix)
static int merge(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
struct strbuf remote_ref = STRBUF_INIT, msg = STRBUF_INIT;
struct object_id result_oid;
@ -1016,7 +1023,8 @@ static int remove_one_note(struct notes_tree *t, const char *name, unsigned flag
return (flag & IGNORE_MISSING) ? 0 : status;
}
static int remove_cmd(int argc, const char **argv, const char *prefix)
static int remove_cmd(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
unsigned flag = 0;
int from_stdin = 0;
@ -1059,7 +1067,8 @@ static int remove_cmd(int argc, const char **argv, const char *prefix)
return retval;
}
static int prune(int argc, const char **argv, const char *prefix)
static int prune(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
struct notes_tree *t;
int show_only = 0, verbose = 0;
@ -1088,7 +1097,8 @@ static int prune(int argc, const char **argv, const char *prefix)
return 0;
}
static int get_ref(int argc, const char **argv, const char *prefix)
static int get_ref(int argc, const char **argv, const char *prefix,
struct repository *repo UNUSED)
{
struct option options[] = { OPT_END() };
char *notes_ref;
@ -1109,7 +1119,7 @@ static int get_ref(int argc, const char **argv, const char *prefix)
int cmd_notes(int argc,
const char **argv,
const char *prefix,
struct repository *repo UNUSED)
struct repository *repo)
{
const char *override_notes_ref = NULL;
parse_opt_subcommand_fn *fn = NULL;
@ -1148,5 +1158,5 @@ int cmd_notes(int argc,
strbuf_release(&sb);
}
return !!fn(argc, argv, prefix);
return !!fn(argc, argv, prefix, repo);
}