Если вы знаете номер ревизии хорошей сборки, то вместо того, чтобы отступать от головы до тех пор, пока не найдете ревизию, которая сломала сборку, вы можете использовать '1001 * разделяй и властвуй ', чтобы найти проблема. Если у вас есть больше, чем несколько ревизий со времени последнего известного блага, это сэкономит ваше время.
Псевдокод:
known_good=whatever
known_bad=head_revision
start:
candidate=(known_good + known_bad) / 2
build candidate
if success
known_good=candidate
else
known_bad=candidate
if (known_good + 1) == known_bad
goto end
go to start:
end:
Там немного заглянут нечетные ревизии ...