~~NOTOC~~
====== Serveur de dépôts Mercurial ======
Mise en place de dépôts Mercurial avec accès en écriture utilisant les comptes de DokuWiki.
===== DokuWiki =====
Vérifiez que les mots de passe des utilisateurs sont stockés selon :
$conf['passcrypt'] = 'smd5';
les mots de passe dans users.auth.php ressemblent alors à ceci :
user:$1$157382ed$u3AEZpF5xZMNlWGfHZdn6/:...
===== Répertoire des dépôts =====
Dans notre cas, le répertoire servant de point d'entrée pour les dépôts Mercurial est dans l'arborescence de DokuWiki (''/home/www''). Il contient les fichiers hgwebdir.cgi, hgweb.config et .htaccess. Les dépôts sont stockés dans le répertoire ''/home/hg''.
==== hgweb.config ====
[collections]
/home/hg = /home/hg
[web]
style = gitweb
==== .htaccess ====
DirectoryIndex hgwebdir.cgi
Options ExecCGI FollowSymLinks
RewriteEngine On
RewriteBase /home/www/hg
RewriteCond %{REQUEST_URI} !^/hg/hgwebdir\.cgi.*
RewriteRule (.*) /hg/hgwebdir.cgi/$1 [PT]
RewriteRule ^$ hgwebdir.cgi [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) hgwebdir.cgi/$1 [QSA,L]
AuthType Basic
AuthName Users
AuthUserFile /home/www/conf/users.auth.php
Require valid-user
===== Dépôts =====
Une première copie de chaque dépôt est copiée dans ''/home/hg'' et les droits d'écriture sont donnés à l'utilisateur exécutant le serveur Apache. Puis un fichier ''hgrc'' est ajouté dans le répertoire ''.hg/'' du projet :
[web]
contact = someone
allowgz = true
allowzip = false
allowbz2 = false
style = gitweb
allow_push = *
Dans le cas où seuls certains utilisateurs doivent pouvoir consigner des modifications dans le dépôt, il convient de mettre en place une ligne allow_push appropriée, par exemple :
allow_push = bug,bboett,adlp