Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

viernes, 16 de septiembre de 2011

Mercurial en Ubuntu (hgweb publishing method)

Mercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. Está implementado principalmente haciendo uso del lenguaje de programación Python, pero incluye una implementación binaria de diff escrita en C. Mercurial fue escrito originalmente para funcionar sobre Linux. Ha sido adaptado para Windows, Mac OS X y la mayoría de otros sistemas tipo Unix. Mercurial es, sobre todo, un programa para la línea de comandos. Todas las operaciones de Mercurial se invocan como opciones dadas a su programa motor, hg, que hace referencia al símbolo químico del mercurio.
Las principales metas de desarrollo de Mercurial incluyen un gran rendimiento y escalabilidad; desarrollo completamente distribuido, sin necesidad de un servidor; gestión robusta de archivos tanto de texto como binarios; y capacidades avanzadas de ramificación e integración, todo ello manteniendo sencillez conceptual.1 Incluye una interfaz web integrada.
El creador y desarrollador principal de Mercurial es Matt Mackall. El código fuente se encuentra disponible bajo los términos de la licencia GNU GPL versión 2, lo que clasifica a Mercurial como software libre.
(Fuente Wikipedia)



Así pues, vamos a instalar un sistema LAMP (Linux + Apache + MySQL + PHP) y luego vamos a instalar un mercurial:

apt-get install mercurial libapache2-mod-wsgi

Luego preparamos unos directorios en donde copiaremos unos scripts que nos serán necesarios para ejecutar el mercurial en modo hgweb.

mkdir -p /var/hg/repositorios
mkdir -p /var/hg/cgi-bin
touch /var/hg/hgweb.config


 Luego copiamos el script en la carpeta /var/hg/cgi-bin

cp /usr/share/doc/mercurial-common/examples/hgwebdir.wsgi /var/hg/cgi-bin


y como no, le cambiamos los permisos a las carpetas:
chown -R www-data:www-data /var/hg


Tendremos que modificar un poco el script copiado /var/hg/cgi-bin/hgwebdir.wsgi para que encuentre bien nuestra configuración:
Donde pone
application = hgwebdir('hgweb.config')
Pondremos:
config = '/var/hg/hgweb.config'
application = hgwebdir(config) 


Otro archivo que tenemos que modificar es el /etc/mercurial/hgrc . Debemos añadir un usario para poder hacer commits, sino nos saldria este error:

abort: no username supplied (see "hg help config")

Así pues, añadámoslo:

[ui]
; editor used to enter commit logs, etc.  Most text editors will work.
editor = vim
username = userEmail@domain.com


Una vez hecho esto, modificamos el archivo de configuración de apache /etc/apache2/sites-available/default-ssl

Ahora ya podemos hacer lo que nos aconseja el "Quick Start" de la página oficial:

$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'




That u don't know what you've got 'til it's gone