shell setup: clear_local_git_env() function
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Wed, 24 Feb 2010 23:34:16 +0000 (00:34 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 25 Feb 2010 00:24:25 +0000 (16:24 -0800)
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>
git-sh-setup.sh
index d56426dd396190a07de7d661cd22fb284b759ca8..cf864a62738292cdd27d4461221369ef034516c5 100755 (executable)
@@ -159,6 +159,13 @@ get_author_ident_from_commit () {
        LANG=C LC_ALL=C sed -ne "$pick_author_script"
 }
 
+# Clear repo-local GIT_* environment variables. Useful when switching to
+# another repository (e.g. when entering a submodule). See also the env
+# list in git_connect()
+clear_local_git_env() {
+       unset $(git rev-parse --local-env-vars)
+}
+
 # Make sure we are in a valid repository of a vintage we understand,
 # if we require to be in a git repository.
 if test -z "$NONGIT_OK"