svn:externals&tagging,如何在团队之间组合代码

Cha*_*les 5 svn tags svn-externals

在我们公司,我们正在开发一个由不同C/C++模块组成的产品.理想情况下,每个层和模块应由不同的团队分别开发并独立测试.目前,我们将每个模块分成它自己的分支:

这些模块是:

\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 tag'与externs相关的行为.当前的外部引用了HEAD - 因为我们希望定期构建最新版本以确保所有模块协同工作.但是,一旦构建成功并且我们继续进行发布,如果有一种简单的方法可以自动标记所有内容 - 包括extern中使用的版本,那将是很好的.就目前而言,我们必须为模块创建标签,然后将externs更新为这些标签,然后标记产品,最后将其交换回主干.

有更清洁的方法吗?随意评论当前的结构.

Mic*_*ner 3

我认为最好让外部定义引用模块的标签,而不是它们的主干。这样,您只需引入模块的已知里程碑,并且在标记核心产品时无需更改任何内容。

这符合仅在svn:externals.