This reminds me of the original system I proposed for Rust back when it reached the point where PRs were coming in faster than we could test them. It's similar to what Michael proposed, though a bit more involved: https://gist.github.com/Manishearth/f2971973e164be03890a (yes, it does allude to binary search :p)
At the time, Firefox's model wouldn't fit well because semantic conflicts during merge are an issue -- not actual git merge conflicts, but two changes which are compatible with their respective parents but not with each other. These are less of an issue in Servo or Firefox, because these aren't bootstrapping compilers :) Rust finally went with manual rollups -- they used to be really time consuming but now it's mostly okay. Intermittents were a big problem then, too, and would have broken this model completely. Currently Servo has a pretty high rate of intermittents, -Manish Goregaokar _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo