Abbiamo fin’ora visto come creare un file repository locale. Questo file però può essere visto solo all’interno della Lan stessa e non ovviamente da utenti su reti diverse.
Per ovviare a questa problematica è possibile/necessario esportare il nostro repository attraverso il protocollo http/https. Per mettere in rete il nostro repository abbiamo bisogno principalemente di 3 componenti presenti in 2 pacchetti.
In primis abbiamo bisogno ovviamente di un server web (nel nostro caso Apache httpd 2.0), del modulo mod_dav che è presente con esso e del modulo mod_dav_svn disponibile con il pacchetto subversion. Accertarsi dunque di avere all’interno del file di configurazione di subversion il caricamento del modulo mod_dav_svn e quindi della riga di codice seguente.
In Fedora il file “subversion.conf” è presente sotto la directory “/etc/httpd/conf.d/”:
LoadModule dav_svn_module modules/mod_dav_svn.so
Allo stesso modo verificare che all’interno del file “httpd.conf” (in Fedora presente nella directory “/etc/httpd/conf/”) sia presente il caricamento del modulo mod_dav.
LoadModule dav_module modules/mod_dav.so.
N.B Diversi manuali consigliano di caricare entrambi i moduli in quest’ultimo file di configurazione. Ciò è ovviamente opzionale in quanto se tale modulo verrà inserito in entrambi i file di configurazione al momento dello start del server comparirà il seguente messaggio di warning:
Starting httpd: [Mon Aug 27 15:23:54 2007] [warn] module dav_svn_module is already loaded, skipping [ OK ]
Una volta caricati i moduli sopraindicati occorre inserire, sempre all’interno del file di configurazione “http.conf”, il riferimento (location) del repository svn.
Per far ciò occorre inserire il seguente:
XML DAV svn SVNParentPath /srv/svn/repository/ AuthType Basic AuthName “Subversion repository” AuthUserFile /srv/svn-auth-file
Salviamo il file di configurazione e riavviamo il server http con il comando:
# service httpd restart
A questo punto per testare la nostra nuova configurazione apriamo il browser e digitiamo l’url http://localhost/svn/mio_repository.
N.B “localhost” viene utilizzato in fase di test per raggiungere il servizio (anche se sulla stessa macchina) httpd. Per richiamare il repository da altra macchina sarà necessario indicarne l’indirizzo IP del server dove risiede il repository od eventuale alias. Esempio: http://10.0.0.3/svn/mio_repository/
Più repository possono essere visti attraverso httpd, l’importante è che questi risiedano nel ParentPath indicato nella riga XML SVNParentPath, nel nostro caso “/srv/svn/repository/”. Ora è possibile eseguire la nostra copia_locale del progetto anche su macchina remota digitando l’analogo comando di checkout:
# svn checkout http://Ip_Server_Repository/svn/mio_repository /home/copia_locale_mio_repository
Nel prossimo numero inizieremo a scoprire quali sono i comandi principali per la gestione del repository da riga di comando.
LEZIONI PRECEDENTI:
13 Novembre 2007: Realizzazione e configurazione di un server repository SVN (1/6)
di Diego Dagassolemi - TuxJournal.net