This fixes the regression reported by Anthony Sottile[1] with hooks not being connected to a TTY. See 6/6 for details. It would also have been possible to rip the run_processes_parallel_tr2() out of hook.c, as we currently only use it for nproc=1. However it's the plan to have it run multiple hooks, and as 3/6 argues it's a good idea in general for our parallel execution API to learn a mode similar to GNU parallel's "--ungroup", even though at the conclusion of this series the hook API is its only user. 1. https://lore.kernel.org/git/CA+dzEBn108QoMA28f0nC8K21XT+Afua0V2Qv8XkR8rAeqUCCZw@xxxxxxxxxxxxxx/ Ævar Arnfjörð Bjarmason (6): run-command API: replace run_processes_parallel_tr2() with opts struct run-command tests: test stdout of run_command_parallel() run-command: add an "ungroup" option to run_process_parallel() hook tests: fix redirection logic error in 96e7225b310 hook API: don't redundantly re-set "no_stdin" and "stdout_to_stderr" hook API: fix v2.36.0 regression: hooks should be connected to a TTY builtin/fetch.c | 15 ++-- builtin/submodule--helper.c | 12 ++-- hook.c | 19 ++--- run-command.c | 135 +++++++++++++++++++++++++++--------- run-command.h | 56 +++++++++++---- submodule.c | 13 ++-- t/helper/test-run-command.c | 44 ++++++++---- t/t0061-run-command.sh | 45 ++++++++++-- t/t1800-hook.sh | 39 ++++++++++- 9 files changed, 287 insertions(+), 91 deletions(-) -- 2.36.0.893.g80a51c675f6