Componentes de un sistema de control de versiones: glosario de términos

InformáticaActualizado el 4,44 KB

Resumen

El documento recoge el glosario de los componentes y términos habituales de un sistema de control de versiones (VCS), como repositorio, rama, tronco, versión, etiqueta o conflicto. Explica también las acciones básicas como clonar, bifurcar, fusionar, sincronizar o revertir cambios. Advierte que cada sistema puede usar nombres distintos para los mismos conceptos.

Puntos clave

  • Un repositorio es el lugar central donde se almacenan los datos y las distintas versiones de uno o varios proyectos.
  • El tronco (trunk o master) es la línea de desarrollo principal, destinada a pasar a producción cuando el desarrollo finaliza.
  • Una rama es una bifurcación del tronco con una versión independiente que puede incorporarse al tronco más adelante.
  • Clonar crea una copia idéntica de un repositorio con las mismas revisiones, mientras que una bifurcación (fork) crea un repositorio independiente no ligado al original.
  • Pull copia los cambios de un repositorio (habitualmente remoto) al local, y push o fetch los envía al otro repositorio; ambas acciones pueden provocar conflictos.
  • Un conflicto se produce cuando se intenta añadir cambios a un fichero que otro usuario ha modificado antes, y debe resolverse antes de combinar los cambios.

Ponte a prueba

Componentes de un Sistema de Control de Versiones

Un sistema de control de versiones (VCS, por sus siglas en inglés) se compone de varios elementos o componentes que utilizan una terminología específica. Es importante tener en cuenta que no todos los sistemas de control de versiones emplean los mismos términos para referirse a los mismos conceptos.

Repositorio (Repository o Depot)

Es el conjunto de datos almacenados, que también se refiere a las versiones o copias de seguridad. Es el lugar central donde se almacenan estos datos. Puede contener muchas versiones de un único proyecto o de varios proyectos.

Módulo (Module)

Se refiere a una carpeta o directorio específico dentro del repositorio. Un módulo puede hacer referencia a todo el proyecto o solo a una parte del mismo.

Tronco (Trunk o Master)

Es el estado principal del proyecto. Es la línea de desarrollo principal, destinada a ser la versión que, una vez finalizado su desarrollo, se pasará a producción.

Rama (Branch)

Es una bifurcación del tronco (o rama maestra) de la aplicación. Contiene una versión independiente de la aplicación a la que se pueden aplicar cambios sin afectar al tronco ni a otras ramas. Estos cambios, en el futuro, pueden incorporarse al tronco.

Versión o Revisión (Version o Review)

Es el estado del proyecto, o de una de sus ramas, en un momento determinado. Se crea una versión cada vez que se añaden cambios a un repositorio.

Etiqueta (Tag, Label o Baseline)

Información adicional que se añade a una versión. A menudo indica alguna característica específica que la hace especial. Esta información es textual y, muchas veces, se genera manualmente.

Head (Head o Tip)

Hace referencia a la versión más reciente de una determinada rama o del tronco. Tanto el tronco (para referirse a este HEAD) como cada rama tienen su propio head.

Clonar (Clone)

Consiste en crear un nuevo repositorio, que es una copia idéntica de otro, ya que contiene las mismas revisiones.

Bifurcación (Fork)

Creación de un nuevo repositorio a partir de otro. A diferencia de la clonación, este nuevo repositorio no está ligado al repositorio original y se trata como un repositorio independiente.

Pull

Es la acción que copia los cambios de un repositorio (habitualmente remoto) al repositorio local. Esta acción puede provocar conflictos.

Push o Fetch

Son acciones utilizadas para añadir los cambios del repositorio local a otro repositorio (habitualmente remoto). Esta acción puede provocar conflictos. (Fetch, en algunos sistemas, solo descarga los cambios sin aplicarlos, mientras que Push sí los aplica).

Cambio (Change o Diff)

Representa una modificación concreta de un documento bajo el control de versiones.

Sincronización (Update o Sync)

Es la acción de combinar los cambios hechos en el repositorio con la copia de trabajo local.

Conflicto (Conflict)

Se produce cuando se intentan añadir cambios a un fichero que ha sido modificado previamente por otro usuario. Antes de poder combinar los cambios con el repositorio, se debe resolver el conflicto.

Fusionar (Merge o Integration)

Es la acción que se produce cuando se quieren combinar los cambios de un repositorio local con uno remoto, se detectan cambios en el mismo archivo en ambos repositorios y se produce un conflicto. Para resolver este conflicto, se deben fusionar los cambios antes de poder actualizar los repositorios.

Bloqueo (Lock)

Algunos sistemas de control de versiones, en lugar de utilizar el sistema de fusiones, bloquean los archivos en uso. De esta forma, solo un usuario puede modificar un fichero en un momento dado.

Directorio de Trabajo (Working Directory)

Directorio en el que el programador trabajará a partir de una copia que habrá hecho del repositorio en su ordenador local.

Copia de Trabajo (Working Copy)

Hace referencia a la copia local de los archivos que se han copiado del repositorio. Es sobre esta copia sobre la que se realizan los cambios (es decir, se trabaja, de ahí el nombre) antes de añadir estos cambios al repositorio. Se almacena en el directorio de trabajo.

Volver a la Versión Anterior (Revert)

Descarta todos los cambios producidos en la copia de trabajo desde la última sincronización con el repositorio.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué diferencia hay entre clonar y bifurcar un repositorio?

Al clonar se crea una copia idéntica del repositorio con las mismas revisiones. Al bifurcar se crea un nuevo repositorio a partir de otro, pero este no está ligado al original y se trata como independiente.

¿Qué es el directorio de trabajo?

Es el directorio en el que el programador trabaja a partir de una copia del repositorio existente en su ordenador local. Sobre esa copia de trabajo se realizan los cambios antes de añadirlos al repositorio.

¿Qué hace la acción revert?

Descarta todos los cambios realizados en la copia de trabajo desde la última sincronización con el repositorio.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué término designa la versión más reciente de una rama o del tronco?
2. ¿Cuál es la diferencia entre fetch y push según el documento?
3. ¿Qué es una etiqueta (tag) en un sistema de control de versiones?
4. ¿Qué sistema de gestión de conflictos utilizan algunos VCS en lugar de fusionar cambios?
5. ¿Cuándo se crea una nueva versión o revisión?
6. ¿Qué es un módulo en un repositorio?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.