I saw with sadness that pd/fetch-jobs went nowhere, and read in the most recent What's Cooking mail that it was even dropped. This is my attempt to resurrect the idea (although without the overhead of trying to support a first-class UI to control submodule and multiple-remote fetches independently, of which I was a rather outspoken opponent). To make things a bit safer, this patch uses the --end-of-options marker, and is therefore based on top of jk/eoo. Changes since v1: * The regression test now passes even under GETTEXT_POISON. * The needles used in the regression test are now more indicative of the code producing them. Johannes Schindelin (1): fetch: let --jobs=<n> parallelize --multiple, too Documentation/config/fetch.txt | 10 +++ Documentation/fetch-options.txt | 13 ++-- builtin/fetch.c | 124 +++++++++++++++++++++++++++----- t/t5514-fetch-multiple.sh | 11 +++ 4 files changed, 137 insertions(+), 21 deletions(-) base-commit: 67feca3b1c45a51b204253039139b46cc07e145f Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-369%2Fdscho%2Ffetch-jobs-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-369/dscho/fetch-jobs-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/369 Range-diff vs v1: 1: 818936f1e0 ! 1: 93a155a000 fetch: let --jobs=<n> parallelize --multiple, too @@ -267,9 +267,9 @@ + + test_must_fail env GIT_TRACE="$PWD/trace" \ + git fetch --jobs=2 --multiple one two 2>err && -+ grep "2 tasks" trace && -+ grep "one.*128" err && -+ grep "two.*128" err ++ grep "preparing to run up to 2 tasks" trace && ++ test_i18ngrep "could not fetch .one.*128" err && ++ test_i18ngrep "could not fetch .two.*128" err +' + test_done -- gitgitgadget