summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@lfos.de>2016-06-05 09:36:38 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-06-06 17:58:55 (GMT)
commit860a2ebecd26563e6ac0f89c90052b41a17d1703 (patch)
tree76f73bcbe3d28abbc81026803389624df53fd345 /builtin
parent4b0891ffe4ec3aef081cf48c5f9a747586076f7a (diff)
downloadgit-860a2ebecd26563e6ac0f89c90052b41a17d1703.zip
git-860a2ebecd26563e6ac0f89c90052b41a17d1703.tar.gz
git-860a2ebecd26563e6ac0f89c90052b41a17d1703.tar.bz2
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>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/receive-pack.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index c8e32b2..4abfa38 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);