Los
sistemas de control de versiones
se crearon para el desarrollo de proyectos de software en los que intervienen numerosos
programadores, como ocurre habitualmente en los proyectos de software libre. Un
sistema de control de versiones es un software que administra los ficheros de
código fuente, permite trabajar simultáneamente a varios usuarios y
mantiene un historial de los cambios realizados.
Básicamente, el funcionamiento de un sistema de control de versiones es el siguiente:
- la copia maestra reside en un repositorio central.
- con un programa cliente, cada usuario se descarga una copia local sobre la que trabaja.
- una vez realizados los cambios, la copia local se sincroniza con el repositorio central.
Equivalencias en Windows:
MS-VSS.
Existen varios programas para control de versiones en Linux:
- CVS
(Concurrent Versions System, ximbiot.com/cvs/,
paquete cvs): es el sistema de control de versiones más utilizado. Para
conectar con un servidor CVS tenemos tres tipos de clientes:
- desde la línea de comandos: comando cvs.
- con un cliente gráfico, como
Cervisia (cervisia.kde.org, paquete cervisia),
gCVS (sourceforge.net/projects/cvsgui/,
paquete gcvs),
CrossVC (crossvc.com, paquete crossvc) o
Pharmacy (pharmacy.sourceforge.net,
paquete pharmacy).
- desde un navegador: para ello, en el servidor CVS debe estar instalado
CVSweb (freebsd.org/projects/cvsweb.html,
paquete csvweb), un interfaz CGI que permite acceder al repositorio CVS vía web.
- Subversion
(subversion.tigris.org, paquete subversion):
se diseñó para reemplazar a CVS, ya que mejora algunas deficiencias de éste.
Igual que CVS, permite tres tipos de clientes:
- desde la línea de comandos: comando svn.
- con un clientes gráfico, como
eSVN (esvn.umputun.com, paquete esvn) o
rapidSVN (rapidsvn.tigris.org,
paquete rapidsvn).
- desde un navegador: en el servidor Subversion tendrá que estar instalado
webSVN (websvn.tigris.org,
paquete csvweb), un interfaz escrito en PHP para acceder al repositorio
Subversion vía web.
- GIT
(git.or.cz, paquete git):
programa que maneja las fuentes del kernel, creado por el propio Torvalds. Según sus
desarrolladores, es "stupid but extremely fast".
- Darcs
(darcs.net, paquete darcs):
sistema de control de versiones similar a CVS.