summaryrefslogtreecommitdiff
path: root/builtin/send-pack.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2012-05-01 04:42:24 -0400
committerJunio C Hamano <gitster@pobox.com>2012-05-01 09:40:30 -0700
commit391b1f2003c425773c01799969368a517375b1a4 (patch)
tree4d55e7067d836be1409c40bd0d062de627b7eefb /builtin/send-pack.c
parent8d32e60dbe5185ffdb20bd805b3936ebbcde463a (diff)
downloadgit-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.c14
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;