¿Cuál es la diferencia entre VCS y SCM?

Estoy investigando el control de revisiones en la práctica, y parece haber dos nombres para lo mismo en libros y documentos: Software Configuration Management (SCM) y Version Control Systems (VCS). El primero parece ser popular entre los ingenieros de software / progtwigdores de Java, y el segundo con los de los administradores de sistemas, pero ambos parecen, a simple vista, significar lo mismo.

Por otro lado, en el pasado he interpretado que SCM significa algo como títere o cfengine. ¿Alguien me puede aclarar estos dos términos en la práctica? Preferiblemente con ejemplos concretos.

Los sistemas de control de versiones son solo eso, el software que proporciona la funcionalidad de control de versiones (Git, Subversion, Control de versiones de TFS) cae dentro de esta categoría.

Software Configuration Management es un término más amplio que abarca todos los processs necesarios para crear, empaquetar e implementar software; esto incluye los Sistemas de control de versiones. No se refiere al software per se.

Precaución, SCM puede referirse a diferentes significados sobre Versioning:

  • Software Configuration Management como se explica en la respuesta de JimDaniel
  • Source Control Management es el mismo que Control de versiones y Control de origen y VCS

Además, las personas pueden usar SCM para referirse a otros nombres:

  • Gestión de código fuente como en el sistema de control de código fuente
  • Software Code Management, pero esta es una deformación de Software Configuration Management
  • Source Configuration Management tiene el mismo significado que Software Configuration Management, pero tal vez más centrado en el código fuente que en todo el software (configuration, arguments de command-line, parameters de host …)

Vamos a definirlos:

  • Version Control Systems es el software independiente para administrar las versiones (Git …)
  • Source Control Management es lo mismo que VCS
  • Software Configuration Management es todos los processs para gestionar todos los cambios del software: el desarrollo ( VCS ), la entrega de entrega ( VCS ), el seguimiento de errores, la configuration del software, la configuration de host / networking, la versión / configuration del otro software interactuando con…

Por lo tanto, solo usar el acrónimo SCM es confuso: algunas personas pueden entender el mismo significado que VCS , otras pueden entender todo el process donde VCS es solo un aspecto.