sábado, 8 de septiembre de 2012

SVN y Apache

Normalmente, cuando preparo el ambiente de desarrollo para un nuevo proyecto de PHP, me meto a mi servidor y creo un repositorio de SVN, al cual luego me conecto usando svn+ssh. Sin embargo, en este proyecto necesito trabajar con personas que usan Windows, y como era de esperarse, a TortoiseSVN no le gusta mucho svn+ssh. Tuve entonces que configurar el repositorio para poder acceder por http.

Estos son los pasos para habilitar SVN por http:

  1. sudo apt-get install libapache2-svn
  2. Usar a2enmod para habilitar los siguientes modulos de apache:
    • dav_module
    • fs_module
    • dav_svn_module
    • authz_svn_module
  3. Crear el repositorio
    svnadmin create /var/svn
  4. Agregar esto a la configuración de apache (Yo lo puse en /etc/apache2/sites-available/svn):
    <Location /svn>
    DAV svn
    SVNPath /var/svn
    AuthType Basic
    AuthName "SVN Repository"
    AuthUserFile security/svnpasswd
    Require valid-user
    </Location>
    

  5. Crear un directorio para guardar el archivo de las contraseñas
    sudo mkdir /etc/apache2/security 


  6. Agregar usuarios:
    sudo htpasswd svnpasswd usuario



Algunos puntos importantes a considerar:
  • NO poner el repositorio dentro del DocumentRoot de Apache. Esto crea conflictos.
  • Para crear el working copy dentro del servidor, usar file:// para el URL, no http://. De lo contrario, saldrán errores como este:

    svn: Commit failed (details follow):
    svn: Processing MERGE request response failed: Element type "http:" must be followed by either attribute specifications, ">" or "/>". (/svn/proyecto/trunk/) 
    svn: MERGE request failed on '/svn/proyecto/trunk'
    

No hay comentarios.:

Publicar un comentario