Original cover letter for context: https://lore.kernel.org/git/20221011232604.839941-1-calvinwan@xxxxxxxxxx/ Changes since v3 Renamed pipe_output_fn to duplicate_output_fn and now passes an additional "strbuf* out" parameter. Output is directly duplicated to that function rather than held in a separate variable. Slightly rewrote the tests to more accurately capture the expected output of duplicate_output_fn. Removed a patch that added an option to hide child process output. Child process output is now reset in status_duplicate_output. More style changes as suggested by Avar Calvin Wan (5): run-command: add duplicate_output_fn 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 | 103 +++++++++++-- run-command.c | 13 +- run-command.h | 24 +++ submodule.c | 229 +++++++++++++++++++++++++---- submodule.h | 9 ++ t/helper/test-run-command.c | 21 +++ t/t0061-run-command.sh | 39 +++++ t/t4027-diff-submodule.sh | 19 +++ t/t7506-status-submodule.sh | 19 +++ 10 files changed, 441 insertions(+), 47 deletions(-) -- 2.38.1.431.g37b22c650d-goog