Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标记其组件放置在不同svn存储库中的产品_Svn_Version - Fatal编程技术网

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

标记其组件放置在不同svn存储库中的产品,svn,version,Svn,Version,我正在管理一组软件项目,即X、Y和Z。它们之间有一组依赖关系,即X-->Y-->Z。这意味着项目X依赖于项目Y的接口,Y依赖于项目Z的接口 不幸的是,X、Y和Z保存在单独的svn存储库中。现在的问题是,我如何拍摄我的产品的稳定版本的快照(创建标记),包括特定版本的X、Y和Z?任何解决方案都会有帮助 查看SVN中的externals功能 正如已经建议的那样,您可以使用它来记录项目不同变体之间的关系。其思想是定义一个根项目,以便通过签出该项目的主干、分支或标记,您可以签出其他每个项目的正确变体。所以

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


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

查看SVN中的
externals
功能

正如已经建议的那样,您可以使用它来记录项目不同变体之间的关系。其思想是定义一个根项目,以便通过签出该项目的主干、分支或标记,您可以签出其他每个项目的正确变体。所以,假设你有:

svn://repo1/X
svn://repo2/Y
svn://repo3/Z
您应该创建一个根项目,如

svn://repo4/root
在哪里

将外部定义为

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

将外部定义为

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

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

为您完成前面提到的工作。检查是否有分步说明。第一条博客评论使用“发布分支”改进了工作流

Externals是一种从不同存储库创建工作文件夹的方法,而不是获取标签!!!!可以将标记指定为外部标记,也可以将给定的修订指定为外部标记。两者都应该适合你的目的。就svn而言,标记是一个文件夹。您可以使用它映射到远程repo的特定版本。阅读链接。@tripleee:你发布的链接来自一本非常旧版本的Subversion书籍。谢谢你的提醒;我更新了链接。我希望谷歌能帮我检查一下(-:+1)这篇文章涵盖了外部固定版本号的正确用法。