5

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

这些模块是:

\隐藏
  \分支
  \标签
  \树干
\api
  \分支
  \标签
  \树干
\ui
  \分支
  \标签
  \树干

另外,产品版本是通过组合模块构建的,并使用 CI 系统定期编译。

\产品X
  \分支
    \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)
  \标签
  \树干

我们遇到的主要问题是“svn tag”与外部关联的行为。当前的 externs 正在引用 HEAD——因为我们希望定期构建最新版本以确保所有模块一起工作。但是,一旦构建成功并且我们继续发布,如果有一种简单的方法可以自动标记所有内容——包括外部使用的版本,那就太好了。就目前而言,我们必须为模块创建标签,然后将外部更新到这些标签,然后对产品进行标签,最后将其交换回主干。

有没有更清洁的方法来做到这一点?也可以随意评论当前的结构。

4

1 回答 1

3

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

这与仅在svn:externals.

于 2009-12-23T13:56:44.553 回答