From: Patrick Steinhardt Date: Tue, 19 May 2026 09:52:12 +0000 (+0200) Subject: setup: stop using `the_repository` in `enter_repo()` X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=ea1d0f886da89edb28a0a64f19e7f4a67a50c6ef;p=thirdparty%2Fgit.git setup: stop using `the_repository` in `enter_repo()` Stop using `the_repository` in `enter_repo()` 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. Signed-off-by: Patrick Steinhardt Signed-off-by: Junio C Hamano --- diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index f0771590a7..322d178c92 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -2643,7 +2643,7 @@ int cmd_receive_pack(int argc, setup_path(); - if (!enter_repo(service_dir, 0)) + if (!enter_repo(the_repository, service_dir, 0)) die("'%s' does not appear to be a git repository", service_dir); repo_config(the_repository, receive_pack_config, NULL); diff --git a/builtin/upload-archive.c b/builtin/upload-archive.c index 25312bb2a5..718e74b3ac 100644 --- a/builtin/upload-archive.c +++ b/builtin/upload-archive.c @@ -31,7 +31,7 @@ int cmd_upload_archive_writer(int argc, if (argc != 2) usage(upload_archive_usage); - if (!enter_repo(argv[1], 0)) + if (!enter_repo(the_repository, argv[1], 0)) die("'%s' does not appear to be a git repository", argv[1]); init_archivers(); diff --git a/builtin/upload-pack.c b/builtin/upload-pack.c index 30498fafea..32831fb879 100644 --- a/builtin/upload-pack.c +++ b/builtin/upload-pack.c @@ -59,7 +59,7 @@ int cmd_upload_pack(int argc, if (strict) enter_repo_flags |= ENTER_REPO_STRICT; - if (!enter_repo(dir, enter_repo_flags)) + if (!enter_repo(the_repository, dir, enter_repo_flags)) die("'%s' does not appear to be a git repository", dir); switch (determine_protocol_version_server()) { diff --git a/daemon.c b/daemon.c index 0a7b1aae44..947dd90655 100644 --- a/daemon.c +++ b/daemon.c @@ -244,14 +244,14 @@ static const char *path_ok(const char *directory, struct hostinfo *hi) } enter_repo_flags = strict_paths ? ENTER_REPO_STRICT : 0; - path = enter_repo(dir, enter_repo_flags); + path = enter_repo(the_repository, dir, enter_repo_flags); if (!path && base_path && base_path_relaxed) { /* * if we fail and base_path_relaxed is enabled, try without * prefixing the base path */ dir = directory; - path = enter_repo(dir, enter_repo_flags); + path = enter_repo(the_repository, dir, enter_repo_flags); } if (!path) { diff --git a/http-backend.c b/http-backend.c index 1a171c5c5a..c7566b1d12 100644 --- a/http-backend.c +++ b/http-backend.c @@ -809,7 +809,7 @@ int cmd_main(int argc UNUSED, const char **argv UNUSED) not_found(&hdr, "Request not supported: '%s'", dir); setup_path(); - if (!enter_repo(dir, 0)) + if (!enter_repo(the_repository, dir, 0)) not_found(&hdr, "Not a git repository: '%s'", dir); if (!getenv("GIT_HTTP_EXPORT_ALL") && access("git-daemon-export-ok", F_OK) ) diff --git a/setup.c b/setup.c index 759aba4e2c..cb479cd91a 100644 --- a/setup.c +++ b/setup.c @@ -1765,7 +1765,7 @@ enum discovery_result discover_git_directory_reason(struct strbuf *commondir, return result; } -const char *enter_repo(const char *path, unsigned flags) +const char *enter_repo(struct repository *repo, const char *path, unsigned flags) { static struct strbuf validated_path = STRBUF_INIT; static struct strbuf used_path = STRBUF_INIT; @@ -1838,7 +1838,7 @@ const char *enter_repo(const char *path, unsigned flags) } if (is_git_directory(".")) { - set_git_dir(the_repository, ".", 0); + set_git_dir(repo, ".", 0); check_repository_format(NULL); return path; } diff --git a/setup.h b/setup.h index 364c2c728a..d0cfdfd44a 100644 --- a/setup.h +++ b/setup.h @@ -134,7 +134,7 @@ enum { * links. User relative paths are also returned as they are given, * except DWIM suffixing. */ -const char *enter_repo(const char *path, unsigned flags); +const char *enter_repo(struct repository *repo, const char *path, unsigned flags); const char *setup_git_directory_gently(int *); const char *setup_git_directory(void);