Rama (versiones)

Una rama en los sistemas de control de versiones  es una dirección de desarrollo independiente de otras. Una rama es una copia de una parte de un repositorio (por ejemplo, un directorio) en el que se pueden realizar cambios sin afectar a otras ramas. Los documentos en diferentes sucursales tienen el mismo historial antes del punto de sucursal y un historial diferente después.

Los sistemas de control de versiones proporcionan herramientas para manipular ramas, principalmente creando una rama y fusionando cambios en otra rama.

Uso de ramas

Hay una serie de técnicas de bifurcación que se utilizan ampliamente principalmente en el desarrollo de software .

Rama de tallo

El historial de revisión de cada documento en el repositorio es una estructura de árbol . La rama del tallo ( eng.  tronco ) es la dirección principal del desarrollo. La mayor parte de las ramificaciones y fusiones ocurren con él. La rama principal se crea una vez al crear un nuevo repositorio y existe a lo largo de la vida del proyecto. Todas las demás sucursales se crean para fines específicos y difieren en su propósito.

Rama de lanzamiento

Antes del lanzamiento de la próxima versión del software, es inaceptable realizar cambios potencialmente desestabilizadores en el código fuente. Por lo tanto, antes del lanzamiento, generalmente se crea una rama de lanzamiento ( English  release branch o English  tag ), cuyos cambios están estrictamente regulados. Básicamente, se incluyen correcciones de errores graves encontrados durante la preparación de la versión. Todos los demás cambios se realizan en la rama del tallo. Por lo tanto, la estabilidad del código en la rama de lanzamiento no se rompe y el lanzamiento se libera del código de esta rama. En el futuro, al fusionarse, puede transferir las correcciones realizadas en la rama de lanzamiento a la rama troncal. Como regla general, la rama de lanzamiento no se elimina después del lanzamiento de la versión. Puede ser necesario para reproducir el estado del proyecto en el momento del lanzamiento.

Rama funcional

Se crea una rama funcional para realizar una  serie de cambios desestabilizadores sin afectar a la rama madre. Por ejemplo, necesita agregar una nueva funcionalidad a su código, pero los cambios son tan complejos que no se pueden realizar en una sola confirmación. O se requiere más de una persona. En este caso, se crea una rama en la que se realizan cambios desestabilizadores. En este caso, el código de la rama puede permanecer en un estado inestable durante mucho tiempo. Cuando se realizan los cambios y el código se lleva a un estado estable, los cambios se fusionan en la rama troncal. Por lo tanto, en la rama principal, los cambios realizados en la rama característica parecen una sola confirmación (la confirmación que se fusionó) y no hay estados intermedios inestables en la rama principal. Se encuentran únicamente en la rama funcional, donde se pueden consultar si es necesario. Después de la fusión, el ciclo de vida de una rama de función finaliza y se puede eliminar.

Véase también