Componenti "server"
Sul server devono risiedere i moduli che garantiscono l'accesso al repository, nonché gli eseguibili di gestione. In particolare i componenti significativi sono:
- svnadmin, il programma che permette la creazione e gestione del repository;
- mod_dav_svn, il modulo per Apache che rende disponbile il repository tramite protocollo HTTP – richiede ovviamente una installazione funzionante del server
httpd
; - svnserve, il server svn standalone che può – opzionalmente – essere usato al posto del modulo per Apache;
- svn, il client da linea di comando.
Tra l'utilizzo di un modulo per Apache e l'utilizzo di svnserve
è consigliabile senz'altro la prima opzione, in quanto ci permette di sfruttare altre potenzialità del Web server quali l'autenticazione tramite file htpasswd
e l'utilizzo di sistemi di crittografia (OpenSSL
) per proteggere e limitare l'accesso al repository.
Dalla home page del progetto è possibile scaricare le versioni per tutti i principali sistemi operativi. La maggior parte delle distribuzioni Linux include inoltre Subversion nei repository ufficiali dei propri pacchetti.
Il progetto VisualSVN Server offre inoltre un pacchetto "all-in-one" che ci permette di installare su Windows tutti i componenti server necessari.
In questa guida utilizzeremo tuttavia una installazione tradizionale su server Linux. Realizzeremo un server completo e funzionante, adeguato per la maggior parte delle esigenze.
Componenti "client"
Sul client risiedono i programmi grafici o da linea di comando per accedere alle funzioni di un server Subversion. Il client da linea di comando è spiegato nel dettaglio nel manuale ufficiale di Subversion. Esistono inoltre almeno due client grafici degni di menzione.
- TortoiseSVN, il client “ufficiale” di Subversion per Windows. È gratuito e nella homepage del progetto SubVersion è elencato per primo tra i client ... e questo vorrà dire qualcosa :-)
- SmartSVN, un client multipiattaforma basato su Java, che da altrettante soddisfazioni a chi ha avuto modo di provarlo.
Questi client in particolare vengono utilizzati come estensioni del filesystem; il che significa che non lavorano come un'applicazione separata, bensì offrono i comandi come opzioni del menu contestuale (tasto destro o equivalente su altri sistemi).
I client SVN grafici utilizzano gli stessi comandi per dialogare con il server Subversion (e non potrebbe essere altrimenti); svn checkout, svn commit, e così via. In alcuni casi, tuttavia, offrono delle scorciatoie interessanti per le operazioni più comuni e/o offrono maschere di dialogo che ci evitano di dover ricordare la sintassi completa dei comandi. Inoltre, propongono una maggiore verbosità negli elenchi e nei messaggi di errore, e ci offrono opzioni aggiuntive: ad esempio la possibilità di navigare il repository da remoto.
Oltre ai client citati, esistono anche estensioni per i più noti IDE, quali Eclipse e VisualStudio. In particolare per Visual Studio esiste VisualSVN, prodotto dalla stessa compagnia che produce VisualSVN Server.
Per i fedelissimi della shell, ovviamente è possibile fare tutto da linea di comando.
Un elenco completo dei client di SubVersion è riportato nella home page del progetto stesso. Per il resto di questa guida, utilizzeremo TortoiseSVN, e gli esempi faranno riferimento a questo programma. In ogni caso, i comandi sono comuni a tutti, ed è semplice individuare i comandi equivalenti anche usando un client diverso.