Come detto, le distribuzioni Linux principali includono Subversion nei propri cataloghi ufficiali, per cui sulla distribuzione Linux Debian 4.0 che userò come riferimento per gli esempi e le spiegazioni durante questa guida, è sufficiente il comando
apt-get install subversion
per avere installati i componenti base. Avendo inoltre già deciso che seguirò la scelta consigliata di pubblicare Subversion via Apache, possiamo aggiungere il comando:
apt-get install libapache2-svn
Grazie all'utilizzo del gestore dei pacchetti apt, verranno automaticamente scaricati gli eventuali pacchetti dipendenti.
Creazione di un repository
L'operazione di creazione di un nuovo repository è molto semplice, basta digitare il comando:
svnadmin create <percorso>
inserendo il percorso dove creare il repository, ad esempio
svnadmin create /var/svn/repository
Questo comando crea la cartella principale in cui verranno salvati tutti i nostri progetti.
Facciamo subito alcune importanti considerazioni sulla posizione e la nomenclatura di ogni repository.
Anzitutto, a seconda del tipo di file, un repository può crescere molto e quindi è bene prevedere lo spazio necessario.
Una buona scelta, sui sistemi UNIX, è quella di collocare il repository in /var
, che oltre a rappresentare l'aderenza allo standard, è utile perchè solitamente nella stessa cartella ci sono i log di sistema nonché vari altri dati che tendono a crescere, e quindi l'amministratore esperto avrà già riservato un po' di spazio in più, e magari anche creato una partizione separata.
Inoltre, potendo creare più di un repository, è pratica comune utilizzare questa possibilità per avere un repository diverso per ogni progetto.
Nel nostro caso, volendo creare un repository specifico per ospitare i vari file HTML che contengono questa guida, il mio comando diventerà:
svnadmin create /var/svn/guidasvn
Attenzione ai permessi sui file! Dopo aver creato il repository, sarà necessario dare all'utente che esegue il server Apache (sempre ipotizzando di aver scelto la pubblicazione via Apache) i permessi di lettura e scrittura su tali cartelle. Presto parleremo anche di come proteggere i nostri dati tramite autenticazione
Cancellazione di un repository
Attenzione a non confondere la cancellazione di uno o più file e cartelle del progetto con la cancellazione dell'intero repository. Se anche il nostro progetto non ci piace più e vogliamo riscrivere tutto da
zero, possiamo comunque usare gli strumenti client per cancellare tutti i file, e poi applicare le modifiche a Subversion, che – coscienziosamente – continuerà a mantenere anche le versioni precedenti. In questo modo, se ci rendiamo conto che qualcosa del vecchio progetto era da salvare, possiamo estrarre una vecchia versione del progetto, magari anche solo per recuperare pochi file.
Se però siamo davvero convinti a cancellare l'intero repository, perchè abbiamo completamente abbandonato il progetto, o l'abbiamo trasportato su un altro server o sistema di controllo di versione, o semplicemente abbiamo fatto dei test seguendo questa guida e ora vogliamo fare pulizia, possiamo cancellare tutto eliminando la cartella che contiene il repository.
Nell'esempio di prima, si tratterebbe di cancellare semplicemente la cartella guidasvn
contenuta in /var/svn
. Infatti tutte le informazioni di versione e di configurazione di ciascun repository sono contenute nel repository stesso.
Nota: chi si occupa di gestire dei server probabilmente lo sa, ma le cancellazioni vanno fatte sempre con cautela. È utile fare sempre prima una copia di backup; assicurarsi di cancellare solo la specifica cartella, e non tutta la cartella /var/svn
e con essa tutti i repository creati. Sempre valido il consiglio di non fare le cose di fretta.