SVN e Git: come si lavora in un team da remoto

Prima della espansione universale di Internet, i programmatori lavoravano nella stessa struttura immobiliare, solitamente un unico palazzo, e potevano facilmente interagire tra loro per via della loro vicinanza fisica. Con l'avvento della rete globale i gruppi di lavoro sono diventati sempre più internazionali e i progetti sono sviluppati da persone che si trovano anche a migliaia di chilometri di distanza tra loro. In questo articolo esaminiamo, in maniera molto generale ma chiara ed esauriente, due diverse piattaforme di collaborazione remota: SVN e Git.

Introduzione

Quando ero un giovane programmatore decisi di sviluppare un software in collaborazione con un collega che abitava a circa 600 chilometri da me. Internet non era ancora diffuso come oggi e i lavori di analisi, codifica, scambio di idee, aggiornamenti ed altro non potevano essere portati avanti comodamente. Discussioni fatte al telefono, con esose bollette telefoniche (prima si pagava l'interurbana) limitavano un po' le varie attività. Gli aggiornamenti erano portati avanti per mezzo di spedizione dei floppy disk attraverso il servizio di posta ordinaria, con tanto di costi di pacco e francobolli e per la logistica delle operazioni più "banali" potevano passare anche parecchie settimane. A volte succedeva che sia io che il collega mettevamo le mani allo stesso codice, senza saperlo, e le modifiche finali, ovviamente, andavano a confondere tutto il listato. Non esisteva, in questo modo, un sincronismo tra i programmatori, e la programmazione del software era molto faticosa e problematica. La sincronizzazione dei files, ultimi aggiornamenti automatici, notifiche e altro sono adesso assicurati da due valide piattaforme: SVN e Git. I programmatori non conoscono più le distanze tra nazioni e il progetto può essere sviluppato come se i componenti di squadra si trovassero vicini tra loro.

Subversion (SVN)

L'SVN è sicuramente il più vetusto ma risulta molto affidabile e stabile. Grazie ad esso il programmatore può avere sotto controllo tutte quelle operazioni che, solitamente, farebbero perder tempo e complicherebbero il lavoro di controllo. Alcuni software e progetti sono così complessi e composti da migliaia di files che sarebbe fisicamente impossibile conoscere tutte le locazioni dei documenti, chi ha effettuato l'ultima modifica, ecc. Il sistema, dunque, permette d effettuare alcune operazioni automaticamente come, ad esempio, comunicare se due o più programmatori stanno eseguendo operazioni che mandano in conflitto il lavoro, oppure tenere il controllo delle modifiche in corso, e altri automatismi fondamentali, imprescindibili quando si lavora in gruppo, specialmente dislocato in modo promiscuo e distante.

Si tratta di un software freeware e opensource. Gestisce i dati e i sorgenti in un server remoto, memorizzati in dei repository (ossia gli archivi centralizzati dei dati). Quando il programmatore accede a tali dati con un client SVN, in realtà essi sono copiati nel proprio hard disk locale (anche se cambia la relativa icona).

Le modifiche dei sorgenti sono quindi effettuate in locale e poi trasferite sul server remoto (commit). Con questa filosofia un singolo file può essere anche revisionato da diversi programmatori. Sarà poi il Subversion a stabilire l'esistenza di eventuali conflitti e a bloccare, casomai, le procedure che hanno procurato l'errore. Il tutto in modo estremamente facile, trasparente e automatico. In pratica il sistema gestisce i dati come un elenco di modifiche ai files, come mostrato in figura 1.

 

Figura 1: Filosofia di SVN.

Figura 1: filosofia di SVN.

 

Il client TortoiseSVN

La parola tortoise, in inglese, [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2375 parole ed è riservato agli abbonati PREMIUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e potrai fare il download (PDF) dell'EOS-Book e Firmware del mese. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

4 Commenti

  1. Giuseppe Silano Giuseppe Silano 2 febbraio 2017
  2. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 2 febbraio 2017
  3. maurisat maurisat 3 febbraio 2017
  4. Giovanni Di Maria Giovanni Di Maria 3 febbraio 2017

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!