зеркало из https://github.com/microsoft/git.git
receive-pack: do not leak output from auto-gc to standard output
The standard output channel of receive-pack is a structured protocol channel, and subprocesses must never be allowed to leak anything into it by writing to their standard output. Use RUN_COMMAND_STDOUT_TO_STDERR option to run_command_v_opt() just like we do when running hooks to prevent output from "gc" leaking to the standard output. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
2c3fd4bbb4
Коммит
4b7f2fa4c6
|
@ -977,7 +977,8 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix)
|
||||||
const char *argv_gc_auto[] = {
|
const char *argv_gc_auto[] = {
|
||||||
"gc", "--auto", "--quiet", NULL,
|
"gc", "--auto", "--quiet", NULL,
|
||||||
};
|
};
|
||||||
run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
|
int opt = RUN_GIT_CMD | RUN_COMMAND_STDOUT_TO_STDERR;
|
||||||
|
run_command_v_opt(argv_gc_auto, opt);
|
||||||
}
|
}
|
||||||
if (auto_update_server_info)
|
if (auto_update_server_info)
|
||||||
update_server_info(0);
|
update_server_info(0);
|
||||||
|
|
|
@ -145,7 +145,7 @@ test_expect_success 'push --all excludes remote-tracking hierarchy' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_failure 'receive-pack runs auto-gc in remote repo' '
|
test_expect_success 'receive-pack runs auto-gc in remote repo' '
|
||||||
rm -rf parent child &&
|
rm -rf parent child &&
|
||||||
git init parent &&
|
git init parent &&
|
||||||
(
|
(
|
||||||
|
|
Загрузка…
Ссылка в новой задаче