Questa settimana, il famoso sistema di controllo delle versioni distribuito GIT compie 10 anni.
Quando si è reso necessario sostituire l’SCM BitKeeper nella gestione dei sorgenti del kernel Linux, chi altro poteva inventarsi un nuovo sistema se non il padre di Linux stesso, Linus Torvalds?
Fu così che, nel giro di un weekend (esatto, un weekend), Linus se ne uscì con questo sistema che, a differenza dei vari sistemi do controllo delle versioni esistenti (quali cvs o svn) è distribuito.
Questo significa che quando si inizia a lavorare su un repository GIT, questo viene dapprima clonato totalmente sulla macchina dalla quale si intende sviluppare, ed i commit delle modifiche vengono fatti direttamente sulla propria copia del repository. E’ compito del sistema infine andare a fare “push” di questi commit direttamente sul repository “master” gestendo il merging delle modifiche.
Questo suo essere distribuito porta una serie di vantaggi, quali l’avere sempre una copia dell’intero progetto, o gestire in maniera decentralizzata il branching (generazione di una versione parallela che introduce grosse modifiche), con tutto l’aiuto possibile in fase di remerge del branch.
Insomma, per chi si trova a lavorare come parte di un team su un macro progetto, GIT non sarà sicuramente l’unica scelta, ma è una delle più interessanti da tenere in considerazione.
Ovviamente, alla comunità, l’idea è piaciuta al punto che sono nate intere aziende che si occupano di effettuare hosting di repository GIT, una delle più famose sicuramente è GitHub.
In occasione del compleanno, linux.com ha rilasciato una intervista al creatore di GIT, Linus Torvalds :
So at some point I decided that I can’t continue using BK, but that I really didn’t want to go back to the bad old pre-BK days. Sadly, at the time, while there were some other SCM’s that kind of tried to get the whole distributed thing, none of them did it remotely well. I had performance requirements that were not even remotely satisfied by what was available, and I also worried about integrity of the code and the whole workflow, so I ended up just deciding to write my own.
(Ad un certo punto ho deciso che non potevo più usare BK, ma davvero non volevo nemmeno ritornare ai brutti giorni pre BK. Tristemente, a quel tempo, sebbene esistessero altri sistemi di versioning nessuno di questi agiva come volevo nell’ambito del controllo remoto. Avevo necessità di performance che non erano minimamente soddisfatte da quanto c’era sul mercato, ed ero inoltre preoccupato dell’integrità del codice oltre che dal suo flusso evolutivo, quindi ho concluso che la cosa migliore fosse scriverne uno per conto mio.)
Speriamo Linus si stufi presto di altri prodotti ed abbia qualche weekend da buttare via 🙂
Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.
Lascia un commento