Subversion

De Guía Ubuntu
Saltar a: navegación, buscar

Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Vamos a instalar un servidor de Subversion que gestione las peticiones a través de Apache, lo cual lo dotará de una serie de funcionalidades añadidas. Estas funcionalidades las proporcionarán los distintos módulos de Apache existentes, como el poder usar autentificación por base de datos. Realmente útil a la hora de mantener el control de acceso a distintos usuarios por proyecto.

$ sudo aptitude install subversion libapache2-svn

En el directorio /etc/apache2/mods-enabled puedes ver como se han creado enlaces a varios ficheros de los cuales ahora mismo nos interesa dav_svn.conf. Lo vamos a editar para hacer algunas modificaciones para crear un repositorio llamado pruebas.

Localizamos las líneas donde se define el repositorio por defecto svn:

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
#<Location /svn>

Descomentamos la línea y cambiamos el nombre del repositorio pruebas:

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
<Location /pruebas>

Tal y como indica, descomentamos para activar el repositorio:

# Uncomment this to enable the repository,
# DAV svn

Así:

# Uncomment this to enable the repository,
DAV svn

Modificamos también las líneas:

# Set this to the path to your repository
# SVNPath /var/lib/svn

Para establecer el path del repositorio:

# Set this to the path to your repository
SVNPath /var/lib/svn/pruebas

Inicialmente comentaremos las siguientes líneas para desactivar la seguridad:

<LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
</LimitExcept>

No olvidemos descomentar la última línea. Ya que es donde termina el repositorio.

</Location>

Como somos muy ordenados, queremos crear un repositorio por cada proyecto. Así será más sencillo gestionar las políticas de seguridad. Todos estos repositorios se van a crear dentro del directorio /var/lib/svn por lo que tenemos que crearlo previamente.

$ sudo mkdir /var/lib/svn

Ahora tenemos que crear el repositorio en sí:

$ sudo svnadmin create /var/lib/svn/pruebas

Aunque no es estrictamente necesario, vamos a crear los directorio trunk, tags y branches que servirán para almacenar el código actual, los tag y las posibles ramas que pueda tener nuestro proyecto:

$ sudo svn mkdir --message="Setting up the directories..." \
  file:///var/lib/svn/pruebas/trunk \
  file:///var/lib/svn/pruebas/tags \
  file:///var/lib/svn/pruebas/branches

Dado que vamos a acceder a este repositorio a través de apache, tendremos que asignarle el propietario adecuado:

$ sudo chown www-data:www-data  /var/lib/svn/pruebas -R

Sólo nos queda reiniciar el servidor Apache para que vuelva a leer la configuración actualizada:

$ sudo /etc/init.d/apache2 restart

Si abres un navegador y accedes a http://localhost/pruebas podrás ver el contenido del repositorio pruebas.

Ver también