View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Control de versiones

Control de versiones

(SCM, Software Configuration Management)



Los que hoy en día están cogiendo más relevancia son bzn, hg y git.

Para abrir boca, mira esta comparativa de sistemas de control de versiones (aunque no menciona ni a darcs ni a codeville). Ahora Bazaar está empezando a ganar terreno a git y mercurial (lo usa Ubuntu para su LaunchPad, y ahora también GNU en su savahnna).

Información específica:

Bazaar (bzn)

  • Alternativa al Git/Mercurial con mayor facilidad de uso.
  • Permite usar de forma local Bazaar y remotamente otros (hay plugins para svn, pero próximamente hg y git tb estarán soportados).
  • Usado en Ubuntu, GNU (a partir de ahora) y los protectos de LaunchPad.

Mercurial (hg)

  • Alternativa al Git de Linus, eficiente en el espacio en disco
  • Usado para Opensolaris, OpenJDK y NetBeans, algunas cosas de Mozilla y otros.

Git (git)

  • Control de versiones de Linus
  • Usado para el kernel de Linux

Subversion (alias: svn)

Versiónfín ha llegado al 1.0 (24/02/2004)
InformaciónHay un pequeño tutorial aquí
Un artículo de bulma sobre el subversion 1.0
Ponerlo en windows usando tortoisesvn
ProsSu similitud con CVS
La gestión de ramas es razonable (se crea una copia del proyecto en el subdirectorio de ramas y se mantiene de forma separada)
A pesar de no ser distribuido, permite tener espejos del repositorio usando Chia-Ling Kao's SVN::Mirror add-on o Shlomi Fish' svn-push utility (en contrib del svn).
ContrasHace el versionado fichero a fichero, no para el proyecto completo

GNU arch (alias: tla)

VersiónYa va por la 1.1 (24/02/2004)
InformaciónTutorial oficial
ProsEs realmente distribuido, al estilo del bitkeeper (no como el subversion/cvs, que requiere repositorio central)
ContrasMás complicado de usar que el svn
Abandonado en favor de GNU Bazaar

Monotone

VersiónTodavía va por la 0.11 (1/04/2004)
InformaciónTienes la documentación on-line
Diagrama de funcionamiento (ejemplo)
ProsUn sólo ejecutable, muy fácil de compilar y sin dependencias (bueno, realmente usa las librerías boost y libpopt, pero son pequeñas y no dan problemas)
Muy completo en características, incluyendo gestión de repositorios espejo "de serie" (bueno, realmente es distribuido, y los repositorios son independientes pero fáciles de sincronizar)
ContrasNo se ha compilado para windows (todavía, imagino que el mingw o el cygwin lo compilarán sin problemas)
No tiene interfaz gráfico
No tiene un diff en el que diga en qué versión se modificó cada línea