summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Draisey <matt@draisey.ca>2006-01-19 20:58:03 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-01-25 08:10:14 (GMT)
commit016fb48bc480dde83b57466f59f633cbc5128ae6 (patch)
tree1a74dcfd4c3368cfc703edb678a30af90b19edf4
parent941c9449999192e2d338ee204f4153e30ae43829 (diff)
downloadgit-016fb48bc480dde83b57466f59f633cbc5128ae6.zip
git-016fb48bc480dde83b57466f59f633cbc5128ae6.tar.gz
git-016fb48bc480dde83b57466f59f633cbc5128ae6.tar.bz2
local push/pull env cleanup
remove environment variables relating to the current repository before execing the 'remote' half of a local push or pull operation [jc: the original from Matt spelled out the environment variable names, which I changed to the preprocessor symbols defined in cache.h. Also it missed GRAFT_ENVIRONMENT.] Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--connect.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/connect.c b/connect.c
index d6f4e4c..e1c04e1 100644
--- a/connect.c
+++ b/connect.c
@@ -644,10 +644,16 @@ int git_connect(int fd[2], char *url, const char *prog)
ssh_basename++;
execlp(ssh, ssh_basename, host, command, NULL);
}
- else
+ else {
+ unsetenv(ALTERNATE_DB_ENVIRONMENT);
+ unsetenv(DB_ENVIRONMENT);
+ unsetenv(GIT_DIR_ENVIRONMENT);
+ unsetenv(GRAFT_ENVIRONMENT);
+ unsetenv(INDEX_ENVIRONMENT);
execlp("sh", "sh", "-c", command, NULL);
+ }
die("exec failed");
- }
+ }
fd[0] = pipefd[0][0];
fd[1] = pipefd[1][1];
close(pipefd[0][1]);