18NovInstalar Subversion Server en Ubuntu

Subversion es un sistema de control de versiones ideado para reemplazar al popular CVS. Subversion nos permite entre muchas otras cosas mantener versiones antiguas de ficheros y poder trabajar de manera colaborativa sin pisar el trabajo de otros.

En este tutorial vamos a ver como instalar el servidor de subversion en una maquina ubuntu.

Para ello el primer paso es instalar los paquetes necesarios

sudo apt-get install subversion libapache2-svn subversion-tools

Creamos la carpeta para guardar los ficheros

sudo mkdir /home/<user>/svn

Editamos el fichero de configuración

sudo nano /etc/apache2/mods-enabled/dav_svn.conf

Hay que modificar el archivo hasta que se parezca a esto

# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.# <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>
# Uncomment this to enable the repository,
DAV svn
# Set this to the path to your repository
SVNParentPath /home/<user>/svn

# The following allows for basic http authentication.  Basic authentication
# should not be considered secure for any particularly rigorous definition of
# secure.
# to create a passwd file
# # rm -f /etc/apache2/dav_svn.passwd
# # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
# New password:
# Re-type new password:
# Adding password for user dwhedon
# #
# Uncomment the following 3 lines to enable Basic Authentication
 AuthType Basic
 AuthName "Subversion Repository Access"
 AuthUserFile /etc/apache2/dav_svn.passwd
 Require valid-user
# Uncomment the following line to enable Authz Authentication
# AuthzSVNAccessFile /etc/apache2/dav_svn.authz
# The following three lines allow anonymous read, but make
# committers authenticate themselves.
#<limitexcept GET PROPFIND OPTIONS REPORT>
#Require valid-user
#</limitexcept>
</location>

Creamos el fichero de usuarios y claves

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Usamos este comando si queremos añadir mas usuarios

sudo htpasswd /etc/apache2/dav_svn.passwd <another username>

Reiniciamos apache

sudo /etc/init.d/apache2 restart

Creamos la carpeta que contendrá el proyecto

sudo mkdir -p /home/<user>/svn/<project>

Creamos el repositorio

sudo svnadmin create /home/<user>/svn/<project>

Conectamos al subversion localmente y creamos las carpetas Trunk, Tags y Branches

sudo svn mkdir file:///home/<user>/svn/<project>/trunk -m "Trunk"
sudo svn mkdir file:///home/<user>/svn/<project>/tags -m "Tags"
sudo svn mkdir file:///home/<user>/svn/<project>/branches -m "Branches"

Otorgamos permisos a apache

sudo chown -R www-data.www-data /home/<user>/svn

Navegamos a la carpeta /etc/init.d, creamos un fichero llamado init-svnserve y lo abrimos con nano para editarlo

cd /etc/init.d/
sudo touch init-svnserve
sudo nano init-svnserve

En el fichero añadimos esta linea

svnserve -d -r /home/<user>/svn

Damos permisos de ejecución al fichero

sudo chmod +x init-svnserve

Actualizamos el arranque del sistema para que detecte el nuevo fichero

sudo update-rc.d init-svnserve defaults

Reiniciamos el servidor y todo funcionando!

sudo shutdown -r now

One Response and Counting...

  • Bitacoras.com

    November 18th 2009

    Información Bitacoras.com…

    Valora en Bitacoras.com: Subversion es un sistema de control de versiones ideado para reemplazar al popular CVS. Subversion nos permite entre muchas otras cosas mantener versiones antiguas de ficheros y poder trabajar de manera colaborativa sin pisar…..