]> Kevux Git Server - rit/commitdiff
setup: stop using `the_repository` in `enter_repo()`
authorPatrick Steinhardt <ps@pks.im>
Tue, 19 May 2026 09:52:12 +0000 (11:52 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 May 2026 10:36:24 +0000 (19:36 +0900)
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 <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
builtin/upload-archive.c
builtin/upload-pack.c
daemon.c
http-backend.c
setup.c
setup.h

index f077159..322d178 100644 (file)
@@ -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);
index 25312bb..718e74b 100644 (file)
@@ -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();
index 30498fa..32831fb 100644 (file)
@@ -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()) {
index 0a7b1aa..947dd90 100644 (file)
--- 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) {
index 1a171c5..c7566b1 100644 (file)
@@ -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 759aba4..cb479cd 100644 (file)
--- 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 364c2c7..d0cfdfd 100644 (file)
--- 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);