Combinan herramientas y procedimientos para gestionar versiones de los ECs cuando son creados y modificados. La implementación estándar en la industria de un sistema de control de versiones es Git.
Algunas definiciones:
- Repositorio: es el conjunto de archivos o elementos de configuración que se están controlando.
- Check out: es buscar y acceder a un artefacto del repositorio.
- Check in: es guardar una nueva versión del artefacto. Es importante describir las modificaciones realizadas.
- Trunk: o main, o master. Es la rama (o historia) principal del repositorio.
- Head: referencia a la última versión (último commit) de la rama.
- Estrategias de Branch y Merge: es para incorporar cambios de ramas al trunk.
- Delta de cambios: conjunto de cambios que nos llevan de una versión a la otra (diff).
Es importante que los delta changes se hagan cada plazos cortos así son pocos los cambios, y la integración del código se vuelve frecuente. Esos cambios deben estar justificados y sería ideal que su descripción tenga un link al ticket de cambio asociado. Por ejemplo, que un commit de GitHub tenga un link a la historia de usuario o tarea de Jira.
Repositorios
Se clasifican en:
- Centralizados: hay una sola línea base con todos los cambios guardados que se encuentra en el servidor central. Fueron los primeros pero se dejaron de usar porque ocurrían bloqueos entre desarrolladores y no escalaban de manera eficiente.
- Distribuidos: surgen desde la comunidad de OSS (Open Source Software) y proponen que cada persona o servidor tenga su propia linea base. Igual conviene tener un repositorio remoto central para la integración continua del código.
Para mantenerse lo más sincronizado posible, se hace pull al comenzar a trabajar y antes de cada push. Mantener el delta de cambios pequeño ayuda a disminuir la probabilidad de que haya conflictos.