使用持续集成用法将第三方库存储到源控件中

siv*_*udh 2 svn version-control teamcity continuous-integration

我刚刚将一个非常大的第三方库(Boost)提交到我们的源代码控制中.我用自己的存储库设置它.我标记了它的版本,以便其他项目可以svn:externals这个特定的版本.

这非常好,直到我意识到我的持续集成(CI)服务器每次签入一些代码时都会完成检查.(显然,我一开始就故意设置我的CI服务器).这可能会导致CI服务器端的检出时间非常长.

所以问题是:这是一件好事吗?有人建议可能有更好的方法来处理这种模式吗?

编辑:我正在使用TeamCity CI服务器.

cod*_*ion 6

默认情况下,TeamCity配置为缓存导出的源(Checkout模式:在服务器上自动).这意味着第一次构建可能需要一些时间,但后续构建将明显更快,因为它只加载更改的文件.自动清洁检查只会在某些情况下发生.

如果您已经检查了整个第三方库,包括文档和源代码,您可能需要创建一个结帐规则来过滤掉那些无关的文件,这样您就只剩下编译解决方案所需的二进制文件(假设您已经检查过)在编译的二进制文件中).

TeamCity允许在每个构建配置中有多个VCS根,因此您可以更容易地排除主VCS根目录中的外部(这是默认值),然后添加指向其他存储库的另一个VCS根目录,并使用结帐规则将在预期目录中增加预编译库.

有关清理结帐和结帐规则的详细信息,请参阅:

http://www.jetbrains.net/confluence/display/TCD4/Clean+Checkout#CleanCheckout-sourcescache http://www.jetbrains.net/confluence/display/TCD4/VCS+Checkout+Rules