Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux映像的版本控制/配置管理_Linux_Version Control_Diskimage - Fatal编程技术网

Linux映像的版本控制/配置管理

Linux映像的版本控制/配置管理,linux,version-control,diskimage,Linux,Version Control,Diskimage,我正在从事的一个项目涉及持续维护一个基本的Linux磁盘映像,该映像将被克隆到嵌入式设备上 现在,每次进行更改时,我们都将所做的操作记录在一个文件中,并保存磁盘映像的副本。然而,作为一名软件工程师,这与传统做法背道而驰:使用工具来处理配置管理和控制 是否有好的工具基本上可以在文件级别执行此操作,允许我们提交/回滚对整个系统磁盘上实际文件的更改?或者,是否有比传统的源代码管理工具更好的方法来处理大型文件,而传统的源代码管理工具并不是专门为大型二进制文件设计的?配置管理应该以首选的形式进行修改。对于

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

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


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

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

  • 确定错误或特性是在什么版本中引入的,以及由谁引入的
  • 查看以前的版本以调试字段问题,可能会向其添加临时调试代码
  • 能够出于各种原因创建分支,并在适当的时候将它们合并在一起

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

我们最终将关键文件置于源代码管理中,而不是整个系统。

我也有同样的问题。目前,我的版本库是从CVS迁移过来的,git超过150G。CVS完美地处理了小文件,但却对多G文件望而却步。 所以如果有其他人来访,以下是我正在考虑的一些可能的解决方案:


还有可能是Subversion,如果它能处理8G文件。

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

在我的例子中,我使用詹金斯、AtgPrime:Github、CyCeleCI和遗留的原因PursiCE,管理一个70K+文件(代码树不是我的设计)的代码树,用于C++和JavaScript构建。 FOSS Artifactory非常有限,您可以使用版本控制存储任意文件,但您不能使用向前推进机制来控制管道,因为它可以将工件从构建移动到测试,再移动到部署


Artifactory Pro不是免费的,但它有许多标准软件包的回购协议,如Docker containers、Debian、NPM、Gems等。

谢谢。这是一个很好的总结,说明了为什么要使用版本控制,但它并没有回答这个问题。问题是有什么工具可以处理完整系统映像的此类任务。这就是我的全部观点,没有好的工具来处理二进制映像,因为在源代码级别进行这种配置管理要有用得多。然后问题继续问,是否有工具可以处理磁盘上的所有文件。这里没有“来源”;它们是系统配置文件。