Mercurial [1] est un gestionnaire de version décentralisé. Il présente l’avantage d’être plus simple que git pour les actions de base, mais aussi pour héberger une interface web.
[ul]
- Installation du minimum vital :
apt-get install nginx mercurial fcgiwrap
- Création d’un dépot mercurial sur le serveur :
mkdir depothg cd depothg hg init
- Personnaliser le dépot en éditant le fichier depothg/.hg/hgrc (facultatif)
[web]
contact = Votre nom
description = Description qui déchire
allow_archive = gz, zip, bz2
allow_push = *
- Copie du script cgi (qui générera les pages web)
cp /usr/share/doc/mercurial-common/examples/hgweb.cgi ~ chmod +x ~/hgweb.cgi
- Edition de hgweb.cgi selon vos besoins :
-
Création de hgweb.config
[paths] depothg = /home/pi/depothg [web] baseurl = /hg staticurl = /static descent = True collapse = True
baseurl sera placé devant chaque liens générés. Cela est pratique si vous n’hébergez pas le dépot à la racine du serveur. -
À rajouter dans le fichier de configuration de nginx :
location ~ /hg/ {
rewrite ^/hg(.*)$ $1 break;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /home/user/hgweb.cgi;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
include fastcgi_params;
}
location ^~ /static {
rewrite ^/static(/.*)$ $1 break;
root /usr/share/mercurial/templates/static;
autoindex off;
}
[/ul]
Un exemple sur un raspberry pi : [2]
Voir aussi [3]
[1] : mercurial.selenic.com/
[2] : yeuxdelibad.net/hg/
[3] : mercurial.selenic.com/wiki/Publi … positories