的 版本控制 强> 是可交付成果的控制而是 的 配置管理 强> 正在管理整个过程,从而产生可交付成果。配置管理涉及变更管理,项目管理等,通常不受简单版本控制的管理。
除了上面提到的所有内容之外,我还想推荐Bob Aiello的书“配置管理最佳实践” - http://www.amazon.com/dp/0321685865 。 它涵盖了软件配置管理的所有方面,包括版本控制。
版本控制是必要的,但不足以进行配置管理。版本控制发生在某个中央或分布式存储库中,但没有说明部署或使用任何特定版本的位置。
配置管理担心如何采用版本控制中的内容并将其一致地部署到适当的位置,主要是QA和生产,但是在足够大的开发操作开发人员中也是如此。
例如,您可以将所有SQL查询保留在版本控制中,包括表修改脚本,但这并不能控制何时将这些脚本部署到相应的数据库服务器并与依赖于任何其他代码的部署保持同步在该数据库结构上。
配置管理是一个矛盾的术语。
在软件中,它往往是版本控制的超集,强调整个过程以可重复和可预测的方式产生结果。
在计算维护中,它与整个网络和一组连接的计算机(包括服务器,客户端,路由器......)的配置设置和硬件/固件/软件版本的维护有关。
在硬件制造中,它甚至代表了上述两者的超集,包括获得产品所需的硬件和软件模块,以及制造它们的过程的描述,甚至有时候生产线本身的整个模式和配置。 。
版本控制是SCM系统的功能之一。
从subversion用户指南: http://svnbook.red-bean.com/en/1.7/svn-book.html
“某些版本控制系统也是软件配置管理(SCM)系统。这些系统专门用于管理源代码树,并具有许多特定于软件开发的功能,例如本地理解编程语言或提供工具然而,Subversion并不是这些系统中的一个。它是一个可用于管理任何文件集合的通用系统。对于你来说,这些文件可能是其他人的源代码,也可能是杂货购物清单中的任何内容。数字视频混合以及更多。“
配置管理包括但不限于版本控制。
配置管理 是您在项目方面需要管理的一切。这包括软件,硬件,测试,文档,发布管理等。它标识每个最终用户组件,并跟踪从项目第1天到项目结束当天的每个建议和批准的更改。
版本控制 特别适用于计算机文件。这包括文档,电子表格,电子邮件,源代码等。
版本控制是保存文件并保留它们的不同版本,因此您可以看到随时间的变化。
配置管理通常被称为整个过程,用于跟踪代码在哪个服务器上的版本,服务器的设置方式(以及在许多地方执行此操作的安装脚本)。这是代码进入源代码控制之后发生的事情的过程以及如何部署到服务器/桌面等。
粗略地说,版本控制意味着您可以查看任何特定版本的源代码。配置管理意味着您可以构建和部署并可能测试任何特定版本。