- Actualizamos el sistema
- Instalamos los paquetes de apache y los modulos de svn
- Habilitamos los modulos de svn para apache
- Creamos el directorio donde pondremos el repositorio de svn
- Creamos el repositorio de svn
- Le damos permiso de acceso y escritura a usuario de Apache; en este caso el usuario es www-data
- Creamos el site en apache; para ello creamos un fichero llamado repo1.conf en /etc/apache2/sites-available
- Habilitamos el sitio recien creado
- Reiniciamos apache
- Finalmente, accedemos al repositorio a través del navegador
sudo apt-get update
sudo apt-get install subversion subversion-tools apache2 libapache2-svn apache2-utils
sudo a2enmod dav sudo a2enmod dav_svn
sudo mkdir -p /var/svn
sudo svnadmin create /var/svn/proyecto1
sudo chown -R www-data:www-data /var/svn
repo1 es el lugar al que accederemos desde la web, es decir, en este caso, para acceder al repositorio desde el navegador escribiremos.DAV svn SVNPath /var/svn/proyecto1
Pero todavía no.....faltan un par de pasos máshttp://localhost/repo1
sudo a2ensite repo1
sudo service apache2 reload
http://localhost/repo1
Uso del repositorio
Nos descargamos el repositorio recien creadosvn co http://localhost/repo1Accedemos al repositorio
cd repo1Creamos los directorios trunk, tags y branches y creamos un fichero de ejemplo:
mkdir trunk tags branches cd trunk echo "contenido del fichero" > ejemplo.txtAñadimos los ficheros creados
cd .. svn add *Obtenemos la siguiente salida:
A branches A tags A trunk A trunk/ejemplo.txtY confirmamos los cambios
svn ci -m "comentarios"Obtenemos la siguiente salida:
Añadiendo branches Añadiendo tags Añadiendo trunk Añadiendo trunk/ejemplo.txt Transmitiendo contenido de archivos . Committed revision 1.Si comprobamos los cambios desde el navegador web, veremos:
y esto
Añadir seguridad al repositorio con acceso por usuario y contraseña
Para ello, crearemos los usuarios que van a acceder al repositorio en el servidor con useraddEstos usuarios necesitan permisos de escritura sobre los ficheros del repositorio, por lo que tenemos que añadir los usuarios al grupo www-data, ya que este grupo es el grupo propietario de los ficheros de repositorio.
sudo usermod -G www-data usuarioModificamos el fichero /etc/apache2/sites-available/repo1.conf y lo dejamos asi:
Creamos el fichero /etc/dav_svn.passwd en el que añadimos los usuarios que van a utilizar el svn.DAV svn SVNPath /var/svn/proyecto1 AuthType Basic AuthName "Test Repo" AuthUserFile /etc/dav_svn.passwd Require valid-user
Este fichero se crea con el comando htppasswd.
La primera vez con:
sudo htpasswd -c /etc/apache2/dav_svn.passwd usuarioSi queremos añadir mas usuarios, la segunda y siguientes veces los añadiremos con:
sudo htpasswd -a /etc/apache2/dav_svn.passwd usuario2Reiniciamos apache:
sudo service apache2 reload
Acceso por web a multiples repositorios
Con lo hecho hasta ahora, tenemos acceso a un unico repositorio.Si queremos tener acceso a varios repositorios tenemos que realizar los siguientes pasos:
- Creamos el resto de repositorios
- Cambiamos el propietario y grupo de los nuevos repositorios
- Creamos el nuevo site en apache; para ello creamos un nuevo fichero llamado repositories.conf en /etc/apache2/sites-available
- Habilitamos el sitio recien creado
- Reiniciamos apache
- Finalmente, accedemos al reposotioro a través del navegador
cd /var/svn sudo svnadmin create /var/svn/proyecto2 sudo svnadmin create /var/svn/proyecto3
sudo chown -R www-data:www-data /var/svn
Es importante la directiva 'SVNListParentPath' junto con la 'SVNParentPath'DAV svn SVNParentPath /var/svn SVNListParentPath On AuthType Basic AuthName "Test Repo" AuthUserFile /etc/dav_svn.passwd Require valid-user
sudo a2ensite repositories
sudo service apache2 reload
http://localhost/repositories
Fuentes:
https://www.howtoforge.com/how-to-install-and-use-svn-with-apache-dav_svn-on-ubuntu-14.04
http://www.krizna.com/ubuntu/setup-svn-server-on-ubuntu-14-04/
https://desarrollophpsenior.wordpress.com/2012/04/07/instalar-servidor-de-svn-en-ubuntu/
http://superuser.com/questions/274183/how-to-overcome-svn-could-not-open-the-requested-svn-file-system
http://www.wandisco.com/svnforum/forum/opensource-subversion-forums/general-setup-and-troubleshooting/4583-problem-setting-up-repository-with-apache
http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html