Atualmente eu uso um sistema de controle de revisão distribuído chamado 'darcs'.
Eu tentei as duas abordagens descritas abaixo usando essa ferramenta e servidores linux.
Eu também usei a abordagem 1 com o Subversion e com o CVS.
Sua milhagem pode variar em diferentes servidores e / ou nos sistemas de controle de revisão.
Mas as abordagens básicas podem ser viáveis de um jeito ou de outro em qualquer
configurações que você selecionou.
1- Usando uma única conta de usuário sem divulgar sua senha para ninguém, você
autenticar conexões com essa conta via SSH usando chaves públicas. Você confina
os privilégios dessa única conta de usuário para ter acesso somente ao repositório.
Os contribuidores do seu repositório devem gerar um par de chaves privadas / públicas e
enviar a chave pública para que você possa adicioná-la às chaves autorizadas.
Se você removê-lo, ele perde o acesso.
2- Requer que seus contribuidores de patch assinem e enviem correções por email.
Você mantém um chaveiro público que contém as chaves dos colaboradores autorizados.
todas as assinaturas de patch são verificadas em relação a esse chaveiro antes de serem
aplicado. Portanto, somente patches assinados por colaboradores autorizados são aplicados.