aboutsummaryrefslogtreecommitdiff
path: root/run-command.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-01-20 11:43:26 -0800
committerJunio C Hamano <gitster@pobox.com>2016-01-20 11:43:26 -0800
commit5135d1c3d2a2c8c6c9701bd0cbcf57ce587f750d (patch)
tree562c9fb8f46eb287ebff08ac471a9acd4d2ad05d /run-command.c
parentcc14ea8cf4520a9607fba4b1fbacea7fa9723c73 (diff)
parentac78663b0da0a5b0ad1b87cfe70eecebc0c8a68d (diff)
downloadgit-5135d1c3d2a2c8c6c9701bd0cbcf57ce587f750d.tar.gz
git-5135d1c3d2a2c8c6c9701bd0cbcf57ce587f750d.tar.xz
Merge branch 'nd/clear-gitenv-upon-use-of-alias'
d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias handling by overwriting GIT_WORK_TREE environment variable to affect subprocesses when set_git_work_tree() gets called, which resulted in a rather unpleasant regression to "clone" and "init". Try to address the same issue by always restoring the environment and respawning the real underlying command when handling alias. * nd/clear-gitenv-upon-use-of-alias: run-command: don't warn on SIGPIPE deaths git.c: make sure we do not leak GIT_* to alias scripts setup.c: re-fix d95138e (setup: set env $GIT_WORK_TREE when .. git.c: make it clear save_env() is for alias handling only
Diffstat (limited to 'run-command.c')
-rw-r--r--run-command.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/run-command.c b/run-command.c
index 51fd72c42..cdf018457 100644
--- a/run-command.c
+++ b/run-command.c
@@ -247,7 +247,7 @@ static int wait_or_whine(pid_t pid, const char *argv0, int in_signal)
error("waitpid is confused (%s)", argv0);
} else if (WIFSIGNALED(status)) {
code = WTERMSIG(status);
- if (code != SIGINT && code != SIGQUIT)
+ if (code != SIGINT && code != SIGQUIT && code != SIGPIPE)
error("%s died of signal %d", argv0, code);
/*
* This return value is chosen so that code & 0xff