
O recurso de anotação do SVN é bastante poderoso e facilita o trabalho de quem rastrear para um recurso específico em uma linha de código específica. Este recurso se torna um pouco mais limitado (mas ainda útil) se os usuários acessarem o SVN via http. Não há credenciais trocadas dessa forma, portanto a anotação não mostra nenhum nome para uma linha modificada por um desenvolvedor que usa http para confirmar uma alteração.
A questão é: existe uma maneira de um desenvolvedor passar algum tipo de credenciais para o SVN no servidor para identificar exclusivamente seu commit? É apenas a presença de um ID que é necessária neste ambiente. Métodos alternativos como svn+ssh e protocolos de arquivo não estão disponíveis. Finalmente, este servidor está em uma LAN interna, não pública. Dicas para https também são bem-vindas.
O servidor SVN está rodando em Linux com Apache2.
Responder1
na configuração do apache:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
e /etc/apache2/svn_authz pode conter gerenciamento detalhado de quem pode acessar o quê:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
se você tiver um servidor ldap/active directory em mãos, poderá usá-lo em vez de AuthUserFile para autenticação do Apache.
Responder2
Como você está executando o SVN por meio do Apache, você pode aproveitar as vantagens dos métodos de autenticação integrados do Apache para controlar o acesso/rastrear alterações em seu repositório. O exemplo abaixo funcionará com uma configuração estilo htaccess:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
Você pode configurar isso em um arquivo htaccess ou no arquivo de configuração do VirtualHost.
Responder3
Resposta curta:mod_authz_svn
Você pode saber um pouco sobre apache + svn + mod_autz_svn e algo mais nos meus slides apresentados na International PHP Conference '09 disponíveis emhttp://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
Responder4
Esta resposta pressupõe que seus desenvolvedores usem o Windows e você tenha um controlador de domínio do Active Directory.
Você pode ingressar o servidor Linux svn no domínio seguindo esteartigo.
A partir daí, você configura o Apache para autenticar no AD usando Kerberos. Primeira instalaçãomod_auth_kerbe conecte o Apache2 ao Kerberos para autenticação. Veja o da Microsoftdocumentação. Certifique-se de implementar SSL se estiver preocupado com a segurança entre o cliente e o servidor.
Depois de terminar, os usuários poderão fazer login com suas senhas do Windows e as atividades serão atribuídas ao usuário.
Infelizmente, não posso fornecer detalhes específicos de configuração agora, pois estou fora do escritório e não tenho acesso ao nosso servidor SVN.