diff options
author | Jeff King <peff@peff.net> | 2012-05-01 04:42:24 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-05-01 09:40:30 -0700 |
commit | 391b1f2003c425773c01799969368a517375b1a4 (patch) | |
tree | 4d55e7067d836be1409c40bd0d062de627b7eefb /builtin/send-pack.c | |
parent | 8d32e60dbe5185ffdb20bd805b3936ebbcde463a (diff) | |
download | git-391b1f2003c425773c01799969368a517375b1a4.tar.gz |
teach send-pack about --[no-]progress
The send_pack function gets a "progress" flag saying "yes,
definitely show progress" or "no, definitely do not show
progress". This gets set properly by transport_push when
send_pack is called directly.
However, when the send-pack command is executed separately
(as it is for the remote-curl helper), there is no way to
tell it "definitely do this". As a result, we do not
properly respect "git push --no-progress" for smart-http
remotes; you will still get progress if stderr is a tty.
This patch teaches send-pack --progress and --no-progress,
and teaches remote-curl to pass the appropriate option to
override send-pack's isatty check. This fixes the
--no-progress case above, and as a bonus, also makes "git
push --progress" work when stderr is not a tty.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/send-pack.c')
-rw-r--r-- | builtin/send-pack.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/builtin/send-pack.c b/builtin/send-pack.c index 7d22715630..d5d7105ba2 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -410,6 +410,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) const char *receivepack = "git-receive-pack"; int flags; int nonfastforward = 0; + int progress = -1; argv++; for (i = 1; i < argc; i++, argv++) { @@ -452,6 +453,14 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) args.verbose = 1; continue; } + if (!strcmp(arg, "--progress")) { + progress = 1; + continue; + } + if (!strcmp(arg, "--no-progress")) { + progress = 0; + continue; + } if (!strcmp(arg, "--thin")) { args.use_thin_pack = 1; continue; @@ -492,8 +501,9 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) } } - if (!args.quiet) - args.progress = isatty(2); + if (progress == -1) + progress = !args.quiet && isatty(2); + args.progress = progress; if (args.stateless_rpc) { conn = NULL; |