Subversion (software)

Subversion
Información sobre la plantilla
Logo svn.png
Software para el control de versiones
DesarrolladorComunidad, y desarrolladores de CollabNet, Elego, VisualSVN, WANdisco
Lanzamiento inicial20 de octubre de 2000
Última versión estable1.6.15 24 de noviembre de 2010
GéneroControl de versiones
Sistemas Operativos compatiblesMultiplataforma
LicenciaLicencia Apache
Sitio web
http://subversion.apache.org/

Subversion. Software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta utilizada en la línea de órdenes.


Características

Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en un instante determinado.

Subversion puede acceder al repositorio a través de redes, lo que le permite ser usado por personas que se encuentran en distintos ordenadores. A cierto nivel, la posibilidad de que varias personas puedan modificar y administrar el mismo conjunto de datos desde sus respectivas ubicaciones fomenta la colaboración. Se puede progresar más rápidamente sin un único conducto por el cual deban pasar todas las modificaciones. Y puesto que el trabajo se encuentra bajo el control de versiones, no hay razón para temer por que la calidad del mismo vaya a verse afectada —si se ha hecho un cambio incorrecto a los datos, simplemente deshaga ese cambio.

Ventajas

Arbol de proyectos Subversion
  • Se sigue la historia de los archivos y directorios a través de copias y renombrados.
  • Las modificaciones (incluyendo cambios a varios archivos) son atómicas.
  • La creación de ramas y etiquetas es una operación más eficiente; Tiene costo de complejidad constante (O(1)) y no lineal (O(n)) como en CVS.
  • Se envían sólo las diferencias en ambas direcciones (en CVS siempre se envían al servidor archivos completos).
  • Puede ser servido mediante Apache, sobre WebDAV/DeltaV. Esto permite que clientes WebDAV utilicen Subversion en forma transparente.
  • Maneja eficientemente archivos binarios (a diferencia de CVS que los trata internamente como si fueran de texto).
  • Permite selectivamente el bloqueo de archivos. Se usa en archivos binarios que, al no poder fusionarse fácilmente, conviene que no sean editados por más de una persona a la vez.
  • Cuando se usa integrado a Apache permite utilizar todas las opciones que este servidor provee a la hora de autentificar archivos (SQL, LDAP, PAM, etc.).

Carencias

  • El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una operación de copia y una de borrado.
  • No resuelve el problema de aplicar repetidamente parches entre ramas, no facilita llevar la cuenta de qué cambios se han realizado. Esto se resuelve siendo cuidadoso con los mensajes de commit. Esta carencia será corregida en la próxima versión (1.5).

Clientes

Existen varias interfaces a Subversion, ya sea programas individuales como interfaces que lo integran en entornos de desarrollo.

  • TortoiseSVN. Provee integración con el explorador de Windows. Es la interfaz más popular en este sistema operativo.
  • Subclipse. "Plugin" que integra Subversion al entorno Eclipse.
  • Subversive. "Plugin" alternativo para Eclipse.
  • Cervisia Programa para interacción para linux, combinada con Quanta Plus puede llegar a ser muy eficaz.
  • ViewVC. Interfaz web, que también trabaja delante de CVS.
  • Para mac, pueden emplearse los interfaces SvnX, RapidSVN y Zigversion
  • RapidSVN también corre en Linux.
  • NautilusSVN Para el administrador de archivos Nautilus.
  • KDESvn. Provee integración con el escritorio KDE, muy parecido en aparencia/funcionamiento/caracteristicas a TortoiseSVN
  • Easyeclipse es un paquete basado en eclipse es una plataforma de desarrollo, con algunos plugins de código abierto.
  • sventon Interfaz web
  • Versions Interfaz de escritorio para Mac OS X
  • AnkhSVN "Plugin" para Visual Studio para versiones 2002, 2003, 2005, 2008 y 2010, esta última en modo experimental.

Uso y reconocimiento

Subversion es muy conocido en la comunidad de software libre y se utiliza en muchos proyectos, incluyendo la fundación del software de Apache, KDE, GNOME, Free Pascal, FreeBSD, GCC, Python, Django, Ruby, Mono, SourceForge.net, ExtJS y Tigris.org. El servicio Google Code también proporciona almacenamiento Subversion para sus proyectos de software libre. Los sistemas de BountySource lo utilizan exclusivamente. Codeplex ofrece acceso tanto para Subversión como para otros tipos de clientes.

Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el único líder en la categoría de sistema de control de versiones.[1]

Referencias

Véase también

Enlaces externos