Subversion è un software open source per il controllo della versione. Utilizzando Subversion è possibile registrare la storia del codice sorgente e dei documenti. È in grado di gestire l'evolversi di file e directory nel tempo. Nel repository centrale viene posizionato un albero di tutti i file. Il repository è come un server di file, tranne per il fatto che si ricorda qualsiasi cambiamento apportato.
Per accedere al repository di Subversion utilizzando il protocollo HTTP, è necessario installare e configurare un server web. Apache2 funziona molto bene con Subversion. Fare riferimento alla sottosezione HTTP della sezione Apache2 per installare e configurare un certificato digitale.
Per installare Subversion, in un terminale, digitare:
sudo apt-get install subversion libapache2-svn
I passi seguenti presumono siano stati installati i pacchetti elencati precedentemente. Questa sezione descrive come creare un repository con Subversion e accedere al progetto.
È possibile accedere ai repository di Subversion in molti modi, dal disco locale o attraverso diversi protocolli di rete. La posizione di un repository è comunque sempre un URL. La tabella seguente descrive come i diversi schemi URL corrispondano ai metodi di accesso disponibili.
Tabella 13.1. Metodi di accesso
Schema |
Metodo di accesso |
---|---|
file:// |
Accesso diretto al repository (sul disco locale) |
http:// |
Accesso attraverso il protocollo WebDAV al server web Apache2 di Subversion |
https:// |
Come http://, ma con cifratura SSL |
svn:// |
Accesso attraverso un protocollo personalizzato a un server svnserve |
svn+ssh:// |
Come svn://, ma attraverso un tunnel SSH |
In questa sezione viene descritto come configurare Subversion per tutti questi metodi. Saranno descritti solo gli elementi basilari. Per maggiori informazioni, fare riferimento al libro di svn.
Questo è il metodo di accesso più semplice. Non necessita di alcun server di Subversion in esecuzione e serve per accedere a Subversion dalla stessa macchina in cui è in esecuzione. La sintassi del comando è la seguente:
svn co file:///percorso/del/repository/progetto
o
svn co file://localhost/percorso/del/repository/progetto
![]() |
|
Se non viene specificato l'host, è necessario utilizzare tre slash (///), due per il protocollo (in questo caso file) e uno è lo slash iniziale del percorso. Se viene specificato l'host, utilizzare due slash (//). |
I permessi di accesso al repository dipendono dai permessi impostati nel file system. Se l'utente possiede i permessi di scrittura e lettura, allora potrà eseguire checkout e commit al repository.
Per accedere al repository di Subversion utilizzando il protocollo WebDAV, è necessario configurare il server web Apache2. Aggiungere quanto segue al file /etc/apache2/apache2.conf
:
<Location /svn> DAV svn SVNPath /path/to/repos AuthType Basic AuthName "Your repository name" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
È quindi necessario creare il file /etc/subversion/passwd
. Questo file contiene le informazioni per l'autenticazione dell'utente. Per aggiungere una voce, per esempio per aggiungere un utente, è possibile utilizzare il seguente comando:
htpasswd2 /etc/subversion/passwd user_name
Verrà richiesta la password. Una volta inserita, l'utente viene aggiunto al file. Ora, per accedere al repository, digitare:
svn co http://servername/svn
![]() |
|
La password viene trasmessa come testo in chiaro. Per evitare attacchi di tipo password snooping, è necessario utilizzare la cifratura SSL. Per maggiori informazioni fare riferimento alla sezione seguente. |
L'accesso al repository di Subversion attraverso il protocollo WebDAV con cifratura SSL (https://) è simile a http:// tranne per il fatto che è necessario installare e configurare un certificato digitale per il server Apache2.
È possibile installare un certificato digitale emesso da un'autorità di certificazione come Verisign oppure è possibile installare i propri certificati auto-firmati.
I passi seguenti hanno come presupposto l'installazione di un certificato digitale all'interno del server web Apache2. Per accedere a un repository Subversion, fare riferimento alla sezione precedente. I metodi di accesso sono esattamente gli stessi tranne per il protocollo, in quanto è necessario utilizzare https://.
Una volta creato il repository è possibile configurare il controllo degli accessi modificando il file /path/to/repos/project/conf/svnserve.conf
. Per esempio, per impostare l'autenticazione, togliere i commenti alle seguenti righe presenti nel file di configurazione:
# [general] # password-db = passwd
Dopo aver tolto i commenti alle righe precedenti, è possibile gestire la lista degli utenti nel file passwd. Modificare il file passwd
presente nella directory e inserire il nuovo utente. La sintassi da usare è la seguente:
username = password
Per maggiori informazioni fare riferimento al file.
Per accedere a Subversion attraverso il protocollo svn://, sia dalla stessa macchina sia da un'altra macchina, avviare svnserver utilizzando il comando svnserve. La sintassi è la seguente:
$ svnserve -d --foreground -r /percorso/al/repository # -d -- daemon mode # --foreground -- run in foreground (useful for debugging) # -r -- root of directory to serve Per ulteriori dettagli sull'utilizzo fare riferimento a: $ svnserve --help
Una volta eseguito questo comando, Subversion si mette in ascolto sulla porta predefinita (3690). Per accedere al repository del progetto, è necessario eseguire, da un terminale, il seguente comando:
svn co svn://hostname/project project --username nome_utente
In base alla configurazione del server, verrà richiesta la password. Una volta autenticati, viene eseguito il check out del codice dal repository di Subversion. Per sincronizzare il repository del progetto con la copia locale, è possibile eseguire il comando update. La sintassi del comando è la seguente:
cd directory_del_progetto ; svn update
Per maggiori informazioni sui sotto comandi di Subversion fare riferimento al manuale. Per esempio, per informazioni sul comando co (checkout), al prompt dei comandi digitare:
svn co help
La configurazione e le procedure sono le medesime del metodo svn:// . Per i dettagli consultare la sezione precedente. Questo passaggio prevede che sia stata seguita la procedura precedente e il server Subversion sia stato avviato con il comando svnserve.
Si suppone che il server ssh sia in esecuzione sulla macchina e che accetti connessioni in entrata. Per una conferma, provare a collegarsi alla macchina attraverso SSH. Se il login viene eseguito, tutto è configurato. In caso contrario configurare SSH.
Il protocollo svn+ssh:// è utilizzato per accedere al repository di Subversion usando la cifratura SSL. I dati che vengono trasmessi sono cifrati con questo metodo. Per accedere al repository del progetto (per esempio attraverso un checkout), utilizzare, con il comando, la sintassi seguente:
svn co svn+ssh://hostname/var/svn/repos/project
![]() |
|
È necessario utilizzare il percorso completo (/path/al/repository/progetto) per accedere al repository di Subversion utilizzando questo metodo di accesso. |
In base alla configurazione del server, viene richiesta la password. Utilizzare la password per il login con SSH. Una volta autenticati, viene eseguito il checkout del codice dal repository di Subverison.