svn:externals и метки, как объединить код между командами

В нашей компании мы работаем над продуктом, состоявшим из различных модулей C/C++. Идеально, каждый уровень и модуль должны быть разработаны отдельно различными командами и протестированы независимо. В настоящее время мы имеем, разделяют каждый модуль на свой собственный branch:\

Модули:

\hid
  \branches
  \tags
  \trunk
\api
  \branches
  \tags
  \trunk
\ui
  \branches
  \tags
  \trunk

Отдельно, версия продукта является сборкой путем объединения модулей и компилируемый регулярно использование системы CI.

\productX
  \branches
    \5.0
      \hid-4.0 (svn:externs \hid\branches\4.0)
      \api-3.0 (svn:externs \api\branches\3.0)
      \ui-5.0  (svn:externs \ui\branches\5.0)
  \tags
  \trunk

Основная проблема, которую мы имеем, с поведением 'svn тег' в сотрудничестве с экстернами. Текущие экстерны ссылаются на ГОЛОВУ - потому что мы хотели бы создать последнюю версию регулярно, чтобы гарантировать, что все модули сотрудничают. Однако, после того как сборка успешна, и мы продолжаем делать выпуск, было бы хорошо, если бы был простой способ автоматически отметить все - включая версию, используемую в экстерне.как есть Сегодня, мы должны создать теги для модулей и затем обновить экстернов к этим тегам, затем отметить продукт и наконец подкачать его назад к соединительной линии после.

Существует ли более чистый способ сделать это? Не стесняйтесь также комментировать текущую структуру.

5
задан Aziz Shaikh 11 October 2012 в 09:33
поделиться

1 ответ

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

Это соответствует передовой практике (предложенной в документации SVN) использования только явных изменений (а не HEAD) в svn: externals .

3
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: