Eu acho que você provavelmente está perdendo é que é perfeitamente permitido criar um arquivo .hg/hgrc
dentro de cada repositório, e esses arquivos podem conter allow_push
e allow_read
entradas.
Nós precisaremos hospedar uma série de repositórios do Mercurial. Por segurança, usaremos criptografia SSL no acesso Apache e htpasswd (obrigatório). Eu testei um único repositório e usei hgwebdir.cgi
e usei o hgweb.config
para definir o caminho do repositório e as diretivas allow_push
e deny_push
, mas essa configuração de teste levou apenas a mais perguntas / problemas:
Eu não vejo nenhuma maneira de fazer um grupo diferente de permissão / negação para cada repositório separado? Mais importante ainda, não vejo nenhum método para allow_pull
deny_pull
- o que é muito importante, pois cada repositório tem um conjunto diferente de usuários que devem ter permissão para ler ou escrever. Gostaríamos de manter um arquivo htpasswd
para todos os usuários.
O servidor Mercurial é uma ótima maneira de hospedar muitos repositórios do Mercurial com diferentes requisitos de acesso por repositório.
Se você decidir que isso não é para você, então dê uma olhada na extensão ACL para o Mercurial.
Acho que a melhor maneira de allow_pull
ou deny_pull
configurar a autenticação httpd usando o arquivo htpasswd. Você poderia usar qualquer um dos mecanismos mod_auth
aqui para permitir que cada usuário puxe ou empurre.
Você também pode pesquisar o uso do transporte SSH para hospedagem, pois isso proporcionará um controle mais preciso sobre o acesso, ao custo de uma configuração um pouco mais complicada.
Mais informações podem ser encontradas no wiki do Mercurial .