【发布时间】:2013-04-03 13:34:28
【问题描述】:
我在签出我的 svn 存储库中的标记版本时遇到了一些麻烦,很可能是因为内部的 'svn:externals' 没有引用正确的修订版。让我们考虑简化的情况:
我有第一个 svn 存储库,它在 XXX1 修订版中看起来像这样:
Repo1 (@ Rev XXX1)
tags
...
trunk
Folder1
ExternalRefToFolder2 (svn:externals '../Folder2')
Folder2
SomeFile1.txt
SomeFile2.txt
并且已经重构为(在头部修订时):
Repo1 (@ HEAD1)
tags
...
trunk
Folder1
SomeFile1.txt
SomeFile2.txt
IE:无论好坏,对 Folder2 的外部引用已被删除并替换为修订版 XXX1 和 HEAD1 之间的文件副本。
我在同一台服务器上还有第二个存储库,如下所示:
Repo2 (@ HEAD2)
tags
1.0.0
ExternalToRepo1 (svn:externals -rXXX1 ^/../Repo1/trunk)
trunk
ExternalToRepo1 (svn:externals ^/../Repo1/trunk)
IE:同样,无论好坏,第二个存储库使用外部引用引用第一个存储库(trunk 中的修订版HEAD1 和标记版本中的修订版XXX1,以便将所有内容冻结在正确的位置修订)。
问题
当我签出
trunk的Repo2时,我没有问题。即Repo1与其单个Folder1签出。当我查看
Repo2的标签1.0.0时,svn 抱怨它在HEAD1修订版中找不到http://server//Repo1//trunk//Folder2。
因此,即使标签1.0.0 在其正确的XXX1 修订版中引用Repo1/trunk,这一切看起来也是如此; inner 外部svn:externals '../Folder2' 被解释为基于HEAD1(而不是我预期的修订版XXX1)。
这种行为是否正常,我该如何解决这个问题?
注意:我拥有的 Svn 版本是 1.7.8 (r1419671) 编译于 2012 年 12 月 12 日
编辑
重现此问题的另一种方法是签出或简单地浏览Repo1 修订版XXX1。 svn:externals '../Folder2' 将仍然与 HEAD1 相关,所以猜测没有太多解决方案。
【问题讨论】:
标签: svn svn-externals