用于生成4GB ISO的构建系统的版本控制解决方案

时间:2010-08-07 20:58:27

标签: version-control build centos

我有一个软件项目,在构建的最后阶段,在创建了所有jar文件和相关脚本/配置文件之后,我需要将它植入一个CentOS ISO,它有一个运行一些postinstall脚本的kickstart配置文件并安装一些自定义的RPM。

该项目位于SVN存储库中,并从那里构建。我无法将iso的文件插入到存储库中,因为SVN不处理4GB存储库。 另一方面,问题是ISO中的某些RPM可能会在不同版本之间发生变化,当我想构建项目的旧版本时,我处于一个不好的地方,因为RPM不在SVN中库中。

是否有一个好的版本控制解决方案,我只能用于4GB的ISO,可以处理这么多的数据? 是否存在我正在尝试做的非版本控制解决方案?

我希望尽可能减少对现有SVN存储库结构的更改,因为有很多脚本和依赖它的东西。

会欣赏各种答案和建议。

谢谢!

5 个答案:

答案 0 :(得分:2)

如果您确实需要存储大型工件(ISO,RPM,...),请执行以下操作:

  • 您无需比较一个版本与另一个版本之间的差异
  • 您不需要进行并行演进(只读工件)

那么你实际上并不需要VCS(版本控制系统)。

您需要一个工件库,例如Nexus 请参阅“Best practice to store .jar files in VCS (SVN, Git, …)

您将在SVN repo中发布一个文本文件,其中包含对工件存储库的必要引用以及存储所述工件时使用的SHA1 / MD5密钥。

这两个存储库的组合将允许完全可重复性,同时可以很好地扩展(根据存储库大小),因为工件存储库(与VCS相反)仅受磁盘空间的限制。

答案 1 :(得分:1)

如果您需要可重复的构建输出,那么您需要对整套构建输入进行版本控制。这包括RPM,或者至少是他们版本的清单,如果它们可以从某个地方可靠地获得。保存生成的ISO将是徒劳的。

答案 2 :(得分:0)

我猜您可以查看GIT(http://git-scm.com/) - 免费或Perforce(http://www.perforce.com)(费用)。我认为两者都可以在他们的存储库中处理4GB文件。

答案 3 :(得分:0)

git怎么样? (http://git-scm.com

答案 4 :(得分:0)

为什么必须在版本控制中存储ISO或RPM?

为什么不存储可以重建所需ISO和RPM的脚本和/或配置?