VCS 中二进制引用的影响最小的解决方案

Least-impact solution to binary references in VCS

我们正在使用 TeamCity 2017.1,多年来一直非常高兴地使用它。很久以前,有人决定将所有第三方二进制文件放入 Subversion(我们选择的 VCS)中。

这工作得很好,但随着时间的推移,这个存储库变得相当大,再加上我们越来越擅长使用 TeamCity,我们现在有几十种构建配置,全部 使用第三方二进制文件。

我们的第三方文件夹名为 Department,大小约为 2.6 GB。因此,这还不错,但请记住,这个文件夹几乎被构建服务器上的每个项目

使用

现在,我同意大家所说的我们应该使用 Nugets、网络共享等,这对新项目来说效果很好。然而,我们有很多历史,我们不能开始改变每一个解决方案和分支。

一位同事提出了一个想法,即如果我们创建了一个构建项目,实际上它除了用我们部门的东西更新单个文件夹外什么也没做。然后我们只需要找到一种方法来引用它,而不必更改我们所有的项目和解决方案。

我最初虽然是使用快照依赖项,然后创建一个符号 link 作为第一个构建步骤,并在最后一个步骤中删除它,以达到相同的相对水平。

但是有没有更好的办法呢?其他人做什么?

请记住,用 nugets 或其他东西替换不是一种选择。

让我按照你同事的想法改进一下。将有一个构建配置来监视 Subversion 存储库并将包复制到网络共享。该网络共享将由开发团队用作 nuget 存储库。将其依赖项从二进制引用转换为 nuget 引用的项目将享受更快的构建。当所有团队都将使用 nuget 存储库时,您可能会杀死该 Subversion。