Crear Respositorio SVN (manejado por apache2, debian)

Si tenemos un servidor y queremos crear un repositorio donde subir nuestro codigo podemos hacerlo usando apache2 y el modulo DAV disponible para el apache2.

Para ello lo primero instalar el apache2.

apt-get install apache2

Ahora vamos a instalar el modulo DAV que instalara el modulo de apache para gestionar repositiorios SVN.

apt-get install subversion libapache2-svn
 
Una vez descargado, para instalar el modulo en apache ejecutamos
 
a2enmod dav_svn 
 
 
Ahora vamos a configurar el modulo dav_svn en apache
 
cd /etc/apache2/mods-enabled/
 
Editamos el archivo ejecutando:
   vi dav_svn.conf


y descomentamos estas lineas:
#Aqui en vez de "svn" ponemos poner el nombre de nuestro repositorio 
#es el nombre que se usara en http:\\ip\miRepositorio)
<Location /miRepositorio>  
  #Indica que es un modulo DAV svn, esto no se cambia 
  DAV svn
     #Este e el directorio real donde estara nuestro repositorio codigo
  SVNPath /home/proyectoUno 
  #Para hacer el repositorio seguro
  AuthType Basic
  #Es el nombre que mostrara el apache al entrar por web
  AuthName "Subversion Repository" 
 
  #Archivo de contraseñas
  #funciona igual que las otras autenticaciones con apache
  AuthUserFile /etc/apache2/dav_svn.passwd 
  #<LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  #</LimitExcept>
<Location>

Ya tenemos apache configuado para servir directorios SVN, ahora vamos al directorio real fisico a darlo de alta y configurarlo como directorio SVN
El directorio era /home/proyectoUno, asi que ejecutamos:
 
svnadmin create /home/proyectoUno
 
Como dijimos que el repositorio iba a ser seguro es necesario crear el archivo de password para el apache (funciona igual que para cualquier directorio de apache con seguridad Basic)
 
vamos a:
cd /usr/bin
 
ejecutamos:
htpasswd -cm /etc/apache2/dav_svn.passwd usuario1 
 
Esto te pedira la contraseña para el usuario1, lo pones 2 veces y ya esta.

Todos los usuarios que quieras que tengan permiso, pues los vas dando de alta
repitiendo esta instruccion.

Para terminar reinicias el apache

 /etc/init.d/apache2 restart
 
Ahora puedes ir con un navegador a http:\\ip\miRepositorio y veras que te pide laautenticacion que acabamos de meter y luego te muestra el contenido del repositorio.

Ahora desde eclipse o lo que sea, puedes acceder al repositorio y subir el codigo
y esas cosas que se suelen hacer ;-D

Si al intentar acceder te da un 403 prohibido lo mas seguro es que apache no tenga permisos sobre el directorio que has elegido como repositorio.
Para ello ejecuta:
 
chown -R www-data /home/proyectoUno
 
  
Si quiere tener otro repositorio bastaria con crear otro <Location /repo2>
con otra ruta, indicando el path fisico.
Puedes utilizar el mismo archivo de contraseñas (dav_svn.passwd) o crear otro nuevo si quieres los mismos usuarios.

La linea del "DAV svn"eso va fijo, indica que es un modulo svn, asi que no lo cambies.

Creas otra vez el directorio fisico para el nuevo repo y ejecutas el svnadmin
create bla bla bla..
  
 
Para subir el codigo por primera vez a nuestro repositorio sigue este tutorial que hice
desde el paso 3 "subida inicial de codigo" (saltate el paso de crear el repo en sourceForge)
 
http://danipenaperez.blogspot.com.es/2011/12/crear-un-proyecto-en-sourceforge.html 

Espero te hay funcionado!!


Comparte que es un arte!!

 
 
 


Comentarios

Entradas populares de este blog

Reiniciar usuario de SVN Subversion

Subir campos Blob a BBDD (Oracle) con Java

Reproducir mp3 con Java