2

我正在进行的一个项目涉及持续维护一个基本 Linux 磁盘映像,该磁盘映像被克隆到嵌入式设备上。

现在,每次进行更改时,我们都会在文件中记录我们所做的事情并保存磁盘映像的副本。然而,作为一名软件工程师,这与传统做法背道而驰:使用工具来处理配置管理和控制。

是否有好的工具基本上可以在文件级别执行此操作,允许我们提交/回滚对整个系统磁盘上实际文件的更改?或者,有没有什么东西可以比传统的源代码管理工具更好地处理大文件,而传统的源代码管理工具并不是专门为巨型二进制文件设计的?

4

4 回答 4

1

在我发表评论五年后,我有了一个更好的解决方案。Artifactory 和 Nexus 旨在作为 CI/CD 代码管道的一部分来完成这项工作。

就我而言,我使用 Jenkins、Artifactory、GitHub、CircleCI 以及出于遗留原因 Perforce 来管理一个包含 70k+ 文件的代码树(代码树不是我的设计!),用于 C++ 和 Javascript 构建。

FOSS Artifactory 非常有限,您可以使用版本控制存储任意文件,但您不能使用让您控制管道的步进机制,因为它将工件从构建移动到测试到......部署。

Artifactory Pro 不是免费的,但它包含许多标准包的存储库,例如 Docker 容器、Debian、NPM、Gems 等。

于 2019-05-04T20:25:42.173 回答
0

配置管理应该以进行修改的首选形式进行。对于磁盘映像,这意味着实际文件,以及用于构建映像的构建脚本。这背后的原因与您首先保留历史记录的原因有关:

  • 确定在哪个版本中引入了错误或功能,以及由谁引入
  • 查看以前的版本以调试字段问题,可能会向其中添加临时调试代码
  • 能够因各种原因制作分支,并在适当的时候将它们合并在一起

由于可以提取磁盘映像,因此如果仅跟踪二进制文件,您不会完全陷入困境,但通过跟踪源,这些操作会容易得多

于 2011-08-13T02:33:35.790 回答
0

我们最终将关键文件放在源代码控制中,而不是整个系统。

于 2011-10-05T20:22:38.050 回答
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/

如果它可以处理 8G 文件,也可能是 Subversion。

于 2014-05-14T23:42:03.227 回答