[v2,0/5] fetch: Extend --jobs to multiple remotes
mbox series

Message ID 20190812213448.2649-1-palmer@sifive.com
Headers show
Series
  • fetch: Extend --jobs to multiple remotes
Related show

Message

Palmer Dabbelt Aug. 12, 2019, 9:34 p.m. 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.