git/builtin/update-server-info.c
Usman Akinyemi 62898b8f5e builtin/update-server-info: remove the_repository global variable
Remove the_repository global variable in favor of the repository
argument that gets passed in "builtin/update-server-info.c".

When `-h` is passed to the command outside a Git repository, the
`run_builtin()` will call the `cmd_update_server_info()` function
with `repo` set to NULL and then early in the function, "parse_options()"
call will give the options help and exit, without having to consult much
of the configuration file. So it is safe to omit reading the config when
`repo` argument the caller gave us is NULL.

Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-02-10 16:20:21 -08:00

32 lines
739 B
C

#include "builtin.h"
#include "config.h"
#include "gettext.h"
#include "parse-options.h"
#include "server-info.h"
static const char * const update_server_info_usage[] = {
"git update-server-info [-f | --force]",
NULL
};
int cmd_update_server_info(int argc,
const char **argv,
const char *prefix,
struct repository *repo)
{
int force = 0;
struct option options[] = {
OPT__FORCE(&force, N_("update the info files from scratch"), 0),
OPT_END()
};
if (repo)
repo_config(repo, git_default_config, NULL);
argc = parse_options(argc, argv, prefix, options,
update_server_info_usage, 0);
if (argc > 0)
usage_with_options(update_server_info_usage, options);
return !!update_server_info(repo, force);
}