mirror of
https://github.com/git-for-windows/git.git
synced 2026-06-16 13:04:57 -05:00
setup: inline check_and_apply_repository_format()
We have two callsites of `check_and_apply_repository_format()`. In a subsequent commit we'll want to adapt one of those callsites to change the order in which we read and apply the repository format, at which point the helper function will not really be a good fit for us anymore. Inline the function to both of the callsites. 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
9adfd2cb8f
commit
e924c8bf92
47
setup.c
47
setup.c
@@ -1788,32 +1788,6 @@ int apply_repository_format(struct repository *repo,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the repository format version in the path found in repo_get_git_dir(repo),
|
||||
* 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_and_apply_repository_format(struct repository *repo,
|
||||
struct repository_format *fmt,
|
||||
enum apply_repository_format_flags flags)
|
||||
{
|
||||
struct repository_format repo_fmt = REPOSITORY_FORMAT_INIT;
|
||||
struct strbuf err = STRBUF_INIT;
|
||||
|
||||
if (!fmt)
|
||||
fmt = &repo_fmt;
|
||||
|
||||
check_repository_format_gently(repo_get_git_dir(repo), fmt, NULL);
|
||||
if (apply_repository_format(repo, fmt, flags, &err) < 0)
|
||||
die("%s", err.buf);
|
||||
startup_info->have_repository = 1;
|
||||
|
||||
clear_repository_format(&repo_fmt);
|
||||
}
|
||||
|
||||
const char *enter_repo(struct repository *repo, const char *path, unsigned flags)
|
||||
{
|
||||
static struct strbuf validated_path = STRBUF_INIT;
|
||||
@@ -1887,9 +1861,17 @@ const char *enter_repo(struct repository *repo, const char *path, unsigned flags
|
||||
}
|
||||
|
||||
if (is_git_directory(".")) {
|
||||
struct repository_format fmt = REPOSITORY_FORMAT_INIT;
|
||||
struct strbuf err = STRBUF_INIT;
|
||||
|
||||
set_git_dir(repo, ".", 0);
|
||||
check_and_apply_repository_format(repo, NULL,
|
||||
APPLY_REPOSITORY_FORMAT_HONOR_ENV);
|
||||
check_repository_format_gently(".", &fmt, NULL);
|
||||
if (apply_repository_format(repo, &fmt, APPLY_REPOSITORY_FORMAT_HONOR_ENV, &err) < 0)
|
||||
die("%s", err.buf);
|
||||
startup_info->have_repository = 1;
|
||||
|
||||
clear_repository_format(&fmt);
|
||||
strbuf_release(&err);
|
||||
return path;
|
||||
}
|
||||
|
||||
@@ -2820,6 +2802,7 @@ int init_db(struct repository *repo,
|
||||
int exist_ok = flags & INIT_DB_EXIST_OK;
|
||||
char *original_git_dir = real_pathdup(git_dir, 1);
|
||||
struct repository_format repo_fmt = REPOSITORY_FORMAT_INIT;
|
||||
struct strbuf err = STRBUF_INIT;
|
||||
|
||||
if (real_git_dir) {
|
||||
struct stat st;
|
||||
@@ -2846,9 +2829,10 @@ int init_db(struct repository *repo,
|
||||
* config file, so this will not fail. What we are catching
|
||||
* is an attempt to reinitialize new repository with an old tool.
|
||||
*/
|
||||
check_and_apply_repository_format(repo, &repo_fmt,
|
||||
APPLY_REPOSITORY_FORMAT_HONOR_ENV);
|
||||
|
||||
check_repository_format_gently(repo_get_git_dir(repo), &repo_fmt, NULL);
|
||||
if (apply_repository_format(repo, &repo_fmt, APPLY_REPOSITORY_FORMAT_HONOR_ENV, &err) < 0)
|
||||
die("%s", err.buf);
|
||||
startup_info->have_repository = 1;
|
||||
repository_format_configure(repo, &repo_fmt, hash, ref_storage_format);
|
||||
|
||||
/*
|
||||
@@ -2904,6 +2888,7 @@ int init_db(struct repository *repo,
|
||||
}
|
||||
|
||||
clear_repository_format(&repo_fmt);
|
||||
strbuf_release(&err);
|
||||
free(original_git_dir);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user