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.
- Instalar los paquetes de subversion
- Cargar módulos necesarios
- Crear el directorio de repositorios
- Configurar el acceso de usuarios al repositorio
- Configurar un repositorio de proyecto
- Primera importación
- Instalación del cliente SVN
- Creación de repositorio local
- Prueba de commit
- Instalación de explorador de repositorio
- 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_dav y mod_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.
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».
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