[PATCH v2 0/5] fetch: Extend --jobs to multiple remotes
To
git@vger.kernel.org
Cc
peff@peff.net
e@80x24.org
chriscool@tuxfamily.org
gitster@pobox.com
jonathantanmy@google.com
tboegi@web.de
bwilliams.eng@gmail.com
jeffhost@microsoft.com
From
Palmer Dabbelt
Date
2019-08-12 21:34:43 UTC
It seems like the feedback for v1 was fairly positive, so I managed to
find some time to go ahead finish it.  The result is a much cleaner
patch set.  I think this could be merged in its current state, but there
are a few outstanding concerns I have:

* fetch.jobs isn't documented because I couldn't find any
  documentation for submodule.fetchjobs so I didn't know where to start
  writing.
* I took the complicated approach and added --submodule-fetch-jobs and
  --fetch-jobs before converting --jobs over to set both.  At the time I
  thought it wouldn't add too much extra complexity.  I wasn't looking
  closely enough and ended up with a custom parsing function which is a
  bit ugly.

I'm happy to fix either of these, but I wanted to send out the v2 before
going any farther because I wasn't sure if --jobs would be converted
over right away or if there was going to be a deprecation period.  I've
written the patch set such that the final patch can easily be dropped to
avoid changing existing behavior.

I'm also happy to re-spin this to just make --jobs control remotes and
drop the --fetch-jobs and --submodule-fetch-jobs arguments, which would
make the patch set somewhat simpler but preclude a deprecation period.

Changes since v1 <20190717015903.4384-1-palmer@sifive.com>:

* fetch_multiple() has been rewritten to use
  run_processes_parallel_tr2() rather than manage children on its own.
* The --fetch-jobs argument has been added.
* The --jobs arugemnt has been used, instead of the --parallel argument.