我正在管理一组软件项目,即X,Y和Z.它们之间存在一组依赖关系,即X - > Y - > Z.这意味着项目X依赖于项目Y的接口,Y依赖于Z接口。
不幸的是,X,Y和Z保存在单独的svn存储库中。现在的问题是如何拍摄我的产品的稳定版本的快照(创建标签),包括X,Y和Z的特定版本?任何解决方案都会有帮助。
答案 0 :(得分:3)
查看SVN中的externals
功能。 http://svnbook.red-bean.com/en/1.6/svn.advanced.externals.html
答案 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以获取分步说明。第一篇博客评论使用“发布分支”改进了工作流程。