versiones team source software easiest control best version-control naming

version-control - team - source control software



Control de fuente vs. Control de revisiĆ³n? (12)

Agregué un comentario, pero creo que también puede calificar para una respuesta. Tengo un punto de vista diferente y algunos de los otros comentarios ya expresados.

En general, SCM (Software Configuration Management) o (Source Code Management - término derivado) es fácil de entender, ya que se utiliza como un término general que incluye tanto el control de revisión como otras técnicas, como la gestión de línea base. Ver http://en.wikipedia.org/wiki/Software_configuration_management . En general, las herramientas modernas de SCM que van desde CVS hasta Git incluyen estas dos técnicas y muchas más funciones útiles: control de permisos, gestión de derechos, auditoría de seguridad, personalización del flujo de SCM (ClearCase), integración con el sistema de compilación y seguimiento de problemas software, etc. Creo que la lista está abierta porque todo lo relacionado con el cambio y la administración del software puede ingresar aquí.

Entonces la principal confusión proviene de entender la diferencia entre el Control de Revisión, el Control de Versión y posiblemente el Control de Fuente. Antes que nada, todos los términos que incluyen "fuente" son todos términos derivados, con eso me refiero a que a algunas personas les molestan todos estos términos genéricos (administración de configuración, ¿qué es eso?) E insisten en que trabajan con el código fuente en particular y no no me importan otros casos de uso; cual es el punto justo

En cuanto al control de revisión frente al control de versión, creo que el término correcto (en el contexto de herramientas como SVN, Git) es el control de revisión. En mi opinión, con el término Control de revisión, el énfasis está en administrar el cambio (además de administrar las versiones) de (no solo) los archivos de código fuente, mientras que con Control de versiones, el énfasis recae en administrar solo las versiones de los archivos.

En teoría, alguien podría escribir una pieza de software que permita el seguimiento y la administración de archivos binarios sin soporte binario de diferencias y fusiones, y llamaría a este Sistema de control de versiones. Sin embargo, en el caso de herramientas como SVN, Git también permite gestionar los cambios en los archivos: diferir, fusionar y en el caso de Git el famoso rebase.

Por lo tanto, en conclusión, el control de revisión incluye el control de versiones y es más apropiado para nombrar herramientas como CVS, SVN, Git; mientras que Source Control es un término derivado y debe evitarse si se quiere nombrar un aspecto SCM específico.

SCM > Revision Control > Version Control

¿Cuál es el nombre correcto para un sistema que almacena versiones del código fuente, como SVN o TFS?

Siempre lo llamé control de fuente, pero lugares como Wikipedia lo llaman control de revisión.

¿Para hacer que estos sitios más complicados como este tengan una etiqueta para ambos?


Ciertos sistemas (como SVN) tienen una revisión de término que representa un número asociado con un conjunto específico de versiones de todos los archivos en el repositorio. En dichos sistemas, la revisión ( revisión de SVN ) significa esencialmente versión ( versión de fuentes ). De lo contrario, el control de revisión y el control de versión son los mismos términos.


Entonces, ¿qué estás buscando exactamente ahora?

No creo que haya un término correcto. Ambos términos, así como algunos otros ya mencionados en otras respuestas se utilizan básicamente para lo mismo.

Las personas con las que está hablando lo conectarán con un significado ligeramente diferente incluso cuando usen la misma palabra para el mismo, y pueden significar exactamente lo mismo, incluso cuando se usa otra palabra.

Por otra parte, el vocabulario utilizado en torno a estas cosas también puede ser diferente (o adjuntar a diferentes significados) en círculos alrededor de diferentes implementaciones de software de este concepto.

Mientras escribo esto, me viene a la mente que este es un fenómeno muy natural, en otras áreas también tienes palabras múltiples que significan básicamente el mismo significado, mientras que algunos argumentan que en realidad hay pequeñas diferencias, otros dirían que estas diferencias no realmente existen o no vale la pena pensar en ellos. Y nunca está garantizado que cuando dos personas usan exactamente la misma palabra, realmente quieren decir exactamente lo mismo.


