SVN外部源是否必须是存储库?

时间:2012-10-12 10:37:53

标签: svn tortoisesvn svn-externals

我正在尝试使用TortoiseSVN在我的本地Windows机器上设置svn外部。我选择SVN Checkout创建了一个工作目录。它包含一个名为lib的目录,其内容应从外部位置导入。我跟着this tutorialthis,但仍然很难设置它。

目前的结构如下:

  

/myproject/trunk/core.php

     

/ myproject的/中继/ LIB /

     

/myanotherproject/trunk/core.php

     

/myanotherproject/trunk/lib/lib01.php

我想让它自动从myproject目录导入myanotherproject的lib文件。 myanotherproject目录不是存储库。它也是另一个项目的工作目录。

我做了什么:

  1. 右键单击myproject/trunk/lib文件夹,然后选择TortoiseSVN -> Properties
  2. 已选择New -> Externals
  3. 点击New按钮,然后在网址字段中输入file:///Z:/myanotherproject/trunk/lib
  4. 点击OK
  5. 然后我收到了错误:

      

    解析svn:externals属性时出错    'Z:\ MyProject的\干线\ LIB':    '文件:/// Z:/ myanotherproject /中继/ LIB'

    因为必须指定URL,所以导入源必须是存储库吗?感谢您的信息。

2 个答案:

答案 0 :(得分:2)

@bahrep的后续行动

外部必须使用Repo-path URL,而不是WC-URL,因为来自“superproject”的WC你将能够

  • 结帐
  • 更新
  • 甚至提交

使用外部工作,这对于工作副本来说是不可能的,仅适用于存储库

答案 1 :(得分:1)

您无法指定工作副本作为svn:externals的来源,我真的不明白为什么需要它。

svn:externals必须指向存储库位置;你可以指向一个不同的存储库BTW。在某些情况下,您可能需要指定svn:externals来源的修订号。

我建议你查看svn:externals reference in the SVNBook。前两句话回答了你的问题:

  

有时构造一个由其组成的工作副本是有用的   许多不同的结帐。例如,您可能希望不同   子目录来自存储库中的不同位置或   也许来自不同的存储库

另请查看有关此主题的TortoiseSVN manual