Support parallel merges
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PQM |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
It'd be nice if PQM could process multiple merges for a branch in parallel. If multiple machines are available to run the test suite,, then this should be possible.
One possible way of doing this while still maintaining PQM's invariants (that each revision published passes the tests) would be:
1. take the first N merge requests from the queue
2. for each request, merge it and commit locally. Stop on the first failed merge
3. run the test suite against each revision created in (2) in parallel
4. after the test suites have run, publish revisions up until the first revision that failed the tests.
5. mark each request that passed the tests, and the first that failed as done. Put the remaining requests back on the queue
6. clean up the working tree (throwing away any revisions with failed tests) and repeat
In the worst case, this will have the performance of processing the requests in series. In the best case, (where branches pass the tests) it should be a lot better.
Changed in pqm: | |
importance: | Undecided → Wishlist |
status: | New → Triaged |
We can probably get improved throughput today by assuming most branches
will pass and grabbing e.g. 2 at a time; if the merge fails revert and
try just the first.
However we need a clearer queuing system, the current one is based
around a series of commands from one person with no grammar. We need to
be able to inspect several items in the queue without taking action, to
see if they are compatible, to do *either* what you describe or what I
describe.
-Rob www.robertcolli ns.net/ keys.txt>.
--
GPG key available at: <http://