Как предотвратить распространение ошибки через будущие новые функции

Мы столкнулись с проблемой реализации Git в качестве нашего контроля версий. Как можно скорее мы хотим реализовать полный Git Flow.

Давайте представим себе такую ​​ситуацию (Филиалы: Разработка & Мастер):

  • Мария работает над новой функцией и в конце дня отправляет ее в ветку Develop.
  • На следующий день Боб будет pull все изменения, внесенные в Develop и начать работать над новой функцией.
  • В конце дня Боб также выдвигает свои изменения Develop,

НО, после этого они обнаруживают, что у первого толчка Марии была ошибка, и они не могут отправить ее в производство (Мастер). Так что код Боба теперь "заражен" ошибкой Марии.

Как решить это или даже предотвратить подобные вещи?

1 ответ

Решение

Вы думаете о контроле версий все неправильно. Ничто не было "заражено", ошибка просто существовала на developдо его отправки в производство. Ошибки не "распространяются через будущие выпуски", они просто существуют, пока вы их не исправите.

Либо создайте исправление и объедините его в developили создать revert для слияния Марии, и слить это в develop, В любом случае, исправить это просто исправить develop и двигаться дальше. "Код Боба" не стал "зараженным", ветвь разработки была задержана (надеюсь, ненадолго) из-за ошибки.

Вы не можете предотвратить подобные вещи. Ошибки появятся в коде, это факт жизни. Вы случайно обнаружили ошибку до того, как она была отправлена, это хорошо, это Git ведет себя так, как задумано. Вы просто пишете исправление, добавляете регрессионный тест и идете дальше.

Если вы следите за Git Flow, это еще меньше проблем: работа Марии и Боба войдет в релиз, который пройдет тестирование и исправление ошибок перед отправкой. Если вы намеревались объединить изменения Боба непосредственно в masterи проблема в том, что они задерживаются, ожидая сплошной ветки релиза, тогда их следует рассматривать как исправление с самого начала.

Другие вопросы по тегам