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

1
apt-get -y install apache2 php5 php5-mysqlnd

Una vez instalado podemos comprobar la versión de PHP con el parámetro –version

 

usvn-install-software-01

En la siguiente parte habilitamos los módulos de Apache2: mod_dav, mod_dav_fs y mod_rewrite.

1
2
3
a2enmod dav
a2enmod dav_fs
a2enmod rewrite

Una vez hecho esto reiniciamos Apache2

1
service apache2 restart

Podéis ver el proceso en la siguiente imagen:

 

usvn-install-software-02

 

Instalamos Subversion. La versión que viene en los repositorios main de Debian

1
apt-get -y install subversion

Aunque en principio no es necesario, yo utilizo el servidor MySQL que viene en los repositorios main

1
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í,

 

usvn-web-1

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/

1
cd /var/www

Y descargamos el archivo con el comando wget

1
wget https://github.com/usvn/usvn/archive/1.0.7.tar.gz

Y descomprimimos

1
tar xzvf 1.0.7.tar.gz

Asignamos los permisos al usuario del servidor Apache, www-data

1
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:

1
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.back

Y editamos el archivo default:

1
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.

usvn-apache2-default

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)

1
apt-get -y install libapache2-svn

Ya podemos habilitar ambos módulos:

1
2
a2enmod authz_svn
a2enmod dav_svn

Y podemos reiniciar el servicio:

1
service apache2 restart

Supuestamente con todo esto ya tendría que funciona la interfaz web, pero no:

usvn-error-messages-mo

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.

usvn-instalacion-web-01

En la siguiente ventana nos indica que hemos sido buenos, y hemos instalado todos los requisitos.

 

usvn-instalacion-web-02

 

Seleccionamos idioma y zona horaria.

 

usvn-instalacion-web-03

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

usvn-instalacion-web-04Al 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.

1
2
3
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.

 

usvn-instalacion-web-06

Aquí he escogido la BBDD tipo MySQL. Sólo debemos de indicar nuestras credenciales y crear la base de datos.

usvn-instalacion-web-07

Indicamos las credenciales para nuestro usuario.

usvn-instalacion-web-08

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.

usvn-instalacion-web-09

Editamos en Debian:

1
nano /etc/apache2/conf.d//httpd.conf

Y en Ubuntu:

1
nano /etc/apache2/httpd.conf

Y copiamos justo los mismo:

1
2
3
4
5
6
7
8
9
  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

1
service apache2 restart

Y con esto y un bizcocho… ya tenemos la web lista para su uso.

 

usvn-instalacion-web-10

Accedemos con nuestras credenciales.

Una vez dentro nos señana el programa que no tenemos ningún proyecto creado.

usvn-instalacion-web-11

En el panel de administración podemos gestionar usuario, grupos y proyectos.

 

usvn-instalacion-web-12

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!!

 

 

You may also like...

7 Responses

  1. adan dice:

    cuando se agrega el archivo httpd.conf, tuve que colocarlo dentro de la carpeta /etc/apache2/conf.d ya que me salia error 500, no route matched

    • davidochobits dice:

      Hola,
      Te tengo que dar la razón, y lo he modificado en el tutorial.
      En Debian la ubicación es /etc/apache2/conf.d/httd.conf
      Y en Ubuntu /etc/apache2/httpd.conf
      Saludos

  2. elena dice:

    el ejecutable no está completo le falta la carpeta de login por eso da error

  3. julia dice:

    al final de todos los pasos me sale lo siguiente como hago para corregir el error?

    session has already been started by session.auto-start or session_start()

    Trace:

    /var/www/usvn-1.0.7/library/Zend/Session/Namespace.php:143 Zend_Session::start
    /var/www/usvn-1.0.7/library/Zend/Auth/Storage/Session.php:87 Zend_Session_Namespace::__construct
    /var/www/usvn-1.0.7/library/Zend/Auth.php:91 Zend_Auth_Storage_Session::__construct
    /var/www/usvn-1.0.7/library/Zend/Auth.php:151 Zend_Auth::getStorage
    /var/www/usvn-1.0.7/library/USVN/Controller.php:83 Zend_Auth::getIdentity
    /var/www/usvn-1.0.7/library/Zend/Controller/Action.php:502 USVN_Controller::preDispatch
    /var/www/usvn-1.0.7/library/Zend/Controller/Dispatcher/Standard.php:295 Zend_Controller_Action::dispatch
    /var/www/usvn-1.0.7/library/Zend/Controller/Front.php:954 Zend_Controller_Dispatcher_Standard::dispatch
    /var/www/usvn-1.0.7/public/index.php:5 Zend_Controller_Front::dispatch

  4. NotACat dice:

    Hola, una pregunta!
    si quiero tener mas de 1 aplicacion en mi servidor local, como creo el Alias, si es que se hace por alias, o como procedo.
    En mi caso, tengo que instalar el control de versiones, que es este, y un control de incidencias… pero no se pueden estar en el mismo servidor sin usar el alias… Me explicas ?!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR