可以在忽略该URL的外部时使用svn:externals吗?

可以在忽略该URL的外部时使用svn:externals吗?,svn,svn-externals,Svn,Svn Externals,是否可以忽略svn:externals属性中引用的标记的外部依赖项?这听起来可能是一个非常奇怪的问题,但让我解释一下 我有一个相当大的个人和“可插拔”代码模块的集合,每个模块都可以作为一个独立的项目进行独立测试、编译和开发。其中一些模块通过svn:externals属性依赖于其他模块。问题是,我们的测试框架也是每个模块的一个依赖项,并且包括测试套件的静态库,这意味着每个模块至少有15Mb,因为我们已经为多个平台构建了这些静态库 在任何情况下,这意味着一个相对简单的项目在签出时可以占用超过200M

是否可以忽略svn:externals属性中引用的标记的外部依赖项?这听起来可能是一个非常奇怪的问题,但让我解释一下

我有一个相当大的个人和“可插拔”代码模块的集合,每个模块都可以作为一个独立的项目进行独立测试、编译和开发。其中一些模块通过svn:externals属性依赖于其他模块。问题是,我们的测试框架也是每个模块的一个依赖项,并且包括测试套件的静态库,这意味着每个模块至少有15Mb,因为我们已经为多个平台构建了这些静态库

在任何情况下,这意味着一个相对简单的项目在签出时可以占用超过200Mb的磁盘空间,而这大部分都要归功于每个模块的gtest副本。我的一些同事现在开始抱怨工作副本的过大,如果只在每个模块的顶层包含gtest依赖项,并在构建中只包含该副本,就可以减少这一点


基本上,我想要一种在我的proplist中设置svn:externals的方法,但是检查每个依赖项,就好像我要将--“忽略externals”传递给svn公司一样。这可能吗?我有一种感觉不是,但值得一问……

我不知道有什么方法可以让svn跳过一个依赖项

但我认为,您可以通过另一种方式解决这个问题,即在没有共享依赖的情况下发布这些模块的标记版本。然后,其他依赖模块可以将它们的svn:external指向这些标记,而不是独立编译的分支


我之所以建议这样做,是因为听起来您对单个大型共享库有一个非常具体的问题。任何更复杂的问题,您可能无法单独使用svn:externals解决此问题。

从1.6.0+开始,Subversion可以使用svn:externals引用目录而不是目录。这可能会有所帮助?

我建议您查看稀疏签出。仅签出顶部目录(使用“仅此项”选项),获取外部文件。然后,对于您想要的每个模块,您都可以使用所需的目录更新WC,但可以省略其外部。对所有子项目重复此操作


您可能仍然需要将gtest依赖项放在repo中的另一个文件夹上,但我认为它可能适合您。

如何在没有依赖项的情况下创建标记的发行版?