run-command: extract sanitize_repo_env helper

The current prepare_other_repo_env() does two distinct things:

 1. Strip certain known environment variables that should be set by a
    child process based on a different repository.

 2. Set the GIT_DIR variable to avoid repository discovery.

The second item is valuable for child processes that operate on
submodules, where the repo discovery could be mistaken for the parent
repository.

In the next change, we will see an important case where only the first
item is required as the GIT_DIR discovery should happen naturally from
the '-C' parameter in the child process.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee
2026-03-03 17:31:52 +00:00
committed by Junio C Hamano
parent c5e62e1aa0
commit 5f031fe4f1
2 changed files with 16 additions and 6 deletions

View File

@@ -1847,7 +1847,7 @@ int run_auto_maintenance(int quiet)
return run_command(&maint);
}
void prepare_other_repo_env(struct strvec *env, const char *new_git_dir)
void sanitize_repo_env(struct strvec *env)
{
const char * const *var;
@@ -1856,6 +1856,11 @@ void prepare_other_repo_env(struct strvec *env, const char *new_git_dir)
strcmp(*var, CONFIG_COUNT_ENVIRONMENT))
strvec_push(env, *var);
}
}
void prepare_other_repo_env(struct strvec *env, const char *new_git_dir)
{
sanitize_repo_env(env);
strvec_pushf(env, "%s=%s", GIT_DIR_ENVIRONMENT, new_git_dir);
}