Montar SVN en tu proyecto web

Escrito en Tutoriales

Subversion (SVN) es, junto a GIT el líder en control de versiones de software libre. Subversion es una mejora del antiguo sistema llamado CVS que tenía sus limitaciones; aunque aún se sigue utilizando en multitud de proyectos creo que es mucha mejor opción Subversion.

Subversion logo

En esta entrada no voy a hablaros de montar un servidor SVN, principalmente porque es una tarea compleja que está destinada más bien a administradores de sistemas. Os voy a hablar de como configurar vuestro proyecto para beneficiarse del funcionamiento de un servidor existente. Si lo que necesitas es crear tú mismo un servidor para estos fines, te recomendaría mejor el libro de O’Reilly de SVN.

Para proyectos en los que trabaje más de una persona creo que es una herramienta que una vez se conoce es poco menos que imprescindible. Incluso si trabajamos solos puede servirnos de gran ayuda para no perder ninguno de los cambios que hagamos y poder tener un histórico permanente del proceso de desarrollo.

Antes de adentrarme a explicar la configuración, diré básicamente en qué puede ayudarnos este sistema:

  • Cada cambio que se envíe al servidor será guardado sin sobreescritura. Si nos cargamos sin querer un archivo podremos echar mano del SVN para recuperarlo.
  • Posibilidad de mezclar dos archivos para ver las diferencias respecto a versiones. Podemos ver, por ejemplo, los cambios que hizo algún compañero en cada línea para comprender como han cambiado las cosas.
  • Se añade un comentario a cada subida de archivos al servidor que hagamos. Esto ayuda a saber para qué se tocó ese fichero.
  • Todos los cambios de los demás se podrán descargar de una vez, solamente aquellos archivos que tengan cambios. A veces, sobre todo en proyectos de programación web, se tocan archivos diversos de carpetas diferentes y en vez de tener que explorar y mirar las fechas de modificación, con SVN hacer un par de clics hará que ya lo tengamos todo más reciente.
  • Control del trabajo de cada uno. Para empresas puede ser muy útil para saber quienes hacen tal cosa. Conocer los porcentajes de código que escribe cada empleado, etc.
  • En caso de tratarse de un proyecto de software libre tener un control de versiones es imprescindible, puesto que necesitamos un lugar en el que la gente que quiera aportar cosas al proyecto pueda conectarse. De cualquier otra manera sería un caos.

Hasta aquí la enumeración de algunas de las ventajas, estoy seguro que me he saltado decenas de ellas.

Conseguir servidor:

Bueno, pues lo primero que necesitamos para empezar es un hosting de Subversion. Hostings hay muchos, aunque la mayoría son de pago y hay que saber encontrar el óptimo. Si tu proyecto es de software libre no debes preocuparte lo más mínimo de tener que pagar ni nada, puesto que para apoyar el Software Libre hay hostings gratuitos con capacidades ilimitadas para sus usuarios.

Una comparativa genial de los distintos hostings de Subversion que hay se puede encontrar en http://www.svnhostingcomparison.com/

Para software libre está claro que las dos opciones idóneas deben ser Google Code y SourceForge.net. Hay más que ofrecen capacidades ilimitadas, pero creo que esos están por delante.

Si nuestro proyecto es de software propietario entonces tendremos que ajustarnos un poco más, tendremos que escoger entre pagar para tener algo holgado o encontrar un hosting que permita privacidad en los proyectos y una cantidad de almacenamiento y usuarios aceptable.

Sin duda alguna, la mejor opción gratuita para software propietario es Assembla. Brinda de manera gratuita 2GB de almacenamiento, un número ilimitado de programadores e incluso SSL; sin contar que la velocidad de subida y bajada es super apropiada.

