Заканчивался последний день рабочей недели.
Я готовил себе кофе на офисной кухне, размышляя, как нам сократить очередь запросов на включение, которая сильно выросла с момента введения руководство по обзору .
Казалось бы, простые правила вызвали длительную переписку в комментариях к пул-реквестам между членами команды обзора и разработчиками фреймворка.
Никаких знаков не было.
Темнело.
Внезапно рабочий чат зашуршал сообщениями: – Почему мой запрос на включение был удален? — И мои пул-реквесты были взорваны! - И мое! Буквально через несколько минут инвестиций мы выяснили, что это произошло из-за того, что кто-то удалил рабочую ветку Bootstrap, в которую более 3 месяцев вносили вклад более 40 человек.
Еще раз, чтобы вы могли понять всю масштабность проблемы, сорок человек заливали в нее код более трех месяцев.
Коллеги сразу начали фонтанировать идеями, что у всех нас есть локальные копии этой ветки, и давайте создадим эту ветку с нуля.
По опыту знаю, что поспешные решения и импровизация ни к чему хорошему не приводят, поэтому я попросил всех не предпринимать никаких действий и буквально «убрать руки с клавиатуры».
Итак, диспозиция — пятница, вечер, почти пустой офис, затерянный филиал с огромной кодовой базой.
Если не решить эту проблему здесь и сейчас, то есть вероятность, что ситуация усугубится, если на выходных к работе присоединятся другие разработчики, не в курсе сложившейся ситуации (мы все внимательно читаем рабочий чат, не так ли? ).
Я вежливо спросил в чате, кто удалил ветку Bootstrap, и один молодой разработчик, недавно привлеченный к работе, признался, что сделал это по ошибке.
"Извини".
Хватаю удачливого специалиста, и мы мчимся к молодому разработчику, который в этот момент переживает экзистенциальный кризис, и чье рабочее место по счастливому стечению обстоятельств находится в одном офисе с нами.
Мы, конечно, восстановили ветку — немного git-магии, и всё получилось.
Чего нельзя сказать о более чем 20 пул-реквестах, исчезнувших в недрах GitHub. Неприятно, но не смертельно.
Пора перевести дух, понять, что произошло, и сделать некоторые выводы.
Главный вопрос: почему? Ответ, в общем-то, тривиален – случайно.
Что-то было не так с кодом, который был закоммитирован в собственную рабочую ветку — ничего криминального, просто код был написан некрасиво, и даже если вы отмените коммит, он все равно останется в истории.
Поэтому разработчик решил снести всю свою рабочую ветку и создать заново.
С нуля.
И ветка Bootstrap попала под горячую руку.
Пятница.
Вечер.
Мисклик, да.
GitHub позволяет отменить операцию удаления, но только до тех пор, пока страница не обновится и этот шанс не будет использован.
Можно ли было избежать этой ситуации? Да, ты можешь.
По умолчанию любой, у кого есть доступ на запись в ваш репозиторий, может удалить любую ветку.
Однако GitHub позволяет вам создать правило защиты ветвей для одной или нескольких ветвей.
Где важно убедиться, что соответствующий флажок не установлен.
Для ветки начальной загрузки этого не было сделано, и это нас догнало.
Нижняя линия:
- Ветка была сохранена.
- Теперь для любой темы, в которой участвует более одного человека, мы устанавливаем правило защиты.
То, что я советую всем не забыть сделать.
- Поддержка пакетов BootStrap В JDI Лайт В конце концов мы реализовали это и выпустили.
Но что это такое и почему – это другая история.
-
Появление Кодекса 2016
19 Oct, 24 -
Евросоюз Дает Зеленый Свет Онлайн-Торговле
19 Oct, 24 -
Кофе И Булочка От Дарберри И М.б. Старбакс
19 Oct, 24