- Subversion
-
Subversion Desarrollador Comunidad, y desarrolladores de CollabNet, Elego, VisualSVN, WANdisco
http://subversion.apache.org/Información general Lanzamiento 20 de octubre de 2000 Última versión estable 1.6.17 (info)
1 de junio de 2011Género Control de versiones Programado en C Sistema operativo Multiplataforma Licencia Licencia Apache Idiomas Multilingüe[1] En español Subversion es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de órdenes.
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 distintas computadoras. 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.[2]
Contenido
Características
Ventajas
- 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 de 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.
Uso y reconocimiento
Subversion es muy conocido en la comunidad de software libre y se utiliza en muchos proyectos, como:
- Apache Software Foundation
- Django
- Free Pascal
- FreeBSD
- GCC
- KDE (en proceso de migración a Git)
- Ruby
- Tigris.org
Servicios que proporcionan almacenamiento usando Subversion gratuito para proyectos de software libre:
- SourceForge
- Google Code
- Project Kenai
- CodePlex
- Forja de Conocimiento Libre de la Comunidad RedIRIS de RedIRIS
Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el líder destacado en la categoría de sistema de control de versiones.[3]
Buenas prácticas de gestión de la configuración
Subversion no es un sistema de gestión de la configuración pero es posible implementar sobre Subversion buenas prácticas de gestión de la configuración utilizando la estructura habitual de Subversion,[4] sin embargo no existe un sistema automático para obligar a que se cumplan.
La estructura habitual de un repositorio de Subversion es:
- Trunk: desarrollo principal.
- Tags: ubicación de las versiones congeladas.
- Branches: ubicación con versiones de desarrollo paralelas al trunk.
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 Microsoft Windows. Es la interfaz más popular en este sistema operativo.
- Subclipse. Complemento que integra Subversion al entorno Eclipse.
- Subversive. Complemento alternativo para Eclipse.
- ViewVC. Interfaz web, que también trabaja delante de CVS.
- Para Mac OS X, pueden emplearse SvnX, RapidSVN y Zigversion.
- RapidSVN también corre en Linux.
- RabbitVCS, para el administrador de archivos Nautilus del escritorio GNOME, inspirado por TortoiseSVN.
- KDESvn. Provee integración con el entorno de escritorio KDE, muy parecido en aparencia/funcionamiento/características a TortoiseSVN.
- Easyeclipse, es un paquete basado en Eclipse, con algunos complementos de código abierto.
- sventon. Interfaz web.
- Versions. Interfaz de escritorio para Mac OS X.
- AnkhSVN. Extensión para Visual Studio, para las versiones 2002, 2003, 2005, 2008 y 2010, esta última en modo experimental.
Véase también
- Control de versiones
- Git
- Bazaar (software)
- Mercurial
- Bonsai CVS
- Plastic SCM
Referencias
Bibliografía
- Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Control de versiones con Subversion. O'Reilly. http://svnbook.red-bean.com/nightly/es/index.html.
Enlaces externos
- Sitio web oficial
- Control de versiones con Subversion
- Subversion: Sistema de control de versiones - Tutorial y material
- Mini-Cómo montar un servidor Subversion en 28 segundos.
- Repositorio Subversion Local
- Otorgar permisos a usuarios en SVN
- Buenas Prácticas de Gestión de Versiones con Subversion
- Como instalar subversion en Windows
Categorías:- Sistemas de Control de Versiones
- Software libre
- Código abierto
Wikimedia foundation. 2010.