Последствия создания нового приложения из ветви, которая слишком сильно различалась - PullRequest
0 голосов
/ 28 сентября 2018

Я изо всех сил пытался сформулировать вопрос таким образом, чтобы он не стал слишком субъективным.Любые выпуски приветствуются.

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

Наше решение состояло в том, чтобы развернуть эту ветку в другом домене, чтобы позволить имиграть с этим.Им это нравилось, но никто из других клиентов не хотел им пользоваться.Это была основная функция, поэтому мы не смогли просто объединить мастер и включить или отключить его по запросу.

Прошло время, и эта новая ветвь получала все больше и больше обновлений и функций, вплоть до того момента, что сейчасэто другое приложение, едва связанное с master (конечно, они разделяют 90% своего ядра, но теперь они служат другим целям).

Это не технический вопрос, разделение проекта обсуждалось и решалось ранее: Создание нового проекта из ветви и нам это понятно.

Что мы хотим знать, так это то, что у вас была подобная ситуация и как вы ее решили?Вы просто сохранили ветви такими, какими они были, или вы разделили репо на две части?

tl; dr

В настоящее время мы разделены.Имеет смысл разделить репозиторий и сохранить его как есть.Если мы разделим, может быть, мы вынуждены дважды обновить некоторые общие характеристики, но это все же произойдет, если они находятся в одном репо.С другой стороны, наличие двух HEADS (двух репозиториев) сделает более понятным и понятным процесс отладки / развертывания с течением времени и началом накопления коммитов.

Я сделал диаграмму, чтобы проиллюстрировать нашу точку зрения, надеюсь, это поможет: diagram

1 Ответ

0 голосов
/ 29 сентября 2018

Как только у вас есть кодовая база (здесь ветвь), которая развивается до точки, которой необходим собственный жизненный цикл (собственный набор тегов, ветки, цикл выпуска), она должна быть изолирована в своем собственном хранилище.

Это упростит тегирование и ветвление: вам не придется управлять двумя различными наборами тегов / веток в зависимости от вашего (сейчас) двух разных продуктов.

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

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