SVN su chiavetta per sviluppatori on-the-road

By abell on 2009-01-05-18:39:29 | In svn controllo versioni

Può darsi che, come a me, anche a voi capiti di lavorare in diversi contesti e di sviluppare software su più computer. Avete il PC fisso a casa, il portatile che usate presso i clienti, il computer in ufficio, quello nella casa al mare, uno a casa dei vostri genitori e un mini-laptop che portate nelle scampagnate. Siete consapevoli dell'importanza di un sistema di controllo delle versioni e in ogni momento volete avere accesso al vostro software, perché potrebbe servirvi un pezzo di codice che avete usato in passato o perché vi è venuta in mente come risolvere un bug a cui pensate da due settimane.

Ecco la soluzione che ho trovato qualche anno fa e che, almeno per lo sviluppo individuale, trovo molto comoda:

create un repository subversion su una chiavetta USB formattata FAT.

Su qualsiasi computer siate, Linux o Windows, potete fare un checkout direttamente dalla chiavetta e eseguire poi i commit. La chiavetta contiene il vostro repository centralizzato.

L'accesso avviene tramite uri del tipo

file:///percorso/dir_repository/trunk/project/subdir/file.est

Il vostro client SVN (ad esempio l'ottimo Tortoise SVN sotto Windows) legge direttamente i file dalla chiavetta, occupandosi del locking etc. senza bisogno di server.

Questo approccio ha diversi vantaggi e qualche svantaggio.

Visto che il repository è su un supporto locale, potete lavorare ai vostri progetti anche offline. Inoltre, siete immuni agli attacchi che potrebbe subire un repository accessibile via internet e non dovete preoccuparvi della disponibilità del server o dei capricci dei suoi amministratori. Dovete però ricordarvi di portare con voi la chiavetta e soprattutto di non perderla e non farvela rubare. Per tutelare il vostro patrimonio intellettuale da accessi indiscreti, potete utilizzare dei sistemi di cifratura del repository o di tutta la partizione. In questo caso, anche se la chiavetta finisse in mani sbagliate i dati sarebbero salvi. Questo però comporta qualche scomodità di configurazione in più.

Per quanto riguarda il backup, oltre alle varie versioni di lavoro che disseminate nei vari hard disk, è opportuno che periodicamente facciate una copia dell'intero repository.