标记其组件放置在不同svn存储库中的产品

时间:2011-08-19 14:37:27

标签: svn version

我正在管理一组软件项目,即X,Y和Z.它们之间存在一组依赖关系,即X - > Y - > Z.这意味着项目X依赖于项目Y的接口,Y依赖于Z接口。

不幸的是,X,Y和Z保存在单独的svn存储库中。现在的问题是如何拍摄我的产品的稳定版本的快照(创建标签),包括X,Y和Z的特定版本?任何解决方案都会有帮助。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

正如已经建议的那样,您可以使用svn:externals来记录项目的不同变体之间的关系。我们的想法是定义一个根项目,这样通过检查该项目的主干,分支或标记,您将检查每个其他项目的正确变体。所以,假设你有:

svn://repo1/X
svn://repo2/Y
svn://repo3/Z

您应该创建一个像

这样的根项目
svn://repo4/root

,其中

svn://repo4/root/trunk

将外部定义为

X svn://repo1/X/trunk
Y svn://repo2/Y/trunk
Z svn://repo3/Z/trunk

svn://repo4/root/tags/TAG

将外部定义为

X svn://repo1/X/tags/TAG
Y svn://repo2/Y/tags/TAG
Z svn://repo3/Z/tags/TAG

您可以使用svn propset命令创建初始外部定义;当您想要创建新标记时,您可以像往常一样单独标记所有项目,包括root。然后使用 - ignore-externals 选项查看新的根标记,并使用相应的标记网址再次设置您的外部标记。

答案 2 :(得分:1)

svn:externals为你做的就像你刚才提到的那样......检查this blog post以获取分步说明。第一篇博客评论使用“发布分支”改进了工作流程。