Mercurial sobre Apache - Userlinux.net

Mi predilección por Mercurial ha quedado patente en algún que otro post, así que una vez estamos conforme con nuestro servidor de versiones llega el momento de dar un paso más. Intentaremos configurar un interfaz web para mostrar el código a todo el mundo (una especie de Trac solo para…

Mercurial sobre Apache

07.May.2010 ~ 2 Comentarios ~ 1657 Lecturas

Mi predilección por Mercurial ha quedado patente en algún que otro post, así que una vez estamos conforme con nuestro servidor de versiones llega el momento de dar un paso más. Intentaremos configurar un interfaz web para mostrar el código a todo el mundo (una especie de Trac solo para código y adaptado a Mercurial).

El proceso es tan sencillo como crear otro VirtualHost en tu Apache con unas características un poco especiales porque en vez de tirar de archivos dinámicos (.php, .asp…) vamos a tirar de un cgi en Python, así que la configuración sería algo así:



<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/www/userlinux/sd/mercurial/cgi-bin/
        ServerName hg.userlinux.net

        ScriptAlias / /home/www/userlinux/sd/mercurial/cgi-bin/hgwebdir.cgi/
        <Directory "/home/www/userlinux/sd/mercurial/cgi-bin/">
                SetHandler cgi-script
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog  /home/www/userlinux/sd/mercurial/logs/error.log
        CustomLog /home/www/userlinux/sd/mercurial/logs/access.log combined
</VirtualHost>

Fijaos que el archivo hgwebdir.cgi es el que lleva todo el trabajo, y ¿de dónde lo sacamos?. Si tenemos instalado Mercurial (cosa que se da por supuesta), ya lo tenemos en el sistema, tan solo hemos de copiarlo a su nueva ubicación y tan contentos:

 

# cp /usr/share/doc/mercurial/examples/hgwebdir.cgi /home/www/userlinux/sd/mercurial/cgi-bin/ # chmod a+x /srv/hg/cgi-bin/hgwebdir.cgi

Ahora vamos a configurar alguna que otra preferencia del interfaz web, para ello creamos al mismo nivel del cgi un archivo de configuración llamado hgweb.config:

[paths]
rcms-plugin-prueba = /home/mercurial/rcms-plugin-prueba/

[web]
style = gitweb
allow_archive = bz2 gz zip
maxchanges = 200

En él -como veis- definimos los repositorios que vamos a mostrar (nombre = ruta) y varias opciones de la web como su theme, si permitimos o no descargar el contenido del repositorio…

Ojo con los permisos, tanto del archivo de configuración como de los repositorios, a los que ha de acceder el usuario propietario de Apache para leer. Un reinicio de Apache bastaría para tener el repositorio listo:

Categorías: sistemas

Comentarios


gravatar
07.May.2010
Jeje, creo que ya se por donde vas, y mola. Muy buena informacion.

gravatar
07.May.2010
La idea es crear repositorios de plugins "auto-actualizables", en principio para rcms pero podría ser válido para cualquier otro software.

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ssh frases champions userlinux iphone lugo rsidenotes felicidades films nintendo opinion sysadmin 2008 blogsfera vacaciones juegos cake ds debian sidenotes apple web blogs mac mysql cakephp deportes 2007 mundial openbsd barça ubuntu twitter blog humor meme canción alemania_2006 games bsd lucux linux twitt programación cumpleaños software django league bash macosx ps3 rfilms conciertos freebsd seguridad personal hack php bake futbol

Archivo

Social

Enlaces de interés