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

4 回答 4

11

Subversion 1.5 添加了相关的 externals

于 2009-06-01T09:56:23.487 回答
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

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

如果架构没有太大变化当然很好,但是当您有一个 2 年的旧应用程序要修补并且架构已被广泛更改时,这可能会成为一个问题。

于 2009-06-01T10:03:41.770 回答
3

你给出的语法:

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

应该工作得很好。但是,如果你走这条路,你必须提供完整的 URL,就像你在签出时使用它一样,即使链接在同一个存储库中。你正在这样做,对吧?

1.5 中引入的替代方案是相对外部:

repo-url-or-relative-path 工作副本-相对路径

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

不过,您所描述的应该有效。如果它不起作用,那么您一定不能足够准确地描述您实际在做什么。一些细节仍然缺失。

于 2009-06-01T10:33:03.990 回答
3

尝试执行“更新到特定版本”,并指定“完全递归”。如果您的工作副本停留在“仅工作副本”上,它将无法获取外部内容。

于 2009-06-01T10:46:01.997 回答