svn-externals与自己的svn-externals:如何递归checkout?

时间:2011-04-11 14:56:38

标签: svn

所以我使用svn:externals来检查外部回购。外部仓库有自己的svn-externals设置。

现在,在更新项目的工作副本时,外部存储库中的文件正在更新,但其外部更新不是。该行为是否已设计,是否可以扩展为更新外部依赖项?

1 个答案:

答案 0 :(得分:4)

Subversion1.5支持递归签出,因此thread illustrates

"Version Control with Subversion" book确实提到svn checkoutsvn updatesvn switchsvn export命令能够在外部回购中递归,但是:

  • 如果为特定修订设置了外部,则“update”的数量不会更改其中的任何文件,即使外部仓库已进行了新的修订。
  • 必须始终从父仓库启动更新,而不是直接从子仓库启动:
  

但要小心,不要以微妙的方式无意中修改外部工作副本,导致问题。
  例如,虽然外部定义可能指定外部工作副本应保留在特定修订号,但如果您直接在外部工作副本上运行svn update,Subversion将强制执行,并且现在您的外部工作副本不同步及其在主要工作副本中的声明。

所以这两个案例中可能有一个适用于此。


OP Carsten报告:

  

现在实际上正在运作。

     

我在外部项目的根节点上设置了外部道具(假设项目为“lib”)。
  在我的具体项目(项目“A”)中,外部是在“lib”的子文件夹(即myLocalFolder > lib/someFolder)上定义的。
  这似乎是颠覆不再递归到lib的外部的原因;只看到“someFolder”内部,没有找到外部defs,所以它没有结帐someFolder/externalLib
  现在,在“lib”中,我更改了外部定义,以便在我在A'中引用的文件夹中定义它们;现在就像一个魅力!

相关问题