stringtranslate.com

Ramificación (control de versiones)

La ramificación , en control de versiones y gestión de configuración de software , es la duplicación de un objeto bajo control de versiones (como un archivo de código fuente o un árbol de directorios ). A partir de entonces, cada objeto se puede modificar por separado y en paralelo para que los objetos se vuelvan diferentes. En este contexto los objetos se llaman ramas . Los usuarios del sistema de control de versiones pueden bifurcar cualquier rama.

Las ramas también se conocen como árboles , arroyos o líneas de código . La rama de origen a veces se denomina rama principal , rama ascendente (o simplemente ascendente , especialmente si las ramas son mantenidas por diferentes organizaciones o individuos) o corriente de respaldo .

Trompa

Las ramas secundarias son ramas que tienen un padre; una rama sin un padre se denomina troncal o línea principal . [1] A veces también se hace referencia al tronco como HEAD, pero correctamente head no se refiere a una rama, sino a la confirmación más reciente en una rama determinada, y tanto el tronco como cada rama nombrada tienen su propio encabezado. El tronco suele estar destinado a ser la base de un proyecto sobre el que avanza el desarrollo. Si los desarrolladores trabajan exclusivamente en el tronco, este siempre contiene la última versión del proyecto, pero por lo tanto también puede ser la versión más inestable. Otro enfoque es dividir una rama del tronco, implementar cambios en esa rama y fusionar los cambios nuevamente en el tronco cuando la rama haya demostrado ser estable y funcional. Dependiendo del modo de desarrollo y la política de confirmación, el tronco puede contener la versión más estable, la menos estable o algo intermedio. Otros términos para troncal incluyen línea base, línea principal y maestro, aunque en algunos casos se usan con sentidos similares pero distintos; consulte control de versiones § Terminología común . A menudo, el trabajo del desarrollador principal se lleva a cabo en el tronco y las versiones estables se ramifican, y las correcciones de errores ocasionales se fusionan de las ramas al tronco. Cuando el desarrollo de versiones futuras se realiza en ramas no troncales, generalmente se realiza para proyectos que no cambian con frecuencia o donde se espera que un cambio tarde mucho tiempo en desarrollarse hasta que esté listo para incorporarse en la troncal.

Fusionando

La bifurcación generalmente implica la capacidad de fusionar o integrar cambios posteriormente en la rama principal. A menudo, los cambios se fusionan en el tronco, incluso si esta no es la rama principal. Una rama que no está destinada a fusionarse (por ejemplo, porque un tercero le ha vuelto a otorgar una licencia incompatible o porque intenta cumplir un propósito diferente) generalmente se denomina bifurcación .

Motivaciones para ramificarse

Las sucursales permiten que partes de software se desarrollen en paralelo. [2] Los proyectos grandes requieren que se cubran muchos roles, incluidos desarrolladores, gerentes de construcción y personal de control de calidad . Además, es posible que sea necesario mantener varias versiones en diferentes plataformas de sistemas operativos. Las ramas permiten a los contribuyentes aislar cambios sin desestabilizar el código base, por ejemplo, correcciones de errores, nuevas funciones , [3] e integración de versiones . Estos cambios pueden fusionarse (resincronizarse) más tarde después de la prueba.

Rama de desarrollo

Una rama de desarrollo o árbol de desarrollo de una pieza de software es una versión que está en desarrollo y aún no ha sido lanzada oficialmente . En la comunidad de código abierto , la noción de lanzamiento es típicamente metafórica, ya que generalmente cualquiera puede verificar cualquier versión que desee, ya sea en la rama de desarrollo o no. A menudo, la versión que eventualmente se convertirá en la próxima versión principal se denomina rama de desarrollo. Sin embargo, suele haber más de una versión posterior del software en desarrollo en un momento dado.

A menudo, la rama de desarrollo es el tronco. Algunos sistemas de control de revisiones tienen una jerga específica para la rama principal de desarrollo. Por ejemplo, en CVS , se llama rama "PRINCIPAL". Git usa "master" de forma predeterminada, aunque GitHub [4] [5] y GitLab cambiaron a "main" después del asesinato de George Floyd .

Ramas de sombra o mágicas

En CVSNT , una rama mágica o sombra "sombra" los cambios realizados en la rama ascendente, para que sea más fácil mantener pequeños cambios (cvc es un sistema de creación de paquetes de código abierto [ cita requerida ] que incorpora un sistema de control de revisiones para paquetes producidos por rPath .)

Control de revisión distribuido

Clones del repositorio

En el control de revisiones distribuido , se puede copiar y trabajar más en todo el repositorio, con ramas. Monotone (mtn), Mercurial (hg) y git lo llaman "clon"; Bazar lo llama "sucursal". [ cita necesaria ]

En algunos sistemas distribuidos de control de revisiones , como Darcs , no se hace distinción entre repositorios y sucursales; en estos sistemas, recuperar una copia de un repositorio equivale a realizar una bifurcación.

Ver también

Referencias

  1. ^ Berczuk, Steve; Appleton, Brad (2003). Patrones de gestión de la configuración del software: trabajo en equipo eficaz, integración práctica. Addison-Wesley . ISBN 0-20174117-2. Consultado el 24 de mayo de 2007 .
  2. ^ Appleton, Brad; Berczuk, Stephen; Cabrera, Ralph; Orenstein, Robert (8 de febrero de 1998). "Líneas transmitidas: patrones de ramificación para el desarrollo de software en paralelo" ( PDF ) . Ladera . Consultado el 12 de agosto de 2009 .
  3. ^ Bailey, Derick (15 de julio de 2009). "Parte 1: Por qué". Control de fuente de rama por función . Los técnicos . Consultado el 12 de agosto de 2009 .
  4. ^ Wallen, Jack (22 de septiembre de 2020). "GitHub reemplazará master por main a partir de octubre: lo que los desarrolladores deben hacer ahora". República Tecnológica . Consultado el 24 de abril de 2022 .
  5. ^ Heinze, Carolyn (24 de noviembre de 2020). "Por qué GitHub cambió el nombre de su rama maestra a principal". El lado del servidor . Consultado el 24 de abril de 2022 .