Heme aquí otra vez, tratando de dar el último paso en darle hosting a humitos, que vendría a ser, dar acceso a subversion por https. Actualmente tenemos acceso anónimo y acceso por ssh, pero el primero no tiene autenticación, por lo que no permite commits, y para acceder al segundo requiere un user en mi server. Éste no deja de ser mi server privado y no me gusta la idea de abrir cuentas a troche y moche.

Prender https fue faćil, aunque lo puse en el puerto 4433, porque en el 443 tengo el ssh. El motivo es medio largo de explicar. Cabía la posibilidad de poner algún programa que me permita tener los dos servicios en el mismo puerto, pero el más maduro que ví decía ser una implementación muy chapucera.

Poner dav y dav-svn a andar es una pavada. Todo está explicado en el libro de subversion. El problema saltó cuando ví los repos de humitos. Este chango tiene bastantes proyectitos chicos puestos en disco de una forma que justo queda incómodo de usar con esto.

Resulta que los paths son de la pinta /home/humitos/proyectos/<proy>/svn. Las directivas que tengo que poner en la configuración de apache son de la pinta:

<Location /~humitos/svn/<proy>>
  DAV svn
  SVNPath /home/humitos/proyectos/<proy>/svn
</Location>

Al día de hoy cuento 15 proyectos. Se me ocurrió que tal vez s podría hacer con un LocationMatch, as in:

<LocationMatch ^/(~|%2f|%2F)humitos/svn/([^/]*)/(.*)$>
DAV         svn
    SVNPath     /home/humitos/projects/$2/svn/$3
</LocationMatch>

El primer match es porque en distintas circunstancias el ~ es enviado en alguna de esas tres formas por los navegadores, y no se desescapan antes de ser procesados por Apache. Lamentablemente no hay nada en la documentación de Apache que diga que se puedan usar el $2 y el $3 de esa forma, cosa que me confirmaron en el canar #apache en freenode. También existe la directiva SVNParentPath, pero serviría sólo si los path fueran de la pinta /home/humitos/proyectos/<proy>/svn.

Así que al fin y al cabo, no me quedó otra más que poner todo en un mismo archivo, darle permiso a humitos para escribir en él, y darle sudo pare reiniciar el Apache.

sysadmin apache subversion

Posted Wed 27 Jan 2010 11:55:55 PM CET Tags: subversion