Чем опасен rebase-2, или как rebase мешал баг искать
Однажды старший программист Антон, попивая кофе и вспоминая уволенного в предыдущей статье Васю, просматривал очередной тикет в багтрекере. В тикете было сказано, что одна из программ в очень важном проекте стала при некоторых условиях возвращать «BAD» вместо «GOOD». Недолго думая, Антон написал тестовый скрипт и приступил к поиску причины такого поведения.testscript.sh#!/bin/bash result=`./project.sh` echo $result if [[ »$result» == «GOOD» ]] then echo «Test passed» exit 0 elif [[ »$result» == «BAD» ]] then echo «Test failed» exit 1 else echo «Can not apply test» exit 125 fi git bisect start ./testscript.sh git bisect bad ./testscript.sh git bisect good … В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие. Как вдруг: — Хм… Проект не компилируется, тест прогнать не получится. Ну ладно, не беда, пропустим: git bisect skip. — Что за ерунда? Опять не компилируется. Опять пропустим… — Опять??? Какой @#$%^ запушил столько битых коммитов? Читать дальше →