Configurar permissão de escrita específica da subpasta do repositório SVN

3

Eu preciso configurar um repositório SVN que o devgroup tenha privilégio total de ler e escrever, exceto por duas subpastas / 1 e / 2.

Para / 1 e / 2, quatro usuários devem ter permissão de gravação e todos os outros usuários devem ter permissão de leitura.

Eu coloquei o seguinte no arquivo de configuração, mas as pessoas no devgroup ainda têm permissão de gravação em / 1 e / 2.

Qualquer ajuda seria muito apreciada.

[project:/]
@devgroup = rw

[project:/1]
@devgroup = r
user1 = rw
user2 = rw
user3 = rw
user4 = rw

[project:/2]
@devgroup = r
user1 = rw
user2 = rw
user3 = rw
user4 = rw
    
por Hai Lang 02.07.2012 / 10:55

1 resposta

1

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.

    
por 28.09.2012 / 13:26

Tags