Чого затягується реліз?
Трабли після merge release -> master
Під кінець спрінта хтось сів рефакторити (фотка мене)
Фіча велика, не піддається розбиттю на декілька спринтів
Переоцінили свої сили
Спочатку недооціинли свої сили.. А потім переоцінили їх…
Хтось щось поламав.. Всі чекають..
Мокапи помінялись під кінець спрінта
Основні принципи
Однафіча – один бранч, в одному пул реквесті
При конфліктах – master завжди правий
В мастер попадають бранчі в вигляді одного коміта (--squash) -
легко ревертити
Вітка завжди повинна містити останній мастер
QA – тестити треба завжди останній master + feature
В рамках однієї бранчі працювати в –rebase режимі
Як перевірити, чидевелопер змерджив
master?
#!/bin/sh
echo 'detecting latest master..'
localHistory=`git log -n 50 --pretty=format:"%H"`
latestMaster=`git ls-remote origin master | awk '{print $1;}'`
echo "latest master: $latestMaster"
if echo "$localHistory" | grep -q "$latestMaster"; then
echo "branch has latest master"
else
echo "branch doesn't have latest master"
exit 1
fi
20.
Переваги
Роблю фічускільки хочу, час ніколи не піджимає
Легше знайти винного..
В разі проблем на продакшені відкатується лише одна фіча
Не блокуються і не відкатуються інші фічі..
Фічі появляються швидше в продакшені
Область тестування завжди обмежена