Un sistema de control de versiones es una herramienta que permite gestionar y controlar
los cambios realizados en un conjunto de archivos o proyectos a lo largo del tiempo.
También se le conoce como sistema de control de revisiones o control de cambios.
El objetivo principal de un sistema de control de versiones es registrar y rastrear las
modificaciones realizadas en los archivos, permitiendo a los usuarios acceder a
versiones anteriores, comparar cambios, fusionar diferentes versiones y revertir a
versiones anteriores si es necesario. Esto resulta especialmente útil en entornos de
desarrollo de software, donde varios desarrolladores pueden trabajar en el mismo
proyecto de forma simultánea.
Existen dos tipos principales de sistemas de control de versiones: sistemas
centralizados y sistemas distribuidos.
Sistemas de control de versiones
centralizados
Estos
sistemas utilizan un repositorio central que almacena todos
los archivos y versiones del proyecto. Los usuarios obtienen
una copia de trabajo y realizan cambios localmente, luego
deben comunicarse con el repositorio central para actualizar
sus cambios y recibir las modificaciones de otros
colaboradores.
Ejemplos de sistemas centralizados son
CVS (Concurrent Versions System) y Subversion
(SVN).
Sistemas de control de versiones
distribuidos
En estos
sistemas, cada usuario tiene una copia completa del
repositorio, lo que les permite trabajar de forma
independiente sin necesidad de una conexión constante al
repositorio central. Los usuarios pueden realizar cambios
localmente y luego fusionarlos con otros repositorios cuando
sea necesario.
Ejemplos de sistemas distribuidos son Git y Mercurial.