Setup di Subversion in locale su Mac OS X

Scopriamo come utilizzare Subversion su Mac OS X, per un controllo delle revisioni in locale.

Installare in locale uno strumento per la gestione delle revisioni è una questione che può rivelarsi fondamentale per la produttività ed a volte anche per la propria sanità mentale :)

I vantaggi sono:

  • Sapremo sempre quando abbiamo modificato un file, e quali modifiche abbiamo effettuato
  • Potremo ripristinare una veccha revisione del file
  • Potremo sperimentare soluzioni creando branch del nostro progetto, per eventualmente tornare indietro se le cose non dovessero funzionare come desiderato

Gli svantaggi credo siano rappresentati soltanto dalla interazione con il server del controllo delle revisioni, ma la questione dovrebbe essere risolta con la pratica e l'esperienza.

Esistono molti tipi di strumenti per il controllo delle revisioni. Scelgo Subversion (SVN) perchè è molto diffuso, esistono molti strumenti avanzati per l'interazione con questo sistema ed utilizzato da moltissimi progetti Open Source, tra cui Joomla.

Iniziamo

Scarichiamo il software SVN dal sito ufficiale. Possiamo scaricare i sorgenti e compilarli, oppure scaricare direttamente i file binari (consigliato).

Ho scaricato i binari da http://downloads.open.collab.net/binaries.html.

Una volta scaricato il pacchetto, procediamo all'installazione come fosse un normale software, aprendo il pacchetto Subversion-1.x.x.pkg.

Installazione di Subversion

Installazione di Subversion

Al termine dell'installazione avremo installato nel nostro Mac il server Subversion.

Creiamo il repository

All'interno della nostra home directory creiamo una cartella dove memorizzare i file, chiamata ad esempio Subversion. Apriamo il terminale e digitiamo la stringa:

svnadmin create /Users/flavio/Subversion/

Suppongo abbiate già un progetto per cui iniziare il controllo delle revisioni, ad esempio un sito realizzato in Joomla, posto nella directory MioProgetto di MAMP. Importiamo questo progetto in SVN. Sempre da terminale:

cd /tmp/tmpsvn/
mkdir MioProgetto
mkdir MioProgetto/trunk
mkdir MioProgetto/branches
mkdir MioProgetto/tags
cp -r /Applications/MAMP/htdocs/MioProgetto /tmp/tmpsvn/MioProgetto/trunk/
svn import /tmp/tmpsvn/MioProgetto file:///Users/flavio/Subversion/MioProgetto --message 'Initial MioProgetto Import'

A questo punto abbiamo correttamente creato il repository.

Accediamo alla cartella /Users/flavio/Subversion/conf.

Modifichiamo il file svnserve.conf inserendo le righe

anon-access = none
auth-access = write
password-db = passwd

Modifichiamo il file passwd inserendo un nome utente, seguito da una password di accesso

name = password

Installiamo un client

Esistono una vasta serie di client SVN per Mac. Possiamo usare i client integrati nella varie applicazioni di sviluppo come Aptana Studio, Coda, TextMate, oppure usare client integrati con Finder.

Ho scelto di usare un client dedicato e professionale come Cornerstone, commerciale e disponibile anche in versione di prova gratuita. Un'altra valida alternativa è Versions.

Scarichiamo ed installiamo Cornerstone, quindi apriamolo.

Cornerstone

Cornerstone

Premiamo il pulsante "Add repository".

Setup di Cornerstone

Setup di Cornerstone

Compiliamo i campi come indicato in figura.

Assicuriamoci che il nostro server SVN sia attivato e possa ricevere richieste tramite il protocollo svn:// lanciando il comando

svnserve -d

Premendo il pulsante "Add" in Cornerstone, ci connettiamo al nostro repository.

Cornerstone si è connesso al repository

Cornerstone si è connesso al repository

Procediamo con il checkout

A questo punto entriamo nella cartella trunk e selezioniamo il nostro progetto, quindi premiamo il tasto destro del mouse e selezioniamo la voce "Check Out Working Copy..". Questo consentità di creare una cartella con i contenuti del nostro sito.

Checkout da Cornerstone

Checkout da Cornerstone

Come possiamo vedere, nella sezione "Additional Options" abbiamo la possibilità di scegliere quale revisione selezionare (Revision:).

E' tutto!

Ora ogni qualvolta implementiamo nuove funzionalità nel sito, o in qualsiasi altro progetto, faremo il commit del progetto per salvare le modifiche effettuate in modo che siano registrate e tenute sotto controllo.

Possiamo usare il nostro editor preferito (come Coda) per fare il regolare commit del progetto, ed usare Cornerstone per gestire le revisioni ed avere un chiaro andamento dello sviluppo.