VCS 和 SCM 有什么区别?

我正在做一些关于实践中的修订控制的研究,在书籍和论文中似乎有两个相同的名字: 软件配置管理(SCM)和版本控制系统(VCS)。前者似乎受到软件工程师/Java 程序员的欢迎,后者则受到系统管理员的欢迎,但在外行人看来,两者的意思是一样的。

另一方面,过去我将 SCM 解释为木偶或 cfengine 之类的东西。最好有具体的例子。

44967 次浏览

版本控制系统 就是这样,提供版本控制功能的软件(Git、 Subversion、 TFS Version Control)都属于这一类。

软件配置管理 是一个更广泛的术语,涵盖了构建、打包和部署软件所需的所有过程——包括版本控制系统。它并不是指软件本身。

注意,译自: 美国《科学》杂志网站(http://en.wikipedia.org/wiki/SCM)原著: http://en.wikipedia.org/wiki/SCM可能指的是版本控制的不同含义:

此外,人们可以使用 供应链管理来指代其他命名:

  • 源代码管理 中的 < strong > 源代码控制系统
  • 软件代码管理 但这是一个变形的 < strong > 软件配置管理
  • 软件配置管理 软件配置管理的意思相同,但可能更关注于 源代码而不是整个软件(设置、命令行参数、主机参数... ...)

让我们来定义它们:

  • Version Control Systems 是管理版本的独立软件(Git...)
  • 源代码管理 与 < strong > VCS 相同
  • 软件配置管理 是管理软件所有变更的所有过程: 开发(VCS)、发布版本(VCS)、 bug 跟踪、软件设置、主机/网络设置、与其交互的其他软件的版本/设置..。

因此,仅仅使用首字母缩略词 供应链管理是令人困惑的: 有些人可能会理解与 VCS相同的意思,有些人可能会理解 VCS只是一个方面的整个过程。