Hay tres sinónimos que describen casi lo mismo:

  1. Control de revisión Trata con revisiones (revisiones de documentos / artefactos y versiones posteriores de documentos / artefactos) o números (como una abstracción del concepto de revisión ).
  2. Control de fuente Se trata de archivos de texto (fuente), no binarios . Esta diferencia juega un papel importante siempre que sea mucho más fácil realizar una comparación y obtener una diferencia entre los archivos de texto . Existe toda una gama de herramientas básicas relacionadas con el control de fuente: diff , diff3 , patch , etc. Este conjunto de herramientas se puede ampliar para formar una solución de control de fuente. Ejemplo de tal solución es RCS.
  3. Gestión del código fuente Se ocupa de operaciones más complejas sobre el código fuente: almacenarlo en un repository con la posibilidad de crear branches separadas. También se supone que las ramas se pueden merged . Otra parte de la gestión del código fuente es el tagging . Un problema con la administración de código fuente es que tiene la abreviatura SCM. Esta abreviatura se usa para describir un conjunto más amplio de actividades: administración de la configuración del software . Hay mucha confusión porque la administración de código fuente es un subconjunto de la administración de configuración de software que también se ocupa de actividades tales como administración de compilación , administración de implementación , integración continua , administración de dependencias , administración de versiones , etc.
  4. Control de versiones Se utiliza como sustitución de un término como la administración del código fuente para evitar la ambigüedad. Incorpora ambos conceptos de control de revisión y control de fuente, lo que lo hace describir casi el mismo concepto. Actualmente, ambos términos control de revisión , control de fuente son sustituidos por control de versión como más apropiado teniendo en cuenta la amplia gama de herramientas (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS, etc.) que resuelven ambas tareas de control de revisión y control de fuente simultáneamente

Imagen para ilustrar con mayor claridad la distinción entre todos estos conceptos:


La terminología utilizada no es muy precisa. Hay un artículo que describe las cinco dimensiones relevantes. Las herramientas de administración de datos para el desarrollo de software no tienden a admitir más de tres de manera consistente al mismo tiempo. Si desea admitir los cinco, debe describir un proceso de desarrollo:

  • Versión (semántica: modificación)
  • Vista (semántica: equivalencia, derivación)
  • Jerarquía (semántica: consiste en)
  • Estado (semántica: aprobación, accesibilidad)
  • Variante (semántica: variaciones del producto)

Peter van den Hamer y Kees Lepoeter (1996). Gestión de datos de diseño: las cinco dimensiones de los marcos de CAD, la gestión de la configuración y la gestión de datos del producto, procedimientos del IEEE, vol. 84, No. 1, enero de 1996


Me gusta pensar de esta manera:

El control de revisión es lo que hacen .

El control de fuente es para lo que los uso.

:-)


No hay un nombre "correcto", los cuatro nombres comunes son:

  • Sistema de control de versiones
  • Sistema de control de revisiones
  • Sistema de control de fuente
  • Sistema de gestión del código fuente


otro nombre es: control de versión

Según las etiquetas utilizadas en este sitio, el "control de origen" es el más popular (lo cual es bastante normal, ya que este sitio trata de programación):

  • control de fuente (633 etiquetas)
  • control de versiones (587)
  • control de revisión (31)

MIL-STD 973 Describe la gestión de la configuración.

Software Configuration Management se hace exactamente igual.

Ver el CMMI para una buena explicación de SCM / CM.

Los sistemas de los que habla son sistemas de control de versiones. Ellos versionan cosas.

Old SCCS era un sistema de control de código fuente.

Los sistemas de control de código fuente mantienen el historial de revisión.

Digamos que cambias un archivo de la revisión

1.1, 1.2, 1.3.

En 1.3 lanzamos "Awesome Edition" de nuestro producto.

1.3 es una revisión AwesomeEdition es una versión.

En sistemas como CVS, las revisiones ocurren como cambios de numeración, y las marcas marcan versiones. La numeración de revisión de repositorio tipo SVN confunde a los clientes del gobierno que esperan un tipo de comportamiento MIL-STD.

Lo bueno de los estándares en la gestión del cambio es que hay muchos para elegir.


  • Version Control System (VCS) es el término más comúnmente utilizado
  • Source Code Management (SCM) se usa en git, pero se inventa y se puede confundir con Software Configuration Management que ya se usa en la industria del software y no es lo mismo.

  • El Control de Revisión es el término más genérico, usado para herramientas de control de fuente pero también para otras herramientas (Word, OpenOffice, ...). Hace referencia a una versión.

  • Source Control ofrece control de revisión con bifurcación y fusión que no siempre están disponibles en todas las herramientas de revisión (Word no es un control de origen, pero ofrece características de control de revisión)

  • Control de versiones es un término más general que el control de código fuente, ya que administra la versión de cualquier cosa (fuentes o binarios, o cualquier tipo de documentos)

Nota: SCM significa Source Code Management, pero también para Software Code Management, para reflejar la misma idea (no solo se administran las "fuentes").
Además, SCM introduce la noción de dependencias entre un grupo de archivos.
Y también puede incluir la noción de ciclo de vida de cambio (iniciar un cambio, cerrar un cambio, ...) que lleva al sistema de solicitud de cambio.