3 ms·
It's totally unreadable. There's 5% meat in it almost at the very end, the rest is about selling the feature. The problem is that if you have multiple branches
by jlouis 3y ago
It's totally unreadable. There's 5% meat in it almost at the very end, the rest is about selling the feature.
The problem is that if you have multiple branches going into the same (mono)-repo, then they might all pass a localized CI-check, but fail if they are all merged. This is because the branches have an interaction between them. It can lead to a stall in commits and because everything hinges on the repo, work is going to stall as well.
So you serialize the branches, and impose an order on them: [x_1, x_2, x_3, ...]. Now, when running CI on one of these, x_j say, you do so in a temporary branch containing every branch x_i with i < j. This will avoid a stall up to branch x_j, if you started to merge the branches in order. If CI fails on branch x_j, you remove it from the list (queue) of branches to be merged and continue.