Mise en place de dépôts Mercurial avec accès en écriture utilisant les comptes de 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/:...
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
.
[collections] /home/hg = /home/hg [web] style = gitweb
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] <Limit POST> AuthType Basic AuthName Users AuthUserFile /home/www/conf/users.auth.php Require valid-user </Limit>
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