Você não pode remover permissões de um usuário já concedido, portanto, fornecendo acesso de leitura / gravação na raiz do repositório para o @devgroup
que você forneceu a todas as subárvores.
A maneira de conseguir isso é segregar as áreas do seu projeto em diferentes repositórios com permissões diferentes e, em seguida, usar a propriedade svn:externals
para agrupá-las no repositório de nível superior.
A propriedade svn:externals
pode ser definida em qualquer diretório com versão e seu valor é uma tabela de várias linhas de subdiretórios (em relação ao diretório com versão em que a propriedade está definida), sinalizadores de revisão opcionais e totalmente qualificados URLs do repositório do Subversion.
$ svn propget svn:externals .
1 http://svn.example.com/repos/restricted-1
2 http://svn.example.com/repos/restricted-2
Quando alguém verifica uma cópia de trabalho do repositório do projeto, o Subversion também continua a verificar os itens encontrados em sua definição externa.
$ svn checkout http://svn.example.com/repos/project
A project
A project/Makefile
A project/integer.c
A project/button.c
Checked out revision 148.
Fetching external item into 1
A 1/security.c
...
Checked out revision 14.
Fetching external item into 2
...
Você pode, então, colocar restrições sobre os dois repositórios restritos para evitar que os usuários @devgroup
atualizem esses repositórios, enquanto ainda os obtêm quando fazem o checkout do repositório principal do projeto.