2008-10-27 107 views
6

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

/project1/trunk 
/shared/trunk 

project1/trunk依赖于共享文件夹,以便具有SVN的svn:externals属性://本地主机/共享/中继线。这与TortoiseSVN正常工作,我可以结帐project1/trunk和我给了一份shared/trunk副本。

现在我已经将存储库移动到另一台服务器,并且外部链接不再工作,原因很明显(TortoiseSVN试图结帐出svn://localhost/shared/trunk不再存在)。

所以我需要更新所有的外部 - 但我不想硬编码任何机器名称 - 那么我该如何做这项工作?请记住,存储库可能会在某个时候再次移动。围绕我穿过^/语法来到SVN手册中挖掘,所以我尝试了以下内容:

svn:externals shared ^/shared/trunk 

这是公认的,但是当我尝试和我的电脑上签的project1副本我得到以下错误:

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

除非我在的外部硬编码库机器名称我不能做这项工作 - 这似乎是一个黑色的艺术,所以任何建议将受到欢迎。

回答

9

您引用的^ /语法在SVN 1.5中是新的,因此您可能会使用不了解该语法的客户端和/或服务器的旧版本。另外,为了在1.5中支持新的外部语法,他们在外部定义中改变了参数的顺序。我想你首先需要路径,然后是文件夹名称才能显示在下面。详情请见docs

+2

路径第一个然后文件夹名称 - 做的伎俩,谢谢! – Rob 2008-10-27 14:42:17