Subject: Re: [PATCH] git.c: remove the_repository dependence in run_builtin()

From: Junio C Hamano <[email-masked]>
Date: Thu, 12 Jun 2025 10:16:15 -0700

Lidong Yan <[email-masked]> writes:

> run_builtin() takes a repo parameter, so the use of the_repository
> is no longer necessary. Removed the usage of the_repository.

Good.  The caller always calls this function with the_repository, so
this patch does not change anything in the bigger picture.

> The comment before trace_repo_setup() advises not to use get_git_dir(),
> but this note is unrelated to trace_repo_setup() itself. Additionally,
> get_git_dir() has now been renamed to repo_get_git_dir(). Remove this
> comment line.

Isn't it still relevant to explain the reason why this codepath
avoids calling the repo_get_git_dir() function?

e5b17bda (git: ensure correct git directory setup with -h,
2021-12-06) tells us that the comment is about use of
startup_info->have_repository, which was added by a9ca8a85
(builtins: print setup info if repo is found, 2010-11-26).

> Signed-off-by: Lidong Yan <[email-masked]>
> ---
>  git.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/git.c b/git.c
> index 77c4359522..429ad1c2fb 100644
> --- a/git.c
> +++ b/git.c
> @@ -462,12 +462,11 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv, struct
>  	precompose_argv_prefix(argc, argv, NULL);
>  	if (use_pager == -1 && run_setup &&
>  		!(p->option & DELAY_PAGER_CONFIG))
> -		use_pager = check_pager_config(the_repository, p->cmd);
> +		use_pager = check_pager_config(repo, p->cmd);
>  	if (use_pager == -1 && p->option & USE_PAGER)
>  		use_pager = 1;
>  	if (run_setup && startup_info->have_repository)
> -		/* get_git_dir() may set up repo, avoid that */
> -		trace_repo_setup(the_repository);
> +		trace_repo_setup(repo);
>  	commit_pager_choice();
>  
>  	if (!help && p->option & NEED_WORK_TREE)