
On 2010/09/24 7:47 AM, Albert ARIBAUD wrote:
On a side note, I do not know of a clear general definition of 'bisectability', which means I could break it yet again unkonwingly. Can you (or anyone, actually :) ) point me to a, or even the, standard definition of 'bisectable' and, if that has a specific meaning, of 'fully bisectable'?
Not sure if there is an agreed definition, but the main idea behind bisection stems from the "git bisect" tool, which allows you to mark one commit as "known good", and another as "known bad", and then calculates a commit in the middle to be tested for "goodness" or "badness". As commits are marked "good" or "bad", the tool halves (bisects) the range of commits until the single commit that introduced the breakage can be identified.
Of course, for the bisection process to be able to work, all points along the path must a) compile and b) be able to be tested for the breakage.
So, a fully bisectable patch series would maintain the above properties, for all boards.
This is one of the reasons that Linus likes to have code used as it is introduced, rather than building up a whole lot of unused infrastructure, only to activate it with a final commit. The bisection would then point to the final commit as the culprit, when the true failure may have been introduced by one of the preceding commits.
That's "as I understand it", of course.
Rogan