我在svn中有一个带外部的项目,例如
- myproject | |--------stuff1 |--------stuff2 |--------external-lib // svn::external
我需要在external-lib目录中添加一个文件(一个Makefile),我想在我的存储库(myproject
)内部进行通信,而不是外部存储库。不修改外部存储库非常重要。可能吗?我想使用外部存储库的头版本。
答案 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中文件和目录的更改。