Hay más opciones, aunque la siguiente mejor ofrece 1/4 del almacenamiento que da Assembla, por lo que no merecen la pena. Si queremos pagar ya solo depende de lo que necesitemos y lo que podamos pagar, hay un punto en el que compensa tener un servidor dedicado tanto propio como alquilado para que se encargue únicamente del control de versiones.

Montar servidor:

Para montar el servidor habrá que seguir los pasos por los que nos guíe el sitio web del servicio web escogido hasta que finalmente obtendremos una dirección URL tal que así:

https://subversion.assembla.com/svn/sortea2

Hay que tenerla muy en cuenta puesto que a esta URL es a la que nos conectaremos. El usuario y la contraseña para conectarse será exactamente el mismo que el que tuvimos que usar para loguearnos en la página web.

Programa cliente:

A continuación tendremos que usar nuestro programa de lado del cliente para conectarnos; esto es, un programa en nuestro ordenador al que le daremos URL, password y usuario y estaremos conectados.

Para Windows el que se utiliza casi siempre es el Tortoise SVN, que es un cliente de escritorio de software libre también con una interfaz inmejorable. Una vez lo tengamos instalado este programa lo que hace es añadir unas opciones a los menús contextuales del explorador de Windows relativas a repositorios SVN.

Una nota importante a tener en cuenta para pasos posteriores es que si utilizamos Dreamweaver nos interesará descargar la versión de 32 bits de Tortoise si luego queremos conectar ambos sistemas. Se puede tener instalada la versión de 32 y de 64 bits al mismo tiempo de cualquier manera, pero conviene tenerlo en cuenta.

Conectarse al repositorio:

La primera vez que queramos establecer conexión tendremos que dar click derecho sobre la carpeta y seleccionar SVN Checkout…, en el cuadro que nos saldrá pegaremos la URL del repositorio que nos proporcionó el sistema de hosting y a continuación se nos pedirá un par de usuario/contraseña. Si le damos a «recordar» no volverá a preguntar ni pedir autorización.

Ejemplo de Checkout con Tortoise

Una vez aquí, si todo ha ido correctamente lo que tendremos que hacer es subir los archivos al repositorio. Para ello haremos click derecho sobre la carpeta y le daremos a «SVN Commit». De ahí seleccionaremos archivos que no estén versionados («show unversioned files»), seleccionaremos los que queramos y se subirán uno a uno al hosting de SVN.

Si por el contrario nuestro hosting ya estaba montado anteriormente y lo que queremos es descargar las cosas para tener las copias en local, en vez de «Commit» seleccionaremos «SVN Update» y nos descargaremos todo lo que no tengamos descargado.

Integrar con Dreamweaver:

Si utilizas Adobe Dreamweaver como entorno de desarrollo quizás lo que más te interese es tener las posibilidades de envío y recepción de archivos en la misma ventana del programa en vez de estar intercambiando con el explorador de windows para hacer las operaciones.

Dreamweaver desde la versión CS4 incluía un cliente de SVN integrado, el problema viene de que si tenemos un repositorio creado con Tortoise y luego los usamos con el cliente ese de DW no nos servirá, porque tiene una incompatibilidad documentada que Adobe contempla en su sitio web ofreciendonos un parche. Dicho parche está escrito en Python, por lo que si no tenemos instalado Python (90% de los mortales) no funcionará, además hay que tener en cuenta que la versión de Python deberá ser la de 32 bits, porque si no tampoco se iba a poder instalar el parche, debido a que DW dirá que no encuentra una instalación de Python válida.

En definitiva, es mejor olvidarse de todos estos escollos y simplemente usar una extensión para Dreamweaver llamada SubWeaver que actúa como intermediario entre Dreameaver y Tortoise. Ya es cuestión de usar los menús contextuales que nos brinda la extensión y estaremos 100% integrados con Tortoise desde Dreamweaver.


Escrito por .

Escribe un comentario:



Un comentario for “Montar SVN en tu proyecto web”

  1. damian dice:

    Gracias me ayudaste con la explandida info k has compartido.