【问题标题】:svn:externals & tagging, how to combine code between teamssvn:externals & tagging,如何在团队之间组合代码
【发布时间】:2010-12-29 09:11:10
【问题描述】:

在我们公司,我们正在开发一种由不同 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——因为我们希望定期构建最新版本以确保所有模块一起工作。但是,一旦构建成功并且我们继续发布,如果有一种简单的方法可以自动标记所有内容——包括在 extern 中使用的版本,那就太好了。按照今天的情况,我们必须为模块创建标签,然后将外部更新到这些标签,然后标记产品,最后将其交换回主干。

有没有更清洁的方法来做到这一点?也欢迎对当前结构发表评论。

【问题讨论】:

    标签: svn tags svn-externals


    【解决方案1】:

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

    这符合在 svn:externals 中仅使用显式修订(而不是 HEAD)的最佳做法(在 SVN 文档中建议)。

    【讨论】:

    • 谢谢迈克尔。您的 cmets 反映了我已经阅读(很多!)关于 SVN svn:externs 实践的内容。我们主要做的是建议的事情: * 大多数时候,产品是指模块的分支 * 在发布之前,我们为每个模块创建一个标签 * 接下来,我们更新 externs 以指向这些标签 * 最后,我们标记产品 * 然后我们再次将 externs 更改回分支 这可行,但非常乏味且容易出错。我希望有更好的方法...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    相关资源
    最近更新 更多