jueves, 15 de marzo de 2007

Subversion + UBUNTU - Parte 2

Como les comente en la sección anterior, para poder accesar los repositorios de forma remota debemos utilizar un server de svn. Actualmente hay 2 opciones Apache web server y svnserve. El primero nos permite accesar por http/https y el segundo nos permite accesar por tcp/ip usando un protocolo propietario (svn/svn+ssh). svnserve forma parte de la instalación de svn.

El servidor svnserve se puede invocar de tres formas

  1. Usando inetd: svnserve -i
  2. Standalone : svnserve -d
  3. Modo tunel: svnserve -t

El puerto por defecto es 3690. Para el primer caso se puede modificar en /etc/services, cambiando/agregando las siguientes entradas

svn 3690/tcp # Subversion
svn 3690/udp # Subversion

Si la ejecución es standalone el puerto se puede configurar por linea de comando usando los parametros --listen-port= y --listen-host=

El modo tunel se utiliza con SSH o RSH para autenticar el usuario.

Una vez que svnserve esta corriendo, todos los repositorios en el servidor estan disponibles para ser accesados de forma remota. Si se quiere aumentar la seguridad se puede indicar un directorio raiz y solo los repositorios bajo ese directorio estarán dsiponibles. Esto se logra con el parametro -r :

$ svnserve -d -r /dir/raiz/a/repositorios

Para accesar los repo se usa el url svn o svn+ssh. Aqui tenemos dos ejemplos de como accesar un repo con o sin directorio raiz. Como podran ver con el dierctorio raiz es mas dificil obtener informacion de la configuracion en el servidor.

Sin directorio raiz

$ svn checkout svn://host.svnserver.com/usr/local/svn_repos/proyectoA

Con directorio raiz

$ svn checkout svn://host.svnserver.com/proyectoA

Hasta este momento todo indica que estamos listos para trabajar con el repo, asi que podemos intentar subir algo en el repositorio creado durante la instalación de svn.

$ cd ~/tmp
$ svn import . svn://localhost/prueba --message "Inicio"
svn: Authorization failed


Fijense que aunque el checkout funciono de forma correcta el checkin no nos deja. En la siguiente parte explicare como arreglar este problemita.



No hay comentarios.: