How To: Crear un repositorio SVN remoto

Llevaba tiempo queriendo escribir esta entrada sobre como crear un repositorio para el control de versiones usando subversion, principalmente porque es una tarea que hago unas cuantas veces al año y, como toda tarea que no hago constantemente, suelo olvidar como se realizar, teniendo que echar mano de antiguas búsquedas en Google.

En este caso voy a describir los pasos para crear un repositorio en un servidor remoto, que es lo que más habitualmente he tenido que realizar. El entorno de desarrollo es una distribución basada en Debian (Ubuntu en mi caso), aunque posiblemente no diste mucho de las instrucciones para otras distros.

Antes de poder seguir los pasos es necesario tener instalado subversion tanto en la maquina servidora como en local, para lo cual se debe ejecutar lo siguiente:

 sudo apt-get install subversion 

Una vez instalado correctamente subversion, los pasos que hay que seguir para poder ponerlo en marcha son:

  • Crear un directorio en remoto donde se encontrará el repositorio: mkdir repo (pe: en /home/cesar)
  • Crear el repositorio: svnadmin create repo (desde el mismo directorio)
  • Crear el esqueleto del proyecto:
    • Crear el directorio del proyecto: mkdir project
    • Crear los directorios internos habituales: cd projectmkdir trunk branches tags
  • Importar el proyecto por primera vez: svn import project ssh+svn://user@dominio.com/ruta/repos/ -m "Initial import"

Una vez realizados estos pasos, ya se tiene el repositorio inicial y con la estructura creada, ahora nos queda importar el proyecto a un directorio local, para ello se pueden optar por dos soluciones, linea de comandos o a través de un IDE:

A través de la linea de comandos:

 svn checkout svn+ssh://user@dominio.com/ruta/repos /ruta/local 

En el eclipse:
import > SVN > chekout projects from SVN > ssh+svn://cesar@hazmereir.net/ruta/repos/project > trunk > finish

Y con esto ya tendríamos preparado un entorno de desarrollo basado en un servidor de versiones a través del cual podríamos tener un control total sobre el código de la aplicación que estemos creando. Este tipo de entorno suele ser más útil cuando nos encontramos trabajando en equipo, pero me he encontrado muchas ocasiones en las que he utilizado un servidor de versiones para tener más organizado el código o para poder trabajar mejor desde mis diferentes máquinas.

HowTo: Configurar SVN+SSH con Subclipse en Windows

Para todos aquellos que como yo hayan tenido problemas con la utilización de subclipse (plugin de subversion para eclipse) en Windows para el protocolo svn+ssh y que les apareciera el mensaje:

“svn: Can’t create tunnel”

La solución no pasa por generar las claves pública/privada, almacenarlas y hacer mil configuraciones en el servidor, si no que es tan simple que asusta.

Simplemente hay que modificar la configuración SVN de eclipse y modificar SVN interface de JavaHL a SVNKit. Para ello seguimos los siguientes pasos:

  1. En eclipse nos desplazamos al menú Window->Preferences->SVN.
  2. Buscamos donde ponga svn interface y seleccionamos SVNKit (Pure Java).

Lo dicho tan simple, que hasta un niño podría hacerlo, pero me tiré ayer 3 horas siguiendo manuales para almacenar las claves para ssh, bajando programas y mil historias, así que espero que esto sirva para alguien que se encuentre en la misma situación que yo.

Solución encontrada en: JavoAxian (normal que no lo encontrara ayer, es una entrada para linux en la que pone un mensaje al final).