diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-01-20 11:43:26 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-20 11:43:26 -0800 |
commit | 5135d1c3d2a2c8c6c9701bd0cbcf57ce587f750d (patch) | |
tree | 562c9fb8f46eb287ebff08ac471a9acd4d2ad05d /run-command.c | |
parent | cc14ea8cf4520a9607fba4b1fbacea7fa9723c73 (diff) | |
parent | ac78663b0da0a5b0ad1b87cfe70eecebc0c8a68d (diff) | |
download | git-5135d1c3d2a2c8c6c9701bd0cbcf57ce587f750d.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/run-command.c b/run-command.c index 51fd72c427..cdf0184579 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 |