6

我是 SVN 的新手,并且大量使用了 externals 属性。我的 PC 上有一个存储库,外部属性的名称中有一个硬编码的“localhost”,现在这给我带来了问题。例如:

/project1/trunk
/shared/trunk

project1/trunk取决于共享文件夹,因此具有svn://localhost/shared/trunksvn:externals的属性。这适用于 TortoiseSVN,我可以结帐并获得.project1/trunkshared/trunk

现在我已将存储库移动到另一台服务器,并且由于明显的原因外部链接不再起作用(TortoiseSVN 正在尝试检查svn://localhost/shared/trunk不再存在的)。

所以我需要更新我所有的外部文件——但我不想硬编码任何机器名称——那么我该如何做呢?请记住,存储库可能会在某个时候再次移动。挖掘 SVN 手册时,我遇到了^/语法,所以我尝试了以下方法:

svn:externals shared ^/shared/trunk

这已被接受,但是当我尝试在我的 PC 上签出副本时project1,我收到以下错误:

Unrecognized format for the relative external URL 'shared'.
Check the path and/or URL you've entered.

除非我在外部硬编码存储库机器名称,否则我无法完成这项工作 - 这似乎是一种黑色艺术,因此欢迎任何建议。

4

1 回答 1

9

您引用的 ^/ 语法是 SVN 1.5 中的新语法,因此您可能使用的是不理解该语法的旧版本的客户端和/或服务器。此外,为了支持 1.5 中的新 externals 语法,他们更改了 externals 定义中的参数顺序。我想你首先想要路径,然后是它的文件夹名称。详细信息在文档中。

于 2008-10-27T14:34:43.617 回答