Control de versiones con Subversion y USVN
Subversion (SVN) es una herramienta de control de versiones, que funciona cómo un repositorio sobre un sistema de ficheros. Se trata de software libre, ya que utiliza la licencia Apache/BSD.
USVN es una interfaz web que nos permite crear y organizar los repositorios de Subversion.
Primero de todo debemos de cumplir con los requisitos del software, que es el siguiente:
- PHP5 (A partir de la versión 5.3)
- Apache2
- php5-mysqlnd
- mod_dav enable
- mod_dav_fs enable
- mod_rewrite enable
- Añadir AllowOverride en la configuración de Apache2
- Subversion (SVN)
- mod_authz_svn enable
- mod_dav_svn enable
He utilizado un sistema operativo GNU/Linux Debian 7.6 para la instalación.
Vamos a ellos, primero instalamos Apache2 y PHP5
apt-get -y install apache2 php5 php5-mysqlnd
Una vez instalado podemos comprobar la versión de PHP con el parámetro –version
En la siguiente parte habilitamos los módulos de Apache2: mod_dav, mod_dav_fs y mod_rewrite.
a2enmod dav
a2enmod dav_fs
a2enmod rewrite
Una vez hecho esto reiniciamos Apache2
service apache2 restart
Podéis ver el proceso en la siguiente imagen:
Instalamos Subversion. La versión que viene en los repositorios main de Debian
apt-get -y install subversion
Aunque en principio no es necesario, yo utilizo el servidor MySQL que viene en los repositorios main
apt-get -y install mysql-server mysql-common
Nos dirigimos a la página web de USVN y descargamos la versión que nos interese, aquí,
Nos dirigimos a la sección de descargas, para el artículo he descargado la versión 1.0.7
Antes de la descarga nos colocamos en el directorio /var/www/
cd /var/www
Y descargamos el archivo con el comando wget
wget https://github.com/usvn/usvn/archive/1.0.7.tar.gz
Y descomprimimos
tar xzvf 1.0.7.tar.gz
Asignamos los permisos al usuario del servidor Apache, www-data
chown www-data:www-data /var/www/usvn-1.0.7 -R
Modificamos la configuración de Apache2, para que cargue por defecto nuestro servidor.
El primer paso es guardar el archivo default original:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.back
Y editamos el archivo default:
nano /etc/apache2/sites-available/default
La configuración de mi servidor es la siguiente. Sólo hay que modificar la parte superior de la configuración original.
El resto del fichero no hay que modificarlo.
Ahora tendríamos que reiniciar el servicio Apache2, pero antes de eso todavía nos queda por habilitar dos módulos.
Se trata de mod_authz_svn y mod_dav_svn. En Debian y derivados (Ubuntu) debemos de instalar primero el paquete libapache2-svn
(En versiones anteriores el paquete lleva el nombre libapache2-subversion)
apt-get -y install libapache2-svn
Ya podemos habilitar ambos módulos:
a2enmod authz_svn
a2enmod dav_svn
Y podemos reiniciar el servicio:
service apache2 restart
Supuestamente con todo esto ya tendría que funciona la interfaz web, pero no:
Investigando un poco en la red, he encontrado la página dónde indica cómo solucionarlo.
Debemos de modificar el archivo /var/www/usvn-1.0.7/app/bootstrap.php , y en la línea 67, descomentar «// exit(0);»
Con esto ya podemos volver a reiniciar Apache2, y así empezar la instalación vía web.
En la siguiente ventana nos indica que hemos sido buenos, y hemos instalado todos los requisitos.
Seleccionamos idioma y zona horaria.
En la siguiente ventana leemos, y si creemos conveniente aceptamos la licencia del software.
Ahora vemos la información de los directorios usados por USVN
Al apretar el botón «Siguiente paso» me ha aparecido un mensaje indicando que el directorio /var/www/usvn-1.0.7/files no existía o tenía los permisos erroneos.
Para solucionarlo sólo hay que crearlo, asignar permisos y propietario.
mkdir /var/www/usvn-1.0.7/files
chmod 775 /var/www/usvn-1.0.7/files
chown www-data:www-data /var/www/usvn-1.0.7/files -R
Y así podemos pasar a la siguiente ventana.
Aquí he escogido la BBDD tipo MySQL. Sólo debemos de indicar nuestras credenciales y crear la base de datos.
Indicamos las credenciales para nuestro usuario.
Ya estamos apunto de finalizar.
Chequeamos actualizaciones, si así lo deseamos.
Con la información que nos suministra en la siguiente pantalla, creamos el fichero httpd.conf, si no existe, dentro de /etc/apache2/ en Ubuntu, y en /etc/apache2/conf.d en Debian.
Editamos en Debian:
nano /etc/apache2/conf.d//httpd.conf
Y en Ubuntu:
nano /etc/apache2/httpd.conf
Y copiamos justo los mismo:
ErrorDocument 404 default
DAV svn
Require valid-user
SVNParentPath /var/www/usvn-1.0.7/files/svn
SVNListParentPath off
AuthType Basic
AuthName "USVN"
AuthUserFile /var/www/usvn-1.0.7/files/htpasswd
AuthzSVNAccessFile /var/www/usvn-1.0.7/files/authz
Y reinciamos Apache
service apache2 restart
Y con esto y un bizcocho… ya tenemos la web lista para su uso.
Accedemos con nuestras credenciales.
Una vez dentro nos señana el programa que no tenemos ningún proyecto creado.
En el panel de administración podemos gestionar usuario, grupos y proyectos.
Por hoy lo dejamos aquí.
En el próximo capítulo veremos cómo utilizar los repositorios y gestionar las versiones desde los usuarios locales.
Para el artículo me he servido de la información de las webs: Github USVN y Ubuntu Subversion Wiki
See you soon!!