Un sistema de control de versiones es responsable de administrar los cambios en los datos en un repositorio. Esto puede incluir código, sitios web, documentos o cualquier otra recopilación de información. El software de control de versiones facilita y hasta cierto punto automatiza este proceso.
También se conoce como control de revisión, control de código fuente o sistema de gestión de código fuente.
Varias versiones para el mismo proyecto
Los diferentes autores que trabajan en el mismo proyecto (ya sea para código o noticias) deben asegurarse de que no reemplazarán la versión actual y relevante con algo que esté desactualizado o en un nivel de desarrollo más bajo.
Un ejemplo particularmente bueno es la edición colaborativa en sitios como Wikipedia. Originalmente, cualquiera podía crear o editar una página. Evidentemente, esto ha cambiado con el tiempo. ¿Qué pasa si dos personas publican casi simultáneamente? ¿O si alguien decide destrozar un artículo?
El software de Wikipedia le permite revisar todos los cambios. El «historial» de cada página contiene enlaces a todas las revisiones. Y los cambios no deseados se pueden deshacer seleccionando estos enlaces. Esta es una forma (algo complicada) de control de versiones. Puede pensar en el sitio web con su información como un repositorio, y elementos específicos y su historial de cambios como una forma de control de versiones.
El repositorio: el stock de todas las versiones existentes
El repositorio contendrá cada versión de este código (y el código de otros proyectos) con una marca de tiempo para cada versión. Estas revisiones internas se registrarán y se les asignará un número de versión que se puede incrementar varias veces al día. Una vez implementado el software, se le asigna un número de versión, que está sujeto a cambios menos frecuentes.
Si se descubre un problema, es posible que sea necesario volver a la versión actual. Por lo general, se reemplaza con una versión estable anterior mientras se eliminan los errores.
El software gestiona las versiones contenidas en el repositorio
Cada archivo que se va a modificar se extrae del repositorio mediante una solicitud de «actualización» del archivo y el software de control de versiones lo anota. El desarrollador trabaja en su copia local del archivo (una «copia de trabajo» o copia de trabajo) y, cuando haya terminado, lo volverá a registrar en el repositorio (una «confirmación»).
Cómo resolver conflictos de edición
Anteriormente mencionamos los conflictos de edición. ¿Cómo resuelve el software estos problemas? Por lo general, se utilizan estos métodos:
• La validación atómica aplica todos los cambios en una sola operación y revierte en caso de falla
• El bloqueo limita la edición del archivo a una persona a la vez
• Fusionar verifica que los cambios estén en diferentes partes del archivo y no estén en conflicto. En caso de conflicto, el software conservará los archivos modificados y enviará una alerta al equipo de desarrollo.
• La resolución manual es cuando el equipo de desarrollo decide qué versión conservar y puede editar manualmente el archivo para reflejar esto.
Ya hemos mencionado las versiones. Para estos, debe haber un estándar acordado para las versiones de lanzamiento.
Tome el ejemplo de IBM para su software de servidor, AIX 7.2.4. AIX es el nombre del sistema operativo, 7 es la versión principal, 2 es la versión secundaria y 4 es la compilación (o recompilación del software).
Puede haber campos siguientes que etiqueten revisiones de compilación, correcciones, paquetes de servicio y más, pero en general, el formato siempre es del nivel superior al inferior. Para la mayoría de las versiones, cambiar la versión principal indica que la compatibilidad con versiones anteriores se ha visto comprometida. Esto permite que cualquiera pueda identificar rápidamente si la nueva versión funcionará de manera diferente a la anterior.
En la próxima entrega de este artículo, compararé varias herramientas de control de versiones.
Source: GBNEWS.CH
Esto no es en ningún caso un llamado a la inversión.