我已经了解了使用 SVN 存储构建工件(大型二进制文件)的缺点(尤其是这一点)。 哈德逊被建议作为替代方案。
Hudson 如何处理这些文件?
编辑:我的项目不是基于 Java 的。
Hudson 可以创建/保存构建工件的存档,并提供一个很好的浏览器视图来检查它们。
您需要在作业定义中启用存档工件。
Hudson 基本上是使用平面文件存储。您可以在 Hudson 的 jobs/builds/ 文件夹中找到这些文件。我不确定我会说“使用 Hudson 作为将文件签入到源代码控制的替代方法”,但如果它提供以下内容,则使用某种替代方法是一个不错的主意:
我不确定哈德森在这些分数上的得分如何,但我认为它至少可以做到这一点。SVN 作为一种解决方案也不是很糟糕,但在保留期方面确实很困难(旧版本往往会疯狂地占用磁盘空间)并且对于大型二进制文件的优化不是很好 - 大多数 SCM 系统都针对小型文本文件进行了优化。
我从这个演示文稿中窃取了上面的列表:http ://www.anthillpro.com/html/resources/webinars/Role_of_Binary_repositories_in_Software_Configuration_Management.html (需要注册)
我们使用 Jenkins 进行构建,但我们也存储构建中的工件。就像 Eric 上面所说的,Hudson/Jenkins 使用平面文件存储来存储艺术品。它是根据构建进行组织的。
我从使用中注意到的一些事情(针对 Eric 关于二进制文件源控制替代方案的问题):
仅供参考,我们的项目也不是 Java(它们是 C/C++),我们的工件是 tar.gz/zip 文件和文档。
它可能是也可能不是存储二进制文件的最佳方式,但只要您有定期备份(在我们的例子中是每周一次)并且您的磁盘具有容错能力,它绝对是不错的。