send-pack: show progress when isatty(2)
authorJeff King <peff@peff.net>
Tue, 1 May 2012 08:41:42 +0000 (04:41 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 May 2012 16:40:28 +0000 (09:40 -0700)
The send_pack_args struct has two verbosity flags: "quiet"
and "progress". Originally, if "quiet" was set, we would
tell pack-objects explicitly to be quiet, and if "progress"
was set, we would tell it to show progress. Otherwise, we
told it neither, and it relied on isatty(2) to make the
decision itself.

However, commit 01fdc21 changed the meaning of these
variables. Now both "quiet" and "!progress" instruct us to
tell pack-objects to be quiet (and a non-zero "progress"
means the same as before). This works well for transports
which call send_pack directly, as the transport code copies
transport->progress into send_pack_args->progress, and they
both have the same meaning.

However, the code path of calling "git send-pack" was left
behind. It always sets "progress" to 0, and thus always
tells pack-objects to be quiet.  We can work around this by
checking isatty(2) ourselves in the cmd_send_pack code path,
restoring the original behavior of the send-pack command.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/send-pack.c

index 9df341c793d58eff215805bf5ca5da383f4a99d9..7d2271563016528c07b581a77ccdc63f8d98799c 100644 (file)
@@ -492,6 +492,9 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
                }
        }
 
+       if (!args.quiet)
+               args.progress = isatty(2);
+
        if (args.stateless_rpc) {
                conn = NULL;
                fd[0] = 0;