Sistemas de Control de Versiones: Concurrencia, Terminología y Programas

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,11 KB

Otra característica importante entre tipos de controles de versiones es el sistema de concurrencia utilizado:

Modelos de Concurrencia

Fusión (merge): Cuando se produce un conflicto porque se han hecho cambios sobre un fichero que ha sido modificado, se resuelve fusionando los archivos (automáticamente o manualmente).

Bloqueo (lock): Cuando un usuario modifica un archivo, este se bloquea de manera que ningún otro usuario puede modificarlo.

Terminología Clave

Repositorio: Hace referencia al lugar donde se guardan los archivos actuales y el historial de cambios.

Tronco: Es la rama principal de un repositorio de la que salen el resto de ramas.

Rama: Es una bifurcación del tronco o rama maestra de la aplicación que contiene una versión independiente de la aplicación y a la que pueden aplicarse cambios sin que afecten ni al tronco ni a otras ramas.

Cabeza: Hace referencia a la versión más reciente de una determinada rama o tronco.

Copia de trabajo: Hace referencia a la copia local de los archivos que se han copiado del repositorio, que es sobre la que se hacen los cambios antes de añadir estos cambios al repositorio.

Bifurcación: Consiste en crear un nuevo repositorio a partir de otro. No está ligado al repositorio original y se trata de un repositorio diferente.

Clonar: Consiste en crear un nuevo repositorio que es una copia idéntica del otro.

Subir: Es añadir los cambios locales en el repositorio. Los cambios quedan guardados en el repositorio local y después se sincronizan.

Bajar: Es copiar en el área de trabajo local una versión desde un repositorio local, un repositorio remoto o una rama diferente.

Pull: Es la acción que copia los cambios de un repositorio en el 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. Esta acción puede provocar conflictos.

Cambio: Representa una modificación concreta de un documento.

Sincronización: Es la acción de combinar los cambios hechos al repositorio con la copia de trabajo local.

Conflicto: Se produce cuando se intentan añadir cambios a un fichero que ha sido modificado previamente por otro usuario.

Bloqueo: Algunos sistemas de control de versiones, en lugar de utilizar el sistema de fusiones, lo que hacen es bloquear los archivos en uso, por lo que solo puede haber un solo usuario modificando un fichero en un momento dado.

Fusionar: Es la acción que se produce cuando se quieren combinar los cambios de un repositorio local con un remoto y se detectan cambios en el mismo archivo en ambos repositorios y se produce un conflicto. Este conflicto se resuelve fusionando los cambios antes de poder actualizar los repositorios.

Versión: Es el conjunto de cambios en un momento concreto de tiempo. Se crea una versión cada vez que se añaden cambios a un repositorio.

Etiqueta: Permite añadir una etiqueta a una subida para poder identificarla.

Volver a la versión anterior: Descarta los cambios producidos en la copia de trabajo desde la última subida al depósito local.

Programas de Control de Versiones

Git: Es el software más popular. Se trata de un sistema distribuido, utiliza el modelo de concurrencia de fusión y es gratuito.

Team Foundation Server (TFS): Es un software desarrollado por Microsoft que puede utilizar las arquitecturas centralizadas o distribuidas y hacer el modelo de fusión o bloqueo. Es gratuito para equipos pequeños si no se requiere pagar suscripción.

Mercurial: Se trata de un sistema distribuido, utiliza el modelo de fusión y es gratuito.

Entradas relacionadas: