Concetti base e introduzione al controllo di versione (version control). Concetti e comandi base di Git.
Corso di “Piattaforme Digitali per la Gestione del Territorio” presso l'Università di Urbino “Carlo Bo”, Anno Accademico 2017–2018.
Margaret Hamilton, sistema operativo del Moon Lander Apollo 11
Source control „fisico“ in dipartimento del codice sorgente
Bell Labs, Marc Rochkind 1972, SCCS
Revision Control System, link simbolici su mainframe, molta gente lavora su stessi file
Concurrent Version Control, 1986: lavorare su PIÙ file insieme, unico sistema di gestione
Dick Grune: più lavoratori con orari diversi – il sistema effettua merge dei file di più persone (problema rimane: locking)
Arriva TCP/IP
CVS (e Subversion) diventano utilizzabili anche tramite TCP/IP: repository remota, con più lavoratori sulla propria workstation
Cambio “sociale”: SourceForge
Primo hosting online per progetti (open-source)
CVS, Subversion, poi Mercurial e Git
Github dell’epoca
2005: stesso anno, GNU Bazaar, Mercurial, Git.
Source control diventa distribuito: macchina locale ha copia totale di tutta la storia.
Lavorare, branching, merging: tutto avviene in locale, non c’è una sorgente “autorevole”.
Coding diventa “sociale”: piattaforma di collaborazione, basata su Git.
Prima le piccolo modifiche ad altri progetti rimanevano locali, dei propri autori.
Ora è più facile farli online: fork, pull request, commenti, editing del codice nel browser…
Branch: «filone» di lavoro. «Etichetta» che identifica/punta ad un commit in particolare. Alias dell’ID univoco del commit.
Branch: «filone» di lavoro. «Etichetta» che identifica/punta ad un commit in particolare. Alias dell’ID univoco del commit.