是否可以忽略svn:externals属性中引用的标记的外部依赖关系?这可能听起来像一个非常奇怪的问题,但让我解释一下......
我有一个相当大的个人和“可插拔”代码模块集合,每个代码模块都可以作为独立项目进行独立测试,编译和开发。其中一些模块依赖于其他模块,通过svn:externals属性。问题是我们的测试框架gtest也是每个模块的依赖项,并且包含一个用于测试套件的静态库,这意味着每个模块至少约为15Mb,因为我们已经构建了这些静态库。多个平台。
在任何情况下,这意味着一个相对简单的项目在签出时可能占用超过200Mb的磁盘空间,而且大部分是由于每个模块的gtest副本。我的一些同事现在开始抱怨工作副本的大小,并且通过简单地在每个模块的顶级中包含gtest依赖关系来减少这种情况会很好在构建中复制。
基本上,我想要一种方法在我的proplist中设置svn:externals,但是检查每个依赖关系,好像我要将“--ignore-externals”传递给svn co。这可能吗?我有一种感觉,但是值得一提......
答案 0 :(得分:2)
我建议查看稀疏结账。结帐只是顶级目录(使用'only this item'选项),得到外部。然后,对于您想要的每个模块,您可以使用所需的目录更新WC,但省略它的外部。对所有子项目重复。
您可能仍然需要将gtest依赖项放在repo中的另一个文件夹中,但我认为它可能适合您。
答案 1 :(得分:0)
我不知道如何让svn跳过一个依赖。
但我认为你可以通过在没有共享依赖项的情况下制作这些模块的标记版本来以另一种方式解决这个问题。然后,其他依赖模块可以将它们的svn:externals指向这些标记,而不是指向独立编译的分支。
我只建议这样做,因为听起来你对一个大型共享库有一个非常具体的问题。任何更复杂的事情,你可能无法单独用svn:externals来解决这个问题。
答案 2 :(得分:0)
从1.6.0+开始的Subversion可以使用svn:externals引用file而不是目录。这可能会有所帮助吗?