Usar o svn + ssh para conectar-se a um repositório subversion simplesmente usa as permissões padrão do arquivo unix nos arquivos do repositório, pois o usuário está efetivamente conectado ao servidor remoto via ssh e simplesmente executando o comando svn localmente no referido servidor. servidor.
Se o usuário x tiver permissão de leitura / gravação para esse arquivo, o usuário x poderá confirmar as alterações nesse repositório. Se o usuário y NÃO tiver permissão para ler / gravar nesses arquivos, o usuário y não poderá confirmar alterações ou, se não tiver acesso de leitura, exibir (verificar) o conteúdo do repositório.
No modo mais simples, use chown e chmod para definir a propriedade e as permissões em um repositório para cada usuário:
$chown user:group /wherever/svn/private
$chmod 770 /wherever/svn/private
e assim por diante.
Para permissões mais complicadas, é necessário usar o svn através de um servidor http e usar os controles de acesso do servidor http para acessar caminhos específicos dentro de um repositório.
NOTA: Se um usuário tiver acesso de leitura / gravação a um repositório específico, ele poderá danificá-lo. Então, enquanto você estiver usando o svn + ssh, estará concedendo acesso considerável a esses usuários. Agora, mesmo em situações mais restritas, desde que um usuário possa fazer alterações em um repo, elas podem causar danos ... embora geralmente esse dano possa ser revertido.
Dê-me um minuto e ligarei para o capítulo relevante na documentação do SVN.
O take-away do livro é que o svn + ssh é simples e seguro, mas limitado, e o http é muito mais capaz, mas mais complexo. Eu praticamente uso apenas o método HTTP para fornecer acesso bonito somente leitura àqueles que eu quero, e todo mundo obtém acesso através de svn + ssh e eu limito severamente quem essas pessoas são e fazem backup em lote. Eu nunca tentei o método svnserve tanto quanto me lembro.