Subversion è un sistema di controllo di versionamento a sorgente aperto che succede a CVS. Le caratteristiche già trattate di CVS si ritrovano generalmente anche in subversion che presenta tutti i vantaggi di CVS senza riproporrne gli svantaggi. Molte delle caratteristiche sono state già trattate nella Sezione 47.1.3, «subversion».
Impostare un repository su un server è un processo davvero semplice. subversion dispone di un proprio tool. Per generare un nuovo repository, immettete:
svnadmin create /percorso/del/repository
Per visualizzare ulteriori opzioni, immettete
svnadmin help. A
differenza di CVS, subversion
non si basa su RCS ma su la banca dati Berkeley. Non
create una repository su file system remoti come NFS, AFS o Windows SMB.
La banca dati richiede dei meccanismi di locking POSIX che i file sytem
menzionati non offrono.
Per visionare il contenuto di un repository, vi è il comando svnlook:
svnlook info /percorso/del/repository
Affinché anche altri utenti possano accedere al repository va
configurato un server; potrà trattarsi di un server Web Apache con
WebDAV o del server di subversion, svnserve. Se svnserve
è in esecuzione si potrà accedere ad una repository tramite L'URL
svn:// o svn+ssh://. Tramite
il file di configurazione /etc/svnserve.conf
potete indicare gli utenti che dovranno autenticarsi se invocano svn.
Rispondere alla domanda quale sistema di versionamento scegliere non è facile, dato che vanno considerati una serie di fattori. Si consiglia di dare un'occhiata al manuale di subversion (per maggiori informazioni, si veda la Sezione 47.5.3, «Ulteriore documentazione»).
Per accedere ad un repository di subversion vi è il comando svn (simile a cvs). Se il server è stato configurato in modo corretto (con relativo repository) il contenuto di ogni client può essere visionato con:
svn list http://svn.example.com/percorso/del/progetto
oppure
svn list svn://svn.example.com/percorso/del/progetto
Con il comando svn checkout
un dato progetto può essere salvato nella directory attuale
(ingl. check out):
svn checkout http://svn./percorso/del/progetto nomeprogetto
Il check out crea una nuova sottodirectory nomeprogetto sul client, in cui poter eseguire
tutta una serie di modiche come aggiungere, copiare, rinominare
e cancellare dei file:
svn add file svn copy vecchiofile nuovofile svn move vecchiofile nuovofile svn delete file
Questi comandi sono applicabili anche a delle directory. Inoltre subversion è in grado di indicare le cosiddette properties, ossia proprietà di un file o di una directory:
svn propset license GPL foo.txt
Nell'esempio precedente è stato impostato il valore GPL per la proprietà license.
Le proprietà si lasciano visualizzare con
svn proplist.
svn proplist --verbose foo.txt Properties on 'foo.txt': license : GPL
Per salvare le modifiche sul server, immettete
svn commit.
Affinché un altro utente possa disporre delle vostre modifiche nella sua
directory di lavoro, dovrà eseguire un
svn update.
A differenza di CVS, lo stato di una directory
di lavoro subversion può essere visualizzato anche
senza accesso al repository con
svn status.
Le modifiche locali vengono visualizzate in cinque colonne, la prima è
quella di maggiore rilevanza:
Nessuna modifica
Oggetto da aggiungere
Oggetto da eliminare
Oggetto modificato
Oggetto in stato di conflitto
Oggetto ignorato
Oggetto non incluso nel controllo di versionamento
Oggetto manca. Questo stato si ha se l'oggetto è stato eliminato o spostato senza ricorrere al comando svn.
Oggetto amministrato come file è stato sostituito da una directory o viceversa.
La seconda colonna indica lo stato delle properties. Tutte le altre colonne vengono illustrate nel manuale di subversion.
Se vi dovesse sfuggire il parametro di un comando, provate con,
svn help:
svn help proplist
proplist (plist, pl): List all properties on files, dirs, or revisions.
usage: 1. proplist [PATH...]
2. proplist --revprop -r REV [URL]
1. Lists versioned props in working copy.
2. Lists unversioned remote props on repos revision.
...
Innazitutto vi è la home page del progetto
subversion che trovate al seguente indirizzo http://subversion.tigris.org/. Se installate il pacchetto
subversion-doc nella
directory file:///usr/share/doc/packages/subversion/html/book.html
sarà a vostra disposizione un manuale in inglese completo che vale davvero la
pena di leggere. Tra l'altro è anche disponibile
online sotto http://svnbook.red-bean.com/svnbook/index.html.