en Drupal, Linux, SVN

Manual para Instalar SVN Subversion en OpenSuse

Dentro del trabajo Drupal integrando un equipo de varios desarrolladores/maquetadores es importante llevar un control estricto de cambios en los ficheros. Para facilitarnos esta tarea, tenemos la posibilidad de utilizar un servidor de control de versiones Subversion o SVN. En este manual explicaré como instalarlo en entorno Linux, concretamente sobre OpenSuse.

  1. Instalar los paquetes de subversion
  2. Cargar módulos necesarios
  3. Crear el directorio de repositorios
  4. Configurar el acceso de usuarios al repositorio
  5. Configurar un repositorio de proyecto
  6. Primera importación
  7. Instalación del cliente SVN
  8. Creación de repositorio local
  9. Prueba de commit
  10. Instalación de explorador de repositorio
  11. Fuentes consultadas para elaborar este manual

1. Instalar los paquetes de subversion

El primer paso es instalar los paquetes subversion y subversion-server

$ zypper install subversion
$ zypper install subversion-server

2. Cargar módulos necesarios

Ahora debemos configurar Apache para que cargue los módulos mod_davmod_dav_svn. Para ello, añadimos los módulos dav y dav_svn a /etc/sysconfig/apache2. Simplemente añadimos los dos módulos a la línea APACHE_MODULES y reiniciamos el servicio.

$ rcapache2 restart

Comprobamos que los módulos se han cargado correctamente, en mi caso utilizo el siguiente comando:

$ /usr/sbin/httpd2-prefork -t -D DUMP_MODULES

Veremos la lista de los módulos cargados:

Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
actions_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_default_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
expires_module (shared)
include_module (shared)
log_config_module (shared)
mime_module (shared)
negotiation_module (shared)
setenvif_module (shared)
ssl_module (shared)
userdir_module (shared)
php5_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
dav_module (shared)
 dav_svn_module (shared)
Syntax OK

Ahora nos dirigimos a abrir el archivo “/etc/apache2/conf.d/subversion.conf” para ver la configuración.

 3. Crear el directorio de repositorios

Creamos el directorio de repositorios. Yo utilizaré el que viene por defecto en el parámetro “SVNParentPath”: “/srv/svn/repositories/”

$ mkdir -p /srv/svn/repositories

4. Configurar el acceso de usuarios al repositorio

Creamos el archivo de usuarios:

 $ mkdir /srv/svn/user_access
 $ touch /srv/svn/user_access/svn_passwdfile

Cambiamos el grupo para que sea accesible por Apache:

$ chown root:www /srv/svn/user_access/svn_passwdfile

Ajustamos los permisos:

$ chmod 640 /srv/svn/user_access/svn_passwdfile

Añadimos los usuarios:

$ htpasswd2 /srv/svn/user_access/svn_passwdfile your_user

and enter the password twice.

Reiniciamos Apache:

$ rcapache2 restart

Ahora debemos ser capaces de acceder al repositorio desde el navegador http://localhost/repositories, pero por supuesto lo veremos vacío.

5. Configurar un repositorio de proyecto

Creamos un directorio SVN para cada proyecto que queramos importar, y cambiamos sus permisos:

$ svnadmin create /srv/svn/repositories/proyecto1

El siguiente paso depende de la versión que estemos usando.

Subversion >=1.5 Subversion <1.5
chown -R wwwrun:www /srv/svn/kdrepos/meddaliadur/{db,locks}
chown wwwrun:www /srv/svn/kdrepos/meddaliadur/
chown -R wwwrun:www /srv/svn/kdrepos/meddaliadur/{dav,db,locks}

6. Primera importación

Importamos el nuevo proyecto:

$ svn import /ruta/al/proyecto/archivos http://localhost/repositories/proyecto1 -m "initial import"

nos pedirá el password.

NOTA: Si tratamos de importar antes de crear el directorio, obtendremos el siguiente error:

 svn: PROPFIND request failed on '/repositories/proyecto1'
 svn: Could not open the requested SVN filesystem

Si abres el repositorio principal, http://localhost/repositories, verás un enlace al repositorio proyecto1, y haciendo click verás una página con los archivos del proyecto.

7. Instalación del cliente SVN

Como cliente SVN, mi favorito es TortoiseSVN. Es el más popular entre usuarios de Windows. Se puede descargar gratuitamente desde http://tortoisesvn.net/downloads.html

8. Creación de repositorio local

Una vez instalado el cliente SVN, debemos crear el repositorio local, sobre el que haremos las modificaciones y desde el que enviaremos los cambios a nuestro servidor SVN.

Seleccionamos el directorio que utilizaremos dentro de nuestro PC y usando el menú contextual TortoiseSVN, seleccionamos “Create repository here”. Nos creará la estructura de ficheros del repositorio.

crear

import

A continuación debemos importar el contenido, seleccionando “Import” dentro del menú contextual TortoiseSVN. Nos pedirá la URL del repositorio, y a continuación nuestro usuario y contraseña. Si todo está OK, TortoiseSVN empezará a descargar los archivos actualizados a nuestro equipo.

Con estos pasos, ya tendremos nuestro repositorio local creado y actualizado.

9. Prueba de commit

Para comprobar que todo funciona correctamente podemos hacer un commit (publicación de revisión)

Dentro de nuestro directorio local, modificamos un archivo al azar y lo guardamos. Ahora, desde el menú contextual, seleccionamos “SVN Commit”.

commit

Escribimos un mensaje, por ejemplo”Commit de prueba”. Veremos que en la zona de cambios, aparece seleccionado el archivo modificado, en mi caso “CHANGELOG.txt”. Pulsamos OK, y veremos el log del commit.

10. Instalación de explorador de repositorio

Una utilidad muy interesante para revisar los cambios realizados desde cualquier equipo, es instalar un explorador de repositorio. Yo utilizo WebSVN. Es sencillo de instalar y muy fácil de utilizar. En otro artículo abordaré su instalación y forma de uso.

11. Fuentes consultadas para elaborar este manual

http://es.wikipedia.org/wiki/Subversion

http://subversion.apache.org/packages.html

http://es.opensuse.org/Subversion#Usar_SVN_mediante_Apache

http://old-en.opensuse.org/Setting_up_a_Subversion_server_using_Apache2

 

Share

Escribe un comentario

Comentario

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