Original cover letter for context: https://lore.kernel.org/git/20221011232604.839941-1-calvinwan@xxxxxxxxxx/ Changes since v2 Rebased on top of Avar's v3 run-command refactor[1] pipe_output_fn has been decoupled from 'err' and now uses a new variable in run_processes_parallel_opts, 'out'. This simplifies much of the logic and testing difficulty of the previous patch, since 'out' only holds output from child processes and nothing else. Added a new patch to add hide_output to run_processes_parallel_opts. I previously was reseting 'err' as to not print output from child processes, but that was an unnecessary complication. A simple option to not print output is much cleaner. Added a setup patch before "submodule: move status parsing into function" Fixed many stylistic changes and rewrote some documentation recommended by Avar -- thank you for your reviews! [1] https://lore.kernel.org/git/cover-v3-00.15-00000000000-20221012T205712Z-avarab@xxxxxxxxx/ Calvin Wan (6): run-command: add pipe_output_fn to run_processes_parallel_opts run-command: add hide_output to run_processes_parallel_opts submodule: strbuf variable rename submodule: move status parsing into function diff-lib: refactor match_stat_with_submodule diff-lib: parallelize run_diff_files for submodules Documentation/config/submodule.txt | 12 ++ diff-lib.c | 102 +++++++++++-- run-command.c | 29 +++- run-command.h | 30 ++++ submodule.c | 232 +++++++++++++++++++++++++---- submodule.h | 9 ++ t/helper/test-run-command.c | 19 +++ t/t0061-run-command.sh | 36 +++++ t/t4027-diff-submodule.sh | 19 +++ t/t7506-status-submodule.sh | 19 +++ 10 files changed, 457 insertions(+), 50 deletions(-) -- 2.38.0.135.g90850a2211-goog