我正在研究的一个项目涉及不断维护一个克隆到嵌入式设备上的基本Linux磁盘映像。
现在,每次进行更改时,我们都会记录我们在文件中完成的操作并保存磁盘映像的副本。然而,作为一名软件工程师,这与常规实践相悖:使用工具来处理配置管理和控制。
有没有好的工具可以基本上在文件级别执行此操作,允许我们提交/回滚对整个系统的磁盘上的实际文件的更改?或者,有没有比传统源代码管理工具更好地处理大文件的东西,而传统的源代码管理工具并不是专为巨型二进制文件设计的?
答案 0 :(得分:1)
发表评论五年后,我有了一个更好的解决方案。 Artifactory和Nexus打算作为CI / CD代码管道的一部分来完成这项工作。
就我而言,我使用Jenkins,Artifactory,GitHub,CircleCI,并出于传统原因使用Perforce来管理70k +文件的代码树(代码树不是我的设计!),用于C ++和Javascript构建。
FOSS Artifactory相当有限,您可以使用版本控制来存储任意文件,但是不能使用逐步控制机制来控制管道,因为它会将工件从构建转移到测试再到...部署。 / p>
Artifactory Pro不是免费的,但它具有许多标准软件包的存储库,例如Docker容器,Debian,NPM,Gems等。
答案 1 :(得分:0)
配置管理应以首选形式进行,以进行修改。对于磁盘映像,这意味着实际文件以及用于构建映像的构建脚本。这背后的原因与你保留历史的原因有关:
由于可以提取磁盘映像,如果您只是跟踪二进制文件,则不会完全陷入困境,但通过跟踪源代码,这些操作更容易批次。
答案 2 :(得分:0)
我们最终将关键文件放在源代码管理中,但不是整个系统。
答案 3 :(得分:0)
我有完全相同的问题。目前我的git版本存储库已超过150G,从CVS转移。 CVS完美地处理了小文件,但是在多G文件中无人问津。 所以。如果有其他人匆匆过来,我正在寻找一些可能的解决方案:
http://git-annex.branchable.com/
https://github.com/jedbrown/git-fat
https://github.com/schacon/git-media
http://code.google.com/p/boar/
可能是Subversion,如果它可以处理8G文件。