
La función de anotación SVN es bastante potente y permite determinar rápidamente a quién localizar para una función concreta en una línea de código concreta. Esta característica se vuelve un poco más limitada (pero sigue siendo útil) si los usuarios acceden a SVN a través de http. No se intercambian credenciales de esta manera, por lo que la anotación no muestra ningún nombre para una línea modificada por un desarrollador que usa http para confirmar un cambio.
La pregunta es, ¿hay alguna manera de que un desarrollador pase credenciales de algún tipo a SVN en el servidor para identificar de forma única su confirmación? Es simplemente la presencia de una identificación lo que se requiere en este entorno. Los métodos alternativos como svn+ssh y protocolos de archivos no están disponibles. Finalmente, este servidor está en una LAN interna, no pública. Los consejos para https también son bienvenidos.
El servidor SVN se ejecuta en Linux con Apache2.
Respuesta1
en la configuración de 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
y /etc/apache2/svn_authz puede contener una gestión detallada de quién puede acceder a qué:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
Si tiene a mano un servidor de directorio activo/ldap, puede usarlo en lugar de AuthUserFile para la autenticación de Apache.
Respuesta2
Dado que está ejecutando SVN a través de Apache, puede aprovechar los métodos de autenticación integrados de Apache para controlar el acceso/rastrear los cambios en su repositorio. El siguiente ejemplo funcionará con una configuración estilo htaccess:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
Puede configurar esto en un archivo htaccess o en el archivo de configuración de VirtualHost.
Respuesta3
Respuesta corta:mod_authz_svn
Puedes tener un poco sobre apache + svn + mod_autz_svn y algo más en mis diapositivas presentadas en la Conferencia Internacional PHP '09 disponibles enhttp://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
Respuesta4
Esta respuesta supone que sus desarrolladores usan Windows y tiene un controlador de dominio Active Directory.
Puede unir el servidor svn de Linux al dominio siguiendo estoartículo.
Desde allí, configura Apache para autenticarse en AD mediante Kerberos. Primera instalaciónmod_auth_kerb, luego conecte apache2 a kerberos para la autenticación. Ver Microsoftdocumentacion. Asegúrese de implementar SSL si le preocupa la seguridad entre el cliente y el servidor.
Una vez que haya terminado, los usuarios pueden iniciar sesión con sus contraseñas de Windows y las actividades se asignarán a su usuario.
Desafortunadamente, no puedo brindarle detalles de configuración específicos en este momento porque estoy fuera de la oficina y no tengo acceso a nuestro servidor svn.