Subversion cuenta con un diseño de la capa de red abstracto. Esto significa que el repositorio puede ser accedido por cualquier clase de proceso de servidor y el API[26] de “acceso al repositorio” cliente permite a los programadores escribir componentes que se comuniquen a través de su protocolo de red pertinente. En teoría, Subversion puede lucir una infinidad de implementaciones de red. En la práctica, sólo existen dos tipos de servidores al momento de escribirse este documento.
Apache es un servidor web extremadamente popular; utilizando el módulo mod_dav_svn, Apache puede acceder a un repositorio y hacerlo disponible a los clientes a través del protocolo WebDAV/DeltaV, el cuál es una extensión del HTTP. En la otra esquina se encuentra svnserve: un pequeño programa servidor independiente que se comunica a través de un protocolo personalizado con los clientes. La Tabla 6-1 presenta una comparación de ambos tipos de servidores.
Observe que Subversion, siendo un proyecto de código abierto, no apoya oficialmente a ningún servidor como opción “primaria” u “oficial”. Ninguna de las implementaciones de red es considerada como un ciudadano de segunda clase; cada servidor posee ventajas y desventajas distintivas. De hecho, es posible ejecutar los diferentes servidores en paralelo, cada uno accediendo a sus repositorios a su modo y sin obstaculizar al otro (ver “Ofrecer múltiples métodos de acceso al repositorio”). A continuación una breve visión general y comparación de los servidores Subversion disponibles—es tiempo de que elija la instalación que sea mejor para usted y sus usuarios.
Tabla 6.1. Comparación de tipos de servidores de red
Característica | Apache + mod_dav_svn | svnserve |
---|---|---|
Opciones de autenticación | Autorización básica HTTP(S), Certificados X.509, LDAP, NTLM, o cualquier otro mecanismo disponible por Apache httpd | CRAM-MD5 o SSH |
Opciones de cuenta de usuario | archivo privado de usuarios 'users' | archivo privado de usuarios 'users', o cuentas (SSH) existentes en el sistema |
Opciones de autorización | acceso general de lectura/escritura, o control de acceso por directorios | acceso general de lectura/escritura |
Cifrado | a través de SSL (opcional) | a través de un túnel SSH (opcional) |
Interoperabilidad | disponible parcialmente por otros clientes WebDAV | no posee interoperabilidad |
Ver a través de la web | soporte integrado limitado, o a través de herramientas de terceras partes tales como ViewCVS | a través de herramientas de terceras partes tales como ViewCVS |
Velocidad | algo lento | algo rápido |
Configuración inicial | algo compleja | bastante simple |
[26] N.T.: Application programmmers interface, o interfaz de programación de aplicaciones. Este acrónimo se considera reconocido internacionalmente motivo por el cuál no será traducido.