我正在尝试将图像添加为svn:externals
,但TortoiseSVN以某种方式拒绝它。
目前,我的本地驱动器上有两个名为repoA
和repoB
的存储库。此外,还有两个名为workA
和workB
的工作目录签出。 workA
结帐repoA
,workB
结帐repoB
。
结构是这样的:
Z:\回购\ repoA
Z:\回购\ repoB
Z:\项目\ workA
Z:\项目\ workB
我做了什么:
Z:\Projects\workB
- > TortoiseSVN -> Properties
New -> Externals
按了New
,为本地路径输入了trunk/screenshot.jpg
,为网址输入了file:///Z:/repos/repoA/trunk/screenshot.jpg
。
按OK
关闭所有设置窗口。
Z:\Projects\workB
- > SVN Commit..
Z:\Projects\workB
- > SVN Update..
我收到了这个错误:
Z:\项目\ workB \树干\ screenshot.jpg
不支持的外部:外部文件的网址
'file:/// Z:/repos/repoA/trunk/screenshot.jpg'不在存储库中
'文件:/// Z:/回购/ repoB'
当我在workB/trunk
上提交新的更改时,它不会更新图像。因此,在SVN Update
上执行workB/trunk
不会从repoA导入图像。我还有一个导入为svn:externals
的文件夹,并且正确导入了其下的文件。所以我怀疑无法指定单个文件。我不知道。
在repo-browser中,真实文件不存在,只有链接文件。
在repoA
中有真实的图像文件,尽管错误说没有。
那有可能吗?或者我是以错误的方式做到的?
更新
根据this article,
Subversion 1.6还引入了对文件外部定义的支持。文件外部组件的配置与目录的外部组件类似,并在工作副本中显示为版本化文件。
例如,假设您的存储库中有/trunk/bikeshed/blue.html文件,并且您希望此文件(如修订版40中所示)显示在/ trunk / www /的工作副本中green.html。
所以v1.6或更高版本似乎是可能的。我正在使用 svn,版本1.7.6(r1370777)。 其他参考文献:
答案 0 :(得分:11)
我认为这是因为无法在两个不同的存储库之间使用外部文件功能(在您的示例中为RepoA和repoB)。
在官方文件中查看此限制:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-externals.html
摘要:
外部文件的URL必须与外部文件插入的URL位于同一个存储库中;不支持存储库间文件外部。
答案 1 :(得分:1)
我有同样的问题,似乎你曾经能够在Subversion 1.6中拥有外部文件但是'bug'现在已经在subversion 1.7中修复了!并且您只能拥有从一个仓库到另一个仓库的外部文件夹,而不是文件