关于symlink:如何做内部svn:外部

 2021-04-26 

How to do internal svn:externals

我正在尝试使用svn:externals在我们的Subversion存储库中建立一种符号链接,但实际上并不能很好地工作。我想做的是将同一存储库中某个部分的文件夹链接到另一部分,例如:

src / somewhere_else / schema https://svn.acme.com/svn/project/trunk/src/schema

这对于真正的外部资源(即,不同存储库中的目录)正常工作,但是我无法使其用于上述相同存储库中的资源。我已经用谷歌搜索了一段时间,似乎应该支持该功能,我想念的是什么?

我们正在Windows 2003服务器安装中的VisualSVN下使用Subversion 1.5.5。

我忘了提到我没有任何错误,应该从另一个文件夹获取内容的文件夹只是保持空白。


Subversion 1.5添加了相对外部。


尝试执行"更新到特定版本",并指定"完全递归"。如果您的工作副本卡在"仅工作副本"上,它将不会获取外部内容。


您提供的语法:

1
working-copy-relative-path    full-repo-url

应该可以正常工作。但是,如果走这条路线,即使链接位于同一存储库中,您也必须提供完整的URL,就像您要签出时使用的一样。您正在这样做,对吧?

从1.5开始引入的替代方法是相对外部变量:

repo-url或相对路径working-copy-relative-path

有关更多信息,请参见Roger Lipscombe的链接。

不过,您所描述的内容应该起作用。如果它不起作用,那么您就不能足够准确地描述您的实际工作。一些细节仍然缺失。


我不认为这是否是您的真正问题,但我直接在文件夹上定义属性。在您的情况下,我创建一个src\\somewhere_else文件夹并添加属性:

1
schema https://svn.acme.com/svn/project/trunk/src/schema

请记住一点,如果您像建议的那样定义绝对外部URL:

1
src/somewhere_else/schema https://svn.acme.com/svn/project/trunk/src/schema

如果您创建TAG或BRANCH,它们将不会自动更改。这意味着TAG的一部分(外部URL)将始终指向架构的TRUNK。

如果架构的更改不太多,那当然很好,但是当您有一个使用了2年的应用程序要进行修补并且架构已被广泛更改时,这可能是一个进一步的问题。