10

我正在尝试添加图像,svn:externals但 TortoiseSVN 以某种方式拒绝它。

目前,我在本地驱动器上有两个存储库,名为repoArepoB. 还有两个名为workA和的工作目录签出workBworkA是 的 结帐repoA并且workB是 的 结帐repoB

结构是这样的:

Z:\repos\repoA

Z:\repos\repoB

Z:\项目\workA

Z:\项目\workB

我做了什么:

  1. 右键单击Z:\Projects\workB->TortoiseSVN -> Properties
  2. 按下New -> Externals
  3. 按下New,输入trunk/screenshot.jpg本地路径和file:///Z:/repos/repoA/trunk/screenshot.jpgURL。

    在此处输入图像描述

    在此处输入图像描述

  4. 按下OK关闭所有设置窗口。

  5. 右键单击Z:\Projects\workB->SVN Commit..
  6. 右键单击Z:\Projects\workB->SVN Update..

我得到这个错误:

Z:\Projects\workB\trunk\screenshot.jpg

不支持的外部:外部文件的 url

'file:///Z:/repos/repoA/trunk/screenshot.jpg' 不在存储库中

'file:///Z:/repos/repoB'

在此处输入图像描述

当我在 上提交新更改时workB/trunk,它不会更新图像。所以执行SVN Update不会workB/trunk从 repoA 导入图像。我还导入了一个文件夹,svn:externals并且它下的文件已正确导入。所以我怀疑无法指定单个文件。我不知道。

在回购浏览器中,真实文件不存在,只有链接文件。

在此处输入图像描述

里面有repoA真实的图像文件,虽然错误说没有。

在此处输入图像描述

那么有可能做到吗?还是我做错了?

更新

根据这篇文章

Subversion 1.6 还引入了对文件外部定义的支持。文件外部文件的配置就像目录的外部文件一样,并在工作副本中显示为版本化文件。

例如,假设您的存储库中有文件 /trunk/bikeshed/blue.html,并且您希望该文件(在修订版 40 中出现)在 /trunk/www/ 的工作副本中显示为 green.html .

所以 v1.6 或更高版本似乎是可能的。我正在使用svn,版本 1.7.6 (r1370777)。附加参考:

4

2 回答 2

11

我认为这是因为您不能在两个不同的存储库(在您的示例中为 RepoA 和 repoB)之间使用外部文件功能。

在官方文档中查看此限制:http:
//tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-externals.html

抽象的:

外部文件的 URL 必须与将插入外部文件的 URL 位于同一存储库中;不支持跨存储库文件外部。

于 2012-10-14T19:46:46.990 回答
1

我遇到了同样的问题,似乎您曾经能够在 Subversion 1.6 中拥有外部文件,但现在在 subversion 1.7 中修复了“错误”!并且您只能将外部文件夹从一个存储库转移到另一个存储库,而不是文件

于 2013-05-04T14:14:51.440 回答