From: Giuseppe Bilotta Date: Mon, 22 Feb 2010 23:31:57 GMT Subject: [PATCH 1/2] shell setup: clear_local_git_env() function Message-ID: <1266881518-11213-1-git-send-email-giuseppe.bilotta@gmail.com> In-Reply-To: <7vsk8s274t.fsf@alter.siamese.dyndns.org> 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 --- git-sh-setup.sh | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 7a09566..d382879 100644 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -172,6 +172,15 @@ 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) +clear_local_git_env() { + unset GIT_DIR GIT_WORKTREE GIT_OBJECT_DIRECTORY \ + GIT_INDEX_FILE GIT_GRAFT_FILE GIT_CONFIG \ + GIT_NO_REPLACE_OBJECTS + +} + # 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" -- 1.7.0.200.g5ba36.dirty