La solución Bloquear-Modificar-Desbloquear
Muchos sistemas del control de versiones usan un modelo bloquear-modificar-desbloquear para referirse al problema de diferentes autores en una fuente compartida sobre-escribiendo el trabajo de otros. En este modelo, el repositorio del control de versiones permite sólo que una persona cambie un archivo a la vez, y el acceso se administra usando bloqueos. David debe bloquear un archivo antes de comenzar a realizar cambios en este. Si David a bloqueado un archivo, Viviana no puede bloquearlo, y por consiguiente no podrá hacer ningún cambio en ese archivo. Todo lo que puede hacer es leer el archivo, y esperar a que David termine de realizar sus cambios y desbloquee el archivo. Después de que David desbloquee el archivo, Viviana podrá bloquear y editar el archivo.
La solución Copiar-Modificar-Combinar
Subversión, CVS y un número de otros sistemas del control de versiones usan un modelo copiar-modificar-combinar como una alternativa a bloquear. En este modelo, cada cliente del usuario contacta el repositorio del proyecto y crea una copia de trabajo personal—un reflejo local de los archivos y directorios del repositorio. De esta manera los usuarios trabajan simultáneamente e independientemente, modificando sus copias privadas. En su debido momento, las copias privadas se combinan en una versión nueva, final. El sistema del control de versiones a menudo asiste en la combinación, pero finalmente una persona es responsable por hacer que ocurra correctamente.
Cuando el bloqueo es necesario
Mientras que el modelo bloquear-modificar-desbloquear se considera generalmente un obstáculo para la colaboración, aún hay veces en las que el bloqueo es necesario. El modelo copiar-modificar-combinar se basa en la suposición de que los archivos están contextualmente disponibles para combinar: es decir, los archivos en el repositorio son archivos de texto basados en líneas (como por ejemplo el código fuente del programa). Pero para los archivos con formatos binarios, como por ejemplo obra de arte o sonido, es a menudo imposible combinar cambios conflictivos. En estas situaciones, es realmente necesario para los usuarios tomar turnos estrictos al cambiar el archivo. Sin acceso serializado, alguien puede terminar perdiendo tiempo en cambios que son finalmente descartados.
|