Merge branch 'jk/maint-push-progress'
"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)
This commit is contained in:
commit
4c732da91c
@ -410,6 +410,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
|
|||||||
const char *receivepack = "git-receive-pack";
|
const char *receivepack = "git-receive-pack";
|
||||||
int flags;
|
int flags;
|
||||||
int nonfastforward = 0;
|
int nonfastforward = 0;
|
||||||
|
int progress = -1;
|
||||||
|
|
||||||
argv++;
|
argv++;
|
||||||
for (i = 1; i < argc; i++, 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;
|
args.verbose = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(arg, "--progress")) {
|
||||||
|
progress = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!strcmp(arg, "--no-progress")) {
|
||||||
|
progress = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!strcmp(arg, "--thin")) {
|
if (!strcmp(arg, "--thin")) {
|
||||||
args.use_thin_pack = 1;
|
args.use_thin_pack = 1;
|
||||||
continue;
|
continue;
|
||||||
@ -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) {
|
if (args.stateless_rpc) {
|
||||||
conn = NULL;
|
conn = NULL;
|
||||||
fd[0] = 0;
|
fd[0] = 0;
|
||||||
|
@ -782,6 +782,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
|
|||||||
argv[argc++] = "--quiet";
|
argv[argc++] = "--quiet";
|
||||||
else if (options.verbosity > 1)
|
else if (options.verbosity > 1)
|
||||||
argv[argc++] = "--verbose";
|
argv[argc++] = "--verbose";
|
||||||
|
argv[argc++] = options.progress ? "--progress" : "--no-progress";
|
||||||
argv[argc++] = url;
|
argv[argc++] = url;
|
||||||
for (i = 0; i < nr_spec; i++)
|
for (i = 0; i < nr_spec; i++)
|
||||||
argv[argc++] = specs[i];
|
argv[argc++] = specs[i];
|
||||||
|
@ -216,13 +216,36 @@ test_expect_success 'push --mirror to repo with alternates' '
|
|||||||
git push --mirror "$HTTPD_URL"/smart/alternates-mirror.git
|
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 &&
|
cd "$ROOT_PATH"/test_repo_clone &&
|
||||||
test_commit quiet &&
|
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_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' '
|
test_expect_success 'http push gives sane defaults to reflog' '
|
||||||
cd "$ROOT_PATH"/test_repo_clone &&
|
cd "$ROOT_PATH"/test_repo_clone &&
|
||||||
test_commit reflog-test &&
|
test_commit reflog-test &&
|
||||||
|
Loading…
Reference in New Issue
Block a user