receive-pack: turn on index-pack resolving progress
authorJeff King <peff@peff.net>
Fri, 15 Jul 2016 10:35:28 +0000 (06:35 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Jul 2016 19:11:10 +0000 (12:11 -0700)
When we receive a large push, the server side may have to
spend a lot of CPU processing the incoming packfile.

During the "receiving" phase, we are typically network
bound, and the client is writing its own progress to the
user. But during the delta resolution phase, we may spend
minutes (e.g., for a full push of linux.git) without
making any indication to the user that the connection has
not hung.

Let's ask index-pack to produce progress output for this
phase (unless the client asked us to be quiet, of course).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
index ce819209a52dfbe883edf8a175c12ae706cef18f..de322bc49111918e348b806c07a640ae862226d5 100644 (file)
@@ -1547,6 +1547,8 @@ static const char *unpack(int err_fd, struct shallow_info *si)
                                 (uintmax_t)getpid(),
                                 hostname);
 
+               if (!quiet && err_fd)
+                       argv_array_push(&child.args, "--show-resolving-progress");
                if (fsck_objects)
                        argv_array_pushf(&child.args, "--strict%s",
                                fsck_msg_types.buf);