Какова цель "интеграционной ветви"? - PullRequest
15 голосов
/ 13 декабря 2010

Если стратегия ветвления состоит из n функциональных ветвей, "главной" (основной линии) и "интеграционной" ветви.Какова цель интеграции отрасли?Почему тестирование и интеграция не могут выполняться в самой ветви функций?

Ответы [ 3 ]

16 голосов
/ 13 декабря 2010

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

Конечно, у вас нет для разделения вещей таким образом. Вы могли бы делать интеграцию в функциональных ветвях так же, как вы могли бы делать всю свою работу над мастером Но разделение интересов - это хорошо.

6 голосов
/ 16 марта 2015

Чтобы быть более точным в отношении того, почему именно «разделение - это хорошо»: цель ветви интеграции - определить, работают ли новые функции не только сами по себе, но и в сочетании с другими новыми функциями. Это означает, что это не так, функции могут вызывать конфликты, которые требуют времени для разрешения.

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

Теперь, если вы уже слили ветки объектов друг с другом, вам будет сложно объединить их отдельно в основную линию. Это не совсем невозможно, но это определенно хлопотно (я пробовал).

Если в ваших ветвях функций содержатся основные отрывки кода или если они существенно перекрываются в отношении областей кода, над которыми работаем, вы можете даже пойти дальше в этом направлении и иметь ветви, объединяющие две функции, прежде чем объединять их где-нибудь еще, включая глобальную интеграционную ветвь, т.е. е. иметь несколько уровней интеграции. Конечно, это, как правило, нежелательная ситуация, но вы, возможно, не сможете ее избежать, и возникающие конфликты будет намного легче разрешить, если вы щедро используете ветви интеграции.

2 голосов
/ 16 мая 2011

Одна из основных причин, по которой я часто вижу необходимость в ветви "интеграции", заключается в том, что ваши функциональные ветви сами по себе не тестируются. По моему опыту, это обычно связано с зависимостью от базы данных. Или рассмотрим проект веб-сайта с поддержкой базы данных ... допустим, это приложение JSP, размещенное в BEA Weblogic, обратно в базе данных Oracle объемом 60 ГБ; Потребовалось бы МНОГО оборудования, чтобы дать каждой ветви функций свой собственный экземпляр BEA Weblogic и Oracle для тестирования. Вместо этого, как правило, проще развернуть как можно лучше в функциональную ветвь, но перейти в интеграционную ветвь для полного тестирования QA, где QA необходимо выполнить на полном веб-сервере и базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...