保护svn外部

时间:2010-11-25 12:52:37

标签: svn svn-externals

我在svn中有一个带外部的项目,例如

- myproject
|
|--------stuff1
|--------stuff2
|--------external-lib    // svn::external

我需要在external-lib目录中添加一个文件(一个Makefile),我想在我的存储库(myproject)内部进行通信,而不是外部存储库。不修改外部存储库非常重要。可能吗?我想使用外部存储库的头版本。

3 个答案:

答案 0 :(得分:1)

我建议直接将Makefile存储到myproject中。然后你可以使用

从external-lib运行它
make -f ../Makefile.external

答案 1 :(得分:0)

除非您自己创建外部存储库的分支并完全抛弃svn:externals,否则您无法实现所需。当然,这意味着你必须通过合并来自己维护外部lib的更新(这可能相对容易自动化,因为除了添加此文件之外你不会修改任何内容)。

那就是说,马丁的解决方案似乎是你案件阻力最小的道路......

答案 2 :(得分:0)

根据您对我的评论的回复,如果您的服务器和客户端使用Subversion 1.6.x,您可以执行此操作。使用Subversion 1.6.x,现在可以获得对文件外部的支持。因此,对于svn :: external路径中包含的每个文件和目录,您需要在myproject目录的svn:externals属性中创建和输入。

svn:externals属性看起来像这样:

^/external-lib/file1 file1
^/external-lib/directoryA directoryA
^/external-lib/file2 file2
^/external-lib/directoryB directoryB

您可以在此处详细了解svn:externals:http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html

现在,只要external-lib和myproject 存在于同一个存储库中,工作副本将允许您提交对external-lib中文件和目录的更改。