Revoluciona tu código: subversion 1.0


Desde hoy ya está disponible la versión 1.0 de Subversion, un sistema de control de
versiones moderno, potente, eficaz, y sencillo de usar. Subversion es un
reemplazo completo de CVS, el que ha
estado siendo el estándar de facto del desarrollo de software libre,
pero no posee (en principio) ninguno de sus inconvenientes.

Subversion está cubierto por una licencia estilo
BSD/Apache, la cual es compatible con las Debian Free
Software Guidelines
, o lo que viene a ser lo mismo, con la definición de
Open Source.

Subversion posee una gran cantidad de mejoras respecto a CVS, aunque hasta
ahora no había sido llamado estable por sus desarrolladores.
Desde el verano del 2001 se ha estado usando en producción, cuando
los desarrolladores de SVN (Subversion) migraron el control de su propio código
de CVS a SVN. Sitios como Alioth ya ofrecen SVN como software para controlar
los repositorios de código.

Algunas de las mejoras que presenta Subversion
Diferencias binarias
Subversion usa un sistema de diferencias binarias, así que puedes añadir
tranquilamente imágenes PNG (típicas de iconos, y logos) al repositorio, así como
cualquier archivo que no sea texto o código. SVN detecta que es de un tipo
binario (olvídate del cvs add -kb foobar.png), y lo trata como tal.
Por supuesto, también se puede configurar a mano si la detección falla.
Renombrado, movido y copiado limpiamente
Renombrar archivos bajo CVS es fácil: no se puede. Tan sólo se puede copiar
el actual, y eliminar el anterior, con la consiguiente pérdida del historial.
Mover componentes es también un problema, ya que se requiere intervención
manual, y desde el lado del servidor. Con Subversion existen verdaderos
comandos del lado del cliente que copian y mueven archivos o directorios. Es
más, se puede hacer sin copia de trabajo, usando dos URLs como origen y destino.
Mira mamá, ¡sin red!
Cuando quieres comprobar los cambios hechos a tu copia de trabajo, o si
quieres ver las diferencias con la versión del repositorio, era
imprescindible tener conexión con el repositorio para poder
comprobarlo. Los usuarios acostumbrados a CVS, muchas veces tenían dos copias de
trabajo, una limpia, que sólo actualizaban del repositorio, y otra en la que
hacían sus cambios. Para poder ver esos cambios, o volverlos atrás, estabas
obligado a tener dos copias si estabas sin conexión.
Subversion es mucho más práctico, ya que almacena esa información en el
directorio administrativo (un subdirectorio llamado .svn, en el
que sólo SVN ha de leer o escribir, transparente para el usuario), en una copia
limpia de modificaciones.
Para comprobar el estado de tu copia, basta con usar svn status, y
para ver las diferencias svn diff, los cuales se ejecutan muy
rápidamente, al no necesitar conexión. Si quieres deshacer los cambios
hechos, basta con svn revert.
Crear ramas es fácil, y elegante
La forma de trabajar con subversion es algo diferente respecto a CVS. El
repositorio contiene un árbol de directorios, con sus correspondientes archivos
y subdirectorios, en lugar de módulos (recuerda que toda la historia hecha a ese
árbol se conserva, por supuesto). Si ese repositorio tan sólo almacena un
proyecto, lo habitual es que en ese árbol, haya un directorio trunk (tronco), y un directorio branches (ramas),
o sus equivalentes en castellano, o como tú mismo lo decidas (SVN es muy
flexible en este aspecto, y en otros).
El desarrollo principal, HEAD, se haría en este caso sobre el contenido del
directorio trunk. Si se desea crear una rama (una rama para la versión 1.0, por
ejemplo, donde sólo se corregirían fallos, pero no se añadirían
funcionalidades), se copia el contenido del directorio trunk/ a branches/1.0, y
se modifica lo allí almacenado.
Muy bien documentado
No vale la pena escribir aquí un tutorial, ya que la documentación es muy
buena. Existe un libro sobre
subversion
muy completo. Incluye una referencia completa, una guía rápida
para usuarios de CVS, y una buena descripción de como funcionan los sistemas de
control de versiones, para los totalmente nuevos.
La ayuda en la línea de comandos es igualmente buena, ya que svn
help seguido del comando, da una buena descripción del mismo. También
hay
una buena introducción
entre las traducciones de Quique al castellano.
Metadatos
Subversion ofrece además, una serie de propiedades que
pueden adjuntarse a los archivos del repositorio. Incluye las típicas de CVS,
como las palabras clave a ser expandidas ($Id$,
$Revision$, etc.), o las propiedades de ejecutable, tipo MIME,
etc.
Diferentes métodos de acceso
Se puede acceder al un repositorio de SVN usando el acceso local (protocolo
file:///ruta), o bien a través de un servidor propio y un
protocolo propio, al estilo de CVS (protocolo svn:// o a través de un tunel ssh
svn+ssh://).
Además de este método, Subversion ofrece integración con
Apache 2, usando WebDAV, y el módulo mod_dav_svn.
Documentación y referencias

Libro sobre subversion (en inglés, muy completo)

http://svnbook.red-bean.com/

Libro colaborativo (estilo wiki, todo el mundo puede editar) en badopi


http://www.badopi.org/book/view/414

Introducción a SVN traducido al castellano

http://www.sindominio.net/ayuda/subversion/

Comparación entre SVN, CVS, y Arch

http://wiki.gnuarch.org/moin.cgi/SubVersionAndCvsComparison

Alioth, el *Forge de Debian (ofrecen SVN y CVS para albergar código)
http://alioth.debian.org/
Un tutorial de CVS (cubre los conceptos de repositorio, y copia de trabajo)
http://www.badopi.org/node/view/52

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1985 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.