Skip to content

Commit 7d750f0

Browse files
Oblomovgitster
authored andcommitted
shell setup: clear_local_git_env() function
Introduce an auxiliary function to clear all repo-local environment variables. This should be invoked by any shell script that switches repository during execution, to ensure that the environment is clean and that things such as the git dir and worktree are set up correctly. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 94c8cca commit 7d750f0

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

git-sh-setup.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,13 @@ get_author_ident_from_commit () {
159159
LANG=C LC_ALL=C sed -ne "$pick_author_script"
160160
}
161161
162+
# Clear repo-local GIT_* environment variables. Useful when switching to
163+
# another repository (e.g. when entering a submodule). See also the env
164+
# list in git_connect()
165+
clear_local_git_env() {
166+
unset $(git rev-parse --local-env-vars)
167+
}
168+
162169
# Make sure we are in a valid repository of a vintage we understand,
163170
# if we require to be in a git repository.
164171
if test -z "$NONGIT_OK"

0 commit comments

Comments
 (0)