Merge pull request #432: sequencer: avoid progress when stderr is redirected

During a run of the Scalar functional tests, we hit a case where the
inexact rename detection of a 'git cherry-pick' command slowed to the
point of writing its delayed progress, failing the test because stderr
differed from the control case. Showing progress like this when stderr
is not a terminal is non-standard for Git, so inject an isatty(2) when
initializing the progress option in sequencer.c.

Unfortunately, there is no '--quiet' option in 'git cherry-pick'
currently wired up. This could be considered in the future, and the
isatty(2) could be moved to that position. This would also be needed for
commands like 'git rebase', so we leave that for another time.
This commit is contained in:
Derrick Stolee 2021-09-23 11:01:07 -04:00 коммит произвёл Victoria Dye
Родитель 78b45b5e87 04c8fb48a2
Коммит 03b0b2d879
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -696,7 +696,7 @@ static int do_recursive_merge(struct repository *r,
o.branch2 = next ? next_label : "(empty tree)"; o.branch2 = next ? next_label : "(empty tree)";
if (is_rebase_i(opts)) if (is_rebase_i(opts))
o.buffer_output = 2; o.buffer_output = 2;
o.show_rename_progress = 1; o.show_rename_progress = isatty(2);
head_tree = parse_tree_indirect(head); head_tree = parse_tree_indirect(head);
next_tree = next ? repo_get_commit_tree(r, next) : empty_tree(r); next_tree = next ? repo_get_commit_tree(r, next) : empty_tree(r);