如何进行内部svn:externals

11

我正在尝试使用svn:externals在我们的Subversion存储库中设置一种符号链接,但效果并不太好。我想要做的是将同一存储库中的一个文件夹链接到另一个文件夹,如下所示:

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

这对于真正外部的资源(即不同存储库中的目录)可以正常工作,但我无法让其对上述情况中的资源起作用。我已经搜索了一段时间,似乎应该支持此功能,我错过了什么?

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

我忘记提到我没有收到任何错误消息,应该从其他文件夹获取内容的文件夹仍然为空。

4个回答

11

3

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

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

只要记住一点,如果您按照您建议的方式定义绝对外部 URL:

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

如果您创建了一个标签或分支,它们不会自动更改。这意味着标签的一部分(外部url)将始终指向模式的主干。

当然,如果模式不会发生太大变化,那么这是可以接受的,但是当您需要修补一个两年前的应用程序时,模式已经被广泛改变,这可能会成为一个问题。


好的,谢谢!这正好帮助我提醒另一个人不要在她的同一代码库中外部访问文件夹 :) - ehambright

3
您提供的语法:
working-copy-relative-path    full-repo-url

应该可以正常工作。但是,如果你选择这种方法,即使链接在同一仓库中,你也必须像结账时使用的那样提供完整的URL。你正在这么做吗?

另一种方法是1.5版本引入的相对外部文件:

repo-url-or-relative-path working-copy-relative-path

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

尽管如此,你所描述的应该可以工作。如果它没有工作,那么你描述的可能不够准确。仍然缺少一些细节。


3
尝试执行“更新到特定版本”操作,并选择“完全递归”。如果您的工作副本被固定为“仅工作副本”,则不会获取外部内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接