← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 15: Бінарний пошук проблемного коміту

Технологія: Git

Номер лабораторної: 15 · Рівень: middle

Тема: git bisect: пошук коміту з помилкою

Повний опис / сценарій лабораторної:

Мета: навчитися застосовувати git bisect разом з ручними або автоматизованими тестами для пошуку коміту який вводить баг.



Крок 1. Створити простий сценарій де один з комітів ламає тест.

Пояснення: можна створити файл function15.sh який іноді повертає неправильний результат.



Крок 2. Позначити останній робочий коміт як good.

Пояснення: знайдіть старий хеш у якому тест точно проходив.



Крок 3. Позначити новий поганий стан як bad.

Пояснення: поточний HEAD де тест вже падає.



Крок 4. Запустити bisect.

Команда: git bisect start



Крок 5. Вказати поганий коміт.

Команда: git bisect bad HEAD



Крок 6. Вказати хороший коміт.

Команда: git bisect good ХЕШ_GOOD

Пояснення: Git перейде на проміжний коміт для тестування.



Крок 7. Запустити ручний тест і позначити поточний стан.

Команди: ./run_test.sh; git bisect good або git bisect bad

Пояснення: залежно від результату тесту.



Крок 8. Повторювати крок 7 поки Git не знайде конкретний коміт.

Пояснення: процес триває поки не залишиться один кандидат.



Крок 9. Після завершення повернутися до нормального стану.

Команда: git bisect reset



Крок 10. Міні звіт.

Завдання: опишіть як автоматизувати bisect з тестовим скриптом який повертає код 0 для good і 1 для bad.