SVN:从一个存储库复制到另一个存储库,保留外部

时间:2015-08-13 12:40:49

标签: svn branch svn-externals

我目前有一个问题,我无法找到答案,因为它看起来有点特别。

我的问题:

我们这里有两个存储库。存储库A持有常见的东西,存储库B是一个特定的项目。

在Repository A中,我们有一个模板项目,它本身包含Repository A中的外部。现在我们想将这个模板项目复制到Repository B,以便根据模板启动特定项目。但我们希望保留模板的外部参考存储库A中的源。它们设置了相对路径(^ / .. /,因为两个存储库共享相同的基本URL),所以它应该工作。

在创建模板时,我们只想创建一个分支,并在这个工作示例上开始开发。但事实证明,跨越存储库边界时,创建分支是没有选择的。

我尝试了什么

(我正在使用Tortoise SVN)

  1. svn从存储库A复制到存储库B以创建类似分支的东西。不幸的是,这不起作用,因为svn副本不能在不同的存储库中使用。

  2. 从存储库A导出模板并将其包含到存储库B.这样我获得了外部的当前版本,但它不再是svn属性。导出的版本不再有svn信息了,那么它应该如何工作呢?

  3. Vendorbranch:这导致与导出版本类似的结果。外部财产已经消失。

  4. 我的问题

    如何将模板从存储库A获取到存储库B,但是将外部属性保留为属性,而不是手动重置它们?

    甚至退一步:您是否看到了另一种创建工作软件项目模板的解决方案,以后可以在其他存储库中使用?

1 个答案:

答案 0 :(得分:0)

交叉回购的外部相对路径是坏主意(tm)。在步骤0用绝对路径替换它

对于“好”(便携式)外部,我看到两种方式

  1. svnrdump dump URL/TO/TPL/ROOT + svnrdump load /URL/TO/B-PROJECT/ROOT
  2. 为A和B提供相同的UUID,结帐URL / TO / TPL / ROOT,重新定位到/ URL / TO / B-PROJECT / ROOT,提交