Subversion es un sistema de control de versiones de código fuente diseñado para compartir código entre desarrolladores a través de Internet. A diferencia de CVS, Subversion almacena todo el repositorio con un único número de versión. Ofrece ventajas como el seguimiento de la historia de archivos y operaciones atómicas de cambios múltiples, aunque su manejo de cambios de nombre de archivos no es completo. Es ampliamente usado en proyectos de código abierto alojados en plataformas como SourceForge y Google Code.
1. SUBVERSION Comunidad, y desarrolladores de CollabNet, Elego, VisualSVN, WANdiscohttp://subversion.apache.org/
2. ¿Qué es el Subversion? Básicamente es un sistema de control de versiones diseñado específicamente para compartir código fuente entre varios desarrolladores por medio de internet. Fue desarrollado para reemplazar al popular CVS. Es de software libre bajo una licencia de tipo Apache/BSD, conocido tambien como SVN.
3. Características Importantes 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.
4. 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.).
5. Desventajas 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.
7. 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 GNOME GCC KDE Mono Python Ruby Tigris.org
8. 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