mirror of
https://github.com/git-for-windows/git.git
synced 2026-04-10 08:22:54 -05:00
setup: stop using the_repository in check_repository_format()
Stop using `the_repository` in `check_repository_format()` and instead accept the repository as a parameter. The injection of `the_repository` is thus bumped one level higher, where callers now pass it in explicitly. Furthermore, the function is never used outside "setup.c". Drop its declaration in "setup.h" and make it static. Note that this requires us to reorder the function. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
fe9dc12427
commit
8792ccb40b
58
setup.c
58
setup.c
@@ -1755,6 +1755,37 @@ enum discovery_result discover_git_directory_reason(struct strbuf *commondir,
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the repository format version in the path found in repo_get_git_dir(the_repository),
|
||||
* and die if it is a version we don't understand. Generally one would
|
||||
* set_git_dir() before calling this, and use it only for "are we in a valid
|
||||
* repo?".
|
||||
*
|
||||
* If successful and fmt is not NULL, fill fmt with data.
|
||||
*/
|
||||
static void check_repository_format(struct repository *repo, struct repository_format *fmt)
|
||||
{
|
||||
struct repository_format repo_fmt = REPOSITORY_FORMAT_INIT;
|
||||
if (!fmt)
|
||||
fmt = &repo_fmt;
|
||||
check_repository_format_gently(repo, repo_get_git_dir(repo), fmt, NULL);
|
||||
startup_info->have_repository = 1;
|
||||
repo_set_hash_algo(repo, fmt->hash_algo);
|
||||
repo_set_compat_hash_algo(repo, fmt->compat_hash_algo);
|
||||
repo_set_ref_storage_format(repo,
|
||||
fmt->ref_storage_format,
|
||||
fmt->ref_storage_payload);
|
||||
repo->repository_format_worktree_config =
|
||||
fmt->worktree_config;
|
||||
repo->repository_format_submodule_path_cfg =
|
||||
fmt->submodule_path_cfg;
|
||||
repo->repository_format_relative_worktrees =
|
||||
fmt->relative_worktrees;
|
||||
repo->repository_format_partial_clone =
|
||||
xstrdup_or_null(fmt->partial_clone);
|
||||
clear_repository_format(&repo_fmt);
|
||||
}
|
||||
|
||||
const char *enter_repo(struct repository *repo, const char *path, unsigned flags)
|
||||
{
|
||||
static struct strbuf validated_path = STRBUF_INIT;
|
||||
@@ -1829,7 +1860,7 @@ const char *enter_repo(struct repository *repo, const char *path, unsigned flags
|
||||
|
||||
if (is_git_directory(".")) {
|
||||
set_git_dir(repo, ".", 0);
|
||||
check_repository_format(NULL);
|
||||
check_repository_format(repo, NULL);
|
||||
return path;
|
||||
}
|
||||
|
||||
@@ -2104,29 +2135,6 @@ int git_config_perm(const char *var, const char *value)
|
||||
return -(i & 0666);
|
||||
}
|
||||
|
||||
void check_repository_format(struct repository_format *fmt)
|
||||
{
|
||||
struct repository_format repo_fmt = REPOSITORY_FORMAT_INIT;
|
||||
if (!fmt)
|
||||
fmt = &repo_fmt;
|
||||
check_repository_format_gently(the_repository, repo_get_git_dir(the_repository), fmt, NULL);
|
||||
startup_info->have_repository = 1;
|
||||
repo_set_hash_algo(the_repository, fmt->hash_algo);
|
||||
repo_set_compat_hash_algo(the_repository, fmt->compat_hash_algo);
|
||||
repo_set_ref_storage_format(the_repository,
|
||||
fmt->ref_storage_format,
|
||||
fmt->ref_storage_payload);
|
||||
the_repository->repository_format_worktree_config =
|
||||
fmt->worktree_config;
|
||||
the_repository->repository_format_submodule_path_cfg =
|
||||
fmt->submodule_path_cfg;
|
||||
the_repository->repository_format_relative_worktrees =
|
||||
fmt->relative_worktrees;
|
||||
the_repository->repository_format_partial_clone =
|
||||
xstrdup_or_null(fmt->partial_clone);
|
||||
clear_repository_format(&repo_fmt);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the "prefix", a path to the current working directory
|
||||
* relative to the work tree root, or NULL, if the current working
|
||||
@@ -2801,7 +2809,7 @@ int init_db(const char *git_dir, const char *real_git_dir,
|
||||
* config file, so this will not fail. What we are catching
|
||||
* is an attempt to reinitialize new repository with an old tool.
|
||||
*/
|
||||
check_repository_format(&repo_fmt);
|
||||
check_repository_format(the_repository, &repo_fmt);
|
||||
|
||||
repository_format_configure(the_repository, &repo_fmt, hash, ref_storage_format);
|
||||
|
||||
|
||||
10
setup.h
10
setup.h
@@ -221,16 +221,6 @@ void clear_repository_format(struct repository_format *format);
|
||||
int verify_repository_format(const struct repository_format *format,
|
||||
struct strbuf *err);
|
||||
|
||||
/*
|
||||
* Check the repository format version in the path found in repo_get_git_dir(the_repository),
|
||||
* and die if it is a version we don't understand. Generally one would
|
||||
* set_git_dir() before calling this, and use it only for "are we in a valid
|
||||
* repo?".
|
||||
*
|
||||
* If successful and fmt is not NULL, fill fmt with data.
|
||||
*/
|
||||
void check_repository_format(struct repository_format *fmt);
|
||||
|
||||
const char *get_template_dir(const char *option_template);
|
||||
|
||||
#define INIT_DB_QUIET (1 << 0)
|
||||
|
||||
Reference in New Issue
Block a user