2011-09-17 412 views
0

我正在使用SVN作为我的项目。我有两个名为repo1和repo2的软件仓库。在每个存储库中,我在这两个存储库中都创建了一个名为branch1的分支。对于repo2分支1中称为module1的其中一个模块,svn:external已被定义并在Repo1中设置为branch1的module1。如何解决SVN:externals问题

但现在我在repo1和repo2中创建了另一个名为branch2的分支,它是两个回购的branch1的副本。现在,我在repo2的分支2中的module1仍然指向repo1中branch1的module1。但它应该参考repo1中branch2的module1。

当我们做SVN副本或svn分支时,有什么方法可以自动更改svn:externals吗?

+0

你可以用'svn:externals'添加你想要读的东西吗?也许SVN有另一种解决方案。为什么这两个存储库具有相同的结构,并且似乎repo2应该遵循repo1的结构。 – mliebelt

回答

2

我不认为这是可能的。我不认为有一种方法可以让svn知道你是否希望svn外部引用branch2或branch1。

更新:这个discussion看起来很有用。

+0

在我看来,这是一个功能,而不是一个错误。 'svn:externals'应该用于稳定的引用,所以它们通常应该指向一个特定的版本,而不是头部。 – mliebelt

-1

关于svn:externals的权威资源显示了“相对”链接的一些可能性。但是他们都不能以想要的方式跨越资源库边界。

这使得下列选项:

  • 把相关项目到相同的存储库,并在同一分支目录,并使用相对的svn:外部链接,或
  • 使用和/或黑客就像一个工具svncopy其中目的是处理svn:externals。该工具位于contrib/client-side/svncopy的颠覆源代码树中。
  • 或者您可以将分支/标记放入构建系统。

这些选项都不是一个nobrainer。

0

不,你需要的是不可能由svn自动完成的。创建一个分支将复制svn中的整个文件夹以及所有的外部参考。

但是,您可以编写自己的脚本来创建分支并更新外部。