配置管理和版本控制有什么区别?

时间:2009-10-29 19:47:19

标签: version-control configuration-management

任何人都可以简单地解释配置管理和版本控制之间的区别吗?从我在各种网站上可以找到的描述来看,配置管理似乎只是将配置文件放在源控制存储库中的一个奇特的术语。但其他人让我相信有一个更复杂的解释。

9 个答案:

答案 0 :(得分:27)

版本控制是必要的,但不足以进行配置管理。版本控制发生在某个中央或分布式存储库中,但没有说明部署或使用任何特定版本的位置。

配置管理担心如何获取版本控制中的内容并将其一致地部署到适当的位置(主要是QA和生产),但是在足够大的开发操作开发人员中也是如此。

例如,您可以将所有SQL查询保留在版本控制中,包括表修改脚本,但这不能控制何时将这些脚本部署到相应的数据库服务器并与其他任何部署保持同步依赖于该数据库结构的代码。

答案 1 :(得分:19)

配置管理包括但不限于版本控制。

Configuration management是您在项目方面需要管理的所有内容。这包括软件,硬件,测试,文档,发布管理等。它标识每个最终用户组件,并从项目的第1天到项目结束的那一天跟踪每个提议和批准的更改。

Version control专门用于计算机文件。这包括文档,电子表格,电子邮件,源代码等。

答案 2 :(得分:9)

版本控制是保存文件并保留不同版本的文件,因此您可以看到随时间的变化。

配置管理通常被称为整个过程,用于跟踪代码在哪个服务器上的版本,服务器的设置方式(以及在许多地方执行此操作的安装脚本)。这是代码进入源代码控制之后发生的事情以及如何部署到服务器/桌面等的过程。

答案 3 :(得分:1)

版本控制是可交付成果的控制,而配置管理正在管理整个流程,从而产生可交付成果。配置管理涉及变更管理,项目管理等,通常不受简单版本控制的管理。

答案 4 :(得分:1)

除了上面提到的所有内容之外,我还想推荐Bob Aiello的书“配置管理最佳实践” - http://www.amazon.com/dp/0321685865。 它涵盖了软件配置管理的所有方面,包括版本控制。

答案 5 :(得分:1)

配置管理是一个矛盾的术语。

在软件中,它往往是版本控制的超集,强调整个过程以可重复和可预测的方式产生结果。

在计算维护方面,它与整个网络和附加计算机(包括服务器,客户端,路由器......)的配置设置和硬件/固件/软件版本的维护有关。

在硬件制造方面,它甚至代表了上述两者的超集,包括获得产品所需的硬件和软件模块,以及制造它们的过程的描述,甚至有时候整个模式和配置。生产线本身。

答案 6 :(得分:0)

粗略地说,版本控制意味着您可以查看任何特定版本的源代码。配置管理意味着您可以构建和部署并可能测试任何特定版本。

答案 7 :(得分:0)

这可能会有所帮助。

版本和配置

版本:

  • 能够维护一个对象的多个版本。

  • 在许多软件工程和并行工程环境中都很常见。

  • 各种版本的合并和对帐留给应用程序

  • 某些系统维护版本图

配置:

  • 配置是软件系统模块的集合兼容版本(每个模块一个版本)

答案 8 :(得分:-2)

版本控制是SCM系统的功能之一。

来自subversion用户指南: http://svnbook.red-bean.com/en/1.7/svn-book.html

“某些版本控制系统也是软件配置管理(SCM)系统。这些系统专门用于管理源代码树,并具有许多特定于软件开发的功能,例如本地理解编程语言,或者提供用于构建软件的工具。然而,Subversion不是这些系统中的一个。它是一个可以用来管理任何文件集合的通用系统。对于你来说,这些文件可能是源代码 - 对于其他人来说,任何东西都来自杂货店购物清单以及数字视频混音及其他内容。“