No exemplo de trabalho a seguir, você precisa de uma autenticação válida para puxar (consulte Exigir usuário válido) e uma autenticação válida com um usuário do grupo privado para envio (consulte a diretiva Limitar).
<Directory /var/www/sources.XXXXXXXXx/www/private/>
RewriteEngine on
RewriteBase /private
RewriteRule ^$ hgwebdiri.cgi [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) hgwebdir.cgi/$1 [QSA,L]
Options FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex hgwebdir.cgi
AllowOverride None
# Order allow,deny
# Allow from all
AuthUserFile /etc/mercurial/hgweb.htpasswd
AuthGroupFile /etc/mercurial/hgweb.htgroup
AuthName "XXXXXXXXXXXXXx private sources"
AuthType Basic
Require valid-user
<Limit POST PUT>
Require group private
</Limit>
</Directory>