Usare Git con Dropbox

Lavorando con Git si può sentire l’esigenza di un repository privato e condiviso tra diversi computer. Se non volete spendere soldi GitHub non è un’opzione dato che i suoi repo privati sono a pagamento. L’alternativa naturale è BitBucket, che da qualche tempo supporta Git e consente la creazione gratuita di repository privati.

Usare Dropbox come repository Git remoto

Recentemente, più che altro per curiosità, ho giocato con una terza opzione: Dropbox. Per me Dropbox è uno strumento indispensabile sia per il lavoro che per le mie cose personali. Su qualunque computer io sia, ovunque mi trovi, grazie a Dropbox ho accesso al mio materiale. Dunque, mi son detto, perché non usarlo anche per il codice,  pur senza rinunciare al controllo versione offerto da Git?

Dropbox

Ebbene ho scoperto che non solo è possibile, è anche molto semplice. In realtà non c’è nulla di nuovo in quel che vi mostro, la ‘magia’ la fa tutta Dropbox.

Creare un Git repository ‘remoto’ su Drobox

Se siete su Linux o Mac aprite una finestra terminale; su Windows aprite semplicemente Git Bash. Se avete una installazione predefinita la cartella Dropbox si trova nella HOME di Linux e Mac, oppure nella Documenti di Windows.

Spostatevi nella cartella Dropbox:

cd ~
cd Dropbox

Una volta entrati in ~/Dropbox create un ‘bare’ repository:

mkdir progetto1
cd progetto1
git --bare init

Il nostro repository privato, l’equivalente di un repo remoto alla GitHub per capirci, è pronto. Lo useremo per tenere sincronizzati i nostri computer. Naturalmente appoggiarci a Dropbox ci garantisce anche la possibilità di ricorrere a un restore di emergenza nel caso il codice venga perduto localmente.

Creare il Git repository locale

Su ognuno dei computer creiamo il repository locale:

cd ~
mkdir progetto1
cd progetto1
git init

Lavoriamo un po’, quindi facciamo la nostra commit locale:

touch testo1.txt testo2.txt test.py
echo "aggiungo del testo a testo" > testo1.txt

git add *
git commit -m 'commit iniziale'

Ora colleghiamo il repo “remoto” (quello in Dropbox) al nostro repository locale:

git remote add origin ~/Dropbox/progetto1

Ora possiamo fare il push verso il remoto dei files locali. Dal branch [cci lang=”bash” theme=”default”]master[/cci] verso [cci lang=”bash” theme=”default”]origin[/cci]:

git push origin master

Fatto! Possiamo simulare facilmente il lavoro su un’altro computer. Basta clonare [cci lang=”bash” theme=”default”]progetto[/cci] dal ‘remoto’, cambiare qualche file e salvarlo:

cd ~
git clone ~/Dropbox/progetto1 test_clone
cd test_clone
ls > testo2.txt
git commit testo2.txt -m 'qualche modifica'
git push origin master

Torniamo ora al folder locale originale. Possiamo sincronizzarlo e aggiornarlo con le modifiche fatte sul “secondo computer”:

cd ~
cd progetto1
git pull origin master

Il versioning di Dropbox

Dropbox è dotato di un proprio sistema di versioning, pertanto aggiungere Git potrebbe sembrare superfluo. Qualunque sviluppatore avvezzo a Git vi dirà che non è così. Il versioning di Dropbox è adatto a file di testo, fogli di calcolo, immagini e quant’altro ma non ha niente a che vedere con le capacità di manutenzione e gestione dei progetti offerte da Git.

Git e Dropbox per gruppi di lavoro?

E’ sufficiente condividere il folder Dropbox con altre persone per creare un ambiente di sviluppo privato ma condiviso col proprio gruppo di lavoro. In quest’ultimo caso la probabilità di conflitti aumenta notevolmente. Si tratta di una soluzione forse interessante per mini-team di 2 o 3 persone nei quali è relativamente facile evitare la generazione di conflitti (evitare le push contemporanee).

Concludendo

BitBucket o GitHub (a pagamento) rimangono la soluzione ideale, e offrono molte funzionalità comunque assenti in Git+Dropbox (interfaccia web, wiki, issues, eccetera). Per piccoli progetti personali Dropbox offre una alternativa a buon mercato, rapida e comoda.

PS: se create un account Dropbox dal link dell’articolo, oppure da questo, ricevete 500BMB extra (e altrettanti ne otterrà il sottoscritto)!