Предложения по макету подрывной деятельности, когда одна «ветка» никогда не объединяется - PullRequest
2 голосов
/ 17 февраля 2010

Вот сценарий:

У нас есть исходное дерево, в котором одновременно работают несколько разработчиков над несколькими ветками.

У нас также есть «пользовательская» копия этого дерева исходных текстов с отличиями, которые ( почти ) никогда не вернутся к основному источнику. Эта разработка непрерывна, но с гораздо меньшими изменениями, чем в основной ветви.

Пользовательская версия должна оставаться в курсе изменений в основном источнике, сохраняя при этом свои настройки.

В настоящее время мы обращаемся с этим примерно так:

Основной выпуск (назовите его 1.2b) ответвлен от основного дерева исходных текстов. Кастом релиз (назовите его 1.2b.custom) разветвлен от 1.2b. Изменения по сравнению с предыдущим пользовательским выпуском (1.2a.custom) объединяются в 1.2b.custom. Изменения из 1.2b объединяются в 1.2b.custom как требуется.

промыть, повторить, в настоящее время проходит 10-е? итерация этого, так как я был здесь.

Это работает 'хорошо' - но это приводит к большому количеству конфликтов слияния, каждый раз, один раз, , когда мы создаем новую специальную версию. Это также приводит к тому, что история «теряется» - при просмотре истории файла в ветке 1.2b.custom отображается история изменений 1.2b.custom, 1.2a.custom merge , но не фактические коммиты в ветке 1.2a.custom. Кроме того, он ограничивает возможность внесения изменений в пользовательскую ветвь, поскольку параллельную разработку пользовательского материала некуда (т. Е. Работу над внешней связью для следующего выпуска при сохранении / исправлении ошибок в текущем выпуске)

Я ищу предложения о том, как мы можем справиться с этим лучше. Одна мысль, которая у меня возникла, - это выбрать точку и «превратить» кастом в собственный ствол, все равно будут проблемы при объединении изменений из основного (ветки или ствол) -> кастом, но я думаю, что это «исправляет» историю , а также позволяет параллельную разработку на заказ. Другие идеи или ресурсы, которые я могу просмотреть?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Похоже, вы должны обращаться с основным деревом так, как будто это поставщик, предоставляющий исходный код.У проекта subversion есть хорошее обсуждение того, как управлять этим.

0 голосов
/ 18 февраля 2010

Просто мозговой штурм, извинения, если это то же самое, что уже предложенный OP или PanCrit & hellip;

Кажется, вот как это должно работать:

  ^             ^
  |   release   |
  |______|______|
  |             |
  |             |
  |   release   |
  |______|______|
  |             |
  |             |
  |             |
trunk        custom

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

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