在我们公司,我们正在开发一种由不同 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——因为我们希望定期构建最新版本以确保所有模块一起工作。但是,一旦构建成功并且我们继续发布,如果有一种简单的方法可以自动标记所有内容——包括外部使用的版本,那就太好了。就目前而言,我们必须为模块创建标签,然后将外部更新到这些标签,然后对产品进行标签,最后将其交换回主干。
有没有更清洁的方法来做到这一点?也可以随意评论当前的结构。