jueves, 27 de junio de 2013

Tutorial SVN Subversion

"Dentro de las herramientas utilizadas para el desarrollo de software, se encuentran aquellas que permiten organizar, almacenar y mantener de manera segura la información. Un sistema que ha consolidado su prestigio en el mercado es sin duda SVN Subversión."

SubversionSVN es una utileria del sistema operativo UNIX, razón por la cual también se puede encontrar en sistemas LINUX, aunque incluso puede encontrarse una versión para Windows llamada VisualSVN y mantenida por la gente de ColabNet. Linux es el sistema operativo que utilizo. Así pues, a continuación les presento el procedimiento que sigo para configurar el servicio SVN junto con Apache, para que de esta manera nuestros usuarios puedan visualizar el repositorio desde el navegador o utilizar algún otro cliente http (TortoiseSVN, RapidSVN, etc) para almacenar y actualizar su información. 



Existen herramientas más orientadas a la proceso de Configuration Management y aunque SVN es un sistema más general, junto con otras aplicaciones como JTrac y Hudson podemos conseguir un ambiente SCM totalmente open source. 

Aunque existen muchos sitios web disponibles con información relacionada a Subversión, recomiendo consultar la documentación oficial que puede ser localizada en la siguiente dirección: http://svnbook.red-bean.com/

Consideraciones preliminares.

Lo primero que debemos tener es un sistema operativo Linux montado como servidor que es desde donde crearemos el repositorio. Para este procedimiento se utilizó un sistema Debian con el Kernel Linux 2.6

Tutorial. ¿Cómo configurar subversión para el control de versiones?

1.- De manera automática se instala un servidor Apache, para verificar que se encuentre en funcionamiento colocar en la barra de direcciones del navegador lo siguiente: http://localhost:8080. La ventana del navegador presentara una pantalla con la leyenda: It works!.

2. Configurar SVN + Apache implica realizar algunas tareas con permiso de administrador por lo que, si este procedimiento se piensa replicar en un ambiente de producción real, se debe notificar antes al área de soporte técnico correspondiente para informar sobre el procedimiento a realizar y contar con las credenciales necesarias.

3. Ahora si los pasos para configurar SVN y Apache.  Después de la instalación del sistema operativo DEBIAN y de contar con los servidores apache y subversion instalados se debe descargar el paquete libapache2-svn con el siguiente comando:

#apt-get install libapache2-svn

Esto permitira contar con los módulos mod_dav_svn.so y mod_authz_svn.so necesarios para ejecutar los servicios svn bajo el servidor apache.

4. Crear la instancia svn y modificar los archivos de configuración de apache2 bajo el siguiente procedimiento:

a) Crear un repositorio:
Ingresar en el servidor SVN como root:

Ejecutar el comando:

# svnadmin create /var/svn/mi_repositorio

b) Crear usuarios y contraseñas. Ejecutar el siguiente comando:

#htpasswd -c -m /etc/apache2/mi_repositorio.htpasswd nombredelusuario1

Este comando pedirá la contraseña 2 veces. Ejecutar el comando de arriba omitiendo el parámetro -c para los siguientes usuarios:

#htpasswd -m /etc/apache2/mi_repositorio.htpasswd nombredelusuario2
...
#htpasswd -m /etc/apache2/mi_repositorio.htpasswd nombredelusuarioN

c) Modificar el archivo /etc/apache2/mods-enabled/dav_svn.conf. Ubicar la sección donde aparecen estas lineas:

<Location /svn/mi_repositorio>
     DAV svn
     SVNPath /var/svn/mi_repositorio
     #Authentication Basic
     AuthName “Subversion Repository”
     AuthType Basic
     AuthUserFile /etc/apache2/mi_repositorio.htpasswd
     #Necesario para seguridad
     Require valid-user
</Location>

d) Reiniciar el servidor Apache:

#/etc/init.d/apache2 restart

e) Agregar a los usuarios al servidor y al grupo de usuarios de subversion. Ejemplo:

#adduser nombredeusuario1
#addgroup nombredeusuario subversion

NOTA: Si el grupo subversion no existe se debe crear.

f) Modificar los permisos del nuevo repositorio. Ingresar a /var/svn/ y ejecutar:

#chmod -R 770 mi_repositorio

g) Modificar el propietario y grupo de los nuevos repositorios:

#chown -R www-data:subversion mi_repositorio

5. Después de ejecutar el procedimiento anterior se debe verificar el acceso al repositorio desde cualquier máquina del cliente con acceso a nuestro  servidor. 

6. Si todo ha marchado bien procedemos a instalar el cliente SVNTortoise, para equipos con Windows y RapidSVN para clientes linux. 

Espero que esta información les sea de utilidad. Contar con un sistema que lleve un control de versiones le dará seguridad a sus datos y les permitirá organizar de mejor manera su información. De nuevo reitero mi recomendación de leer el SVNBook para aprender más sobre este sistema. 

Si esta información ha sido de utilidad por favor dar click en el boton +1 del blog. Gracias.