Skip to content

Commit

Permalink
Merge branch 'jk/maint-push-progress'
Browse files Browse the repository at this point in the history
"git push" over smart-http lost progress output and this resurrects it.

By Jeff King
* jk/maint-push-progress:
  t5541: test more combinations of --progress
  teach send-pack about --[no-]progress
  send-pack: show progress when isatty(2)
  • Loading branch information
Junio C Hamano committed May 3, 2012
2 parents f4ed0af + e304aeb commit 4c732da
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
13 changes: 13 additions & 0 deletions builtin/send-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -492,6 +501,10 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
}
}

if (progress == -1)
progress = !args.quiet && isatty(2);
args.progress = progress;

if (args.stateless_rpc) {
conn = NULL;
fd[0] = 0;
Expand Down
1 change: 1 addition & 0 deletions remote-curl.c
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
argv[argc++] = "--quiet";
else if (options.verbosity > 1)
argv[argc++] = "--verbose";
argv[argc++] = options.progress ? "--progress" : "--no-progress";
argv[argc++] = url;
for (i = 0; i < nr_spec; i++)
argv[argc++] = specs[i];
Expand Down
27 changes: 25 additions & 2 deletions t/t5541-http-push.sh
Original file line number Diff line number Diff line change
Expand Up @@ -216,13 +216,36 @@ test_expect_success 'push --mirror to repo with alternates' '
git push --mirror "$HTTPD_URL"/smart/alternates-mirror.git
'

test_expect_success TTY 'quiet push' '
test_expect_success TTY 'push shows progress when stderr is a tty' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit noisy &&
test_terminal git push >output 2>&1 &&
grep "^Writing objects" output
'

test_expect_success TTY 'push --quiet silences status and progress' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit quiet &&
test_terminal git push --quiet --no-progress 2>&1 | tee output &&
test_terminal git push --quiet >output 2>&1 &&
test_cmp /dev/null output
'

test_expect_success TTY 'push --no-progress silences progress but not status' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit no-progress &&
test_terminal git push --no-progress >output 2>&1 &&
grep "^To http" output &&
! grep "^Writing objects"
'

test_expect_success 'push --progress shows progress to non-tty' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit progress &&
git push --progress >output 2>&1 &&
grep "^To http" output &&
grep "^Writing objects" output
'

test_expect_success 'http push gives sane defaults to reflog' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit reflog-test &&
Expand Down

0 comments on commit 4c732da

Please sign in to comment.