diff options
author | Lukas Fleischer <lfleischer@lfos.de> | 2016-06-05 11:36:38 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-06-06 10:58:55 -0700 |
commit | 860a2ebecd26563e6ac0f89c90052b41a17d1703 (patch) | |
tree | 76f73bcbe3d28abbc81026803389624df53fd345 | |
parent | More topics for 2.8.4 (diff) | |
download | tgif-860a2ebecd26563e6ac0f89c90052b41a17d1703.tar.xz |
receive-pack: send auto-gc output over sideband 2
Redirect auto-gc output to the sideband such that it is visible to all
clients. As a side effect, all auto-gc error messages are now prefixed
with "remote: " before being printed to stderr on the client-side which
makes it easier to understand that those error messages originate from
the server.
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/receive-pack.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index c8e32b297c..4abfa38a12 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -1788,9 +1788,20 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) const char *argv_gc_auto[] = { "gc", "--auto", "--quiet", NULL, }; - int opt = RUN_GIT_CMD | RUN_COMMAND_STDOUT_TO_STDERR; + struct child_process proc = CHILD_PROCESS_INIT; + + proc.no_stdin = 1; + proc.stdout_to_stderr = 1; + proc.err = use_sideband ? -1 : 0; + proc.git_cmd = 1; + proc.argv = argv_gc_auto; + close_all_packs(); - run_command_v_opt(argv_gc_auto, opt); + if (!start_command(&proc)) { + if (use_sideband) + copy_to_sideband(proc.err, -1, NULL); + finish_command(&proc); + } } if (auto_update_server_info) update_server_info(0); |