Está en la página 1de 13

Subversion

Definicin
Subversion es un sistema de control de versiones libre y de cdigo fuente abierto. Maneja la evolucin de versiones de archivos y carpetas. Hay un rbol de ficheros en unrepositoriocentral. El repositorio es como un servidor de archivos, excepto porque recuerda todos los cambios hechos a sus archivos y carpetas. Permite recuperar versiones antiguas de sus datos, o examinar el historial de cambios de los mismos.

Caractersticas
Versionado de directorios. Historial de versiones. Envos atmicos. Versionado de metadatos. Eleccin de las capas de red. Manipulacin consistente de datos. Ramificacin y etiquetado eficientes.

Arquitectura
En un extremo se encuentra un repositorio de Subversion que conserva todos los datos versionados. Al otro lado, hay un programa cliente Subversion que administra rplicas parciales de esos datos versionados (llamadascopias de trabajo).

Subversion vs. Git

Ventajas
Se sigue la historia de los archivos y directorios a travs de copias y renombrados.. Las modificaciones (incluyendo cambios a varios archivos) sonatmicas. La creacin de ramas y etiquetas es una operacin eficiente. Tiene coste de complejidad constante (O(1)). Se envan slo las diferencias en ambas direcciones. Puede ser servido medianteApache. Maneja eficientemente archivos binarios. Permite selectivamente el bloqueo de archivos. Cuando se usa integrado a Apache permite utilizar todas las opciones que este servidor provee a la hora de autentificar archivos.

Desventajas
El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una operacin 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.

Instalacin
Ubuntu: sudo apt-get install subversion Windows: http://subversion.apache.org/download/ http://tortoisesvn.net/

Comandos principales
Obtener una copia local de trabajo de un repositorio. $svn checkout Verificar el estado del repositorio actual $ svn status Obtener informacin de un archivo del repositorio $ svn info archivo.ext Agregar archivo nuevo al repositorio svn $ svn add ruta/archivo.ext Eliminar archivo del repositorio svn $ svn delete ruta/archivo.ext Actualizar las fuentes locales con los ltimos cambios del repositorio $ svn update Enviar modificaciones locales al repositorio. $ svn commit -m 'Descripcin de la actualizacin'

Forma de trabajo
svn checkout https://test-svn-ing.googlecode.com/svn/ test-svn-ing (U1) echo hola > hola.txt svn add * svn commit -m "hola" (U1) svn update svn status notepad hola.txt ... svn status svn commit -m "hola mundo" (U1) svn update ... svn commit -m "modificado" (U2) echo mundo > mundo.txt svn update svn status svn add * svn commit -m "mundo" (U2) svn update ... svn commit -m "modificado"

Bibliografa
http://svnbook.spears.at/nightly/es/svn-book.html http://tortoisesvn.net/ http://subversion.apache.org http://es.wikipedia.org/wiki/Subversion

También podría gustarte