Subversion was designed with an abstract network layer. This means that a repository can be programmatically accessed by any sort of server process, and the client “repository access” API allows programmers to write plugins that speak relevant network protocols. In theory, Subversion can use an infinite number of network implementations. In practice, there are only two servers at the time of writing.
Subversion è stato progettato con un livello di rete astratto. Ciò significa che un repository può essere (programmaticamente) raggiunto da ogni tipo di processo del server, ed il client grazie alle API di «accesso al repository» permette ai programmatori di scrivere plugin che rieascano ad interagire con i relativi protocolli di rete. In teoria, Subversion può usare un infinito numero di implementazioni di rete. In Pratica, ci sono solo due server al momento della scrittura di questo libro.
Apache is an extremely popular webserver; using the mod_dav_svn module, Apache can access a repository and make it available to clients via the WebDAV/DeltaV protocol, which is an extension of HTTP. In the other corner is svnserve: a small, standalone server program that speaks a custom protocol with clients. Table 6-1 presents a comparison of the two servers.
Apache è un webserver estremamente popolare; usando il modulo mod_dav_svn, Apache può accedere al repository mettendolo a disposizione dei client tramite il protocollo WebDAV/DeltaV, che è un'estensione del protocollo HTTP. Un altro metodo è quello di usare svnserve: un piccolo programma server standalone, che utilizza un protocollo adatto con i client. La tabella 6-1 presenta il confronto tra i due server
Note that Subversion, as an open-source project, does not officially endorse any server as “primary” or “official”. Neither network implementation is treated as a second-class citizen; each server has advantages and disadvantages. In fact, it's possible for different servers to run in parallel, each accessing your repositories in its own way, and each without hindering the other (see sezione chiamata «Supporting Multiple Repository Access Methods»). Tabella 6.1, «Confrontro tra i Server» gives a brief overview and comparison of the two available Subversion servers—as an administrator, it's up to you to choose whatever works best for you and your users.
Notare che Subversion, con ogni progetto open-source, non supporta ufficialmente nessun server come «primario» o «ufficiale». Nessuna implementazione di rete è favorita rispetto ad un altra; ogni server ha vantaggi e svantaggi. Infatti, è possibile che server differenti siano avviati in parallelo, ogni accesso al vostro repository può essere fatto in entrambi i modo senza che questi si ostacolino (vedere sezione chiamata «Supporting Multiple Repository Access Methods»). Tabella 6.1, «Confrontro tra i Server» fa una breve descrizione e un confrontro sei due tipi di server Subversion disponibili— come amministratore, spetta a voi scegliere quello che dia più adatto alle vostre esigenze e a quelle dei vostri utenti.
Tabella 6.1. Confrontro tra i Server
Caratteristica | Apache + mod_dav_svn | svnserve |
---|---|---|
Opzioni di autenticazione | autenticazione base di HTTP(S), certificati X.509, LDAP, NTLM, o qualsiasi meccanismo disponibile con Apache httpd | CRAM-MD5 o SSH |
Opzioni di account utente | file privato 'users' | file privato 'users', o un sistema di account esistente(SSH) |
Opzioni di autorizzazione | accesso in lettura/scrittura, o per controllo in lettura/scrittura della directory | accesso in lettura/scrittura, o per controllo in scrittura (ma non il lettura) usanto un aggancio (hook) prima del commit |
Crittografia | facoltativamente con SSL | facoltativamente con un tunnel SSH |
Interoperabilità | parzialmente utilizzabile da altri client WebDAV | non interoperabile |
Visualizzatore web | limitato supporto incorporato, o attraverso tool di terze parti come ViewVC | attraverso tool di terze parti come ViewVC |
Velocità | lento | veloce |
Configurazione iniziale | un pò complessa | discretamente semplice |