Differenze tra GIT e SVN: quale scegliere per collaborare al meglio?

Oggi vediamo quali sono le differenze tra GIT e SVN due tra i maggiori sistemi di version control, ideali per collaborare con altri membri del team.

Che cos’è un sistema di version control?

Quando si deve lavorare in un team o gestire il lavoro di più persone (sopratutto se lavorano in remoto) nasce ben presto l’esigenza di “tracciare” e di avere l’ultima “working copy” ovvero la copia contenente tutte le modifiche effettuate dai vari collaboratori dall’inizio del progetto ad oggi. Senza un sistema di version control bisognerebbe spendere tempo prezioso a farsi dare gli ultimi file modificati interpellando uno ad uno tutti i membri del team. Oltre a fornire i file modificati i membri del team dovrebbero anche rilasciare un changelog con tutte le modifiche effettuate. Pensate se ogni membro di un team di 4 persone facesse un processo di questo tipo… si perderebbe come minimo una mattinata per “fare il punto” della situazione e poter iniziare a lavorare. In generale potremmo riassumere le esigenze in questa frase:

“Chi ha fatto cosa – quando  – perchè”

Come fare per evitare inutili perdite di tempo? per fortuna ci vengono in aiuto i sistemi di version control (ovvero controllo di versione). Ne esistono svariati, il primo e più famoso in ambito “senior” è SVN. Il primo perchè è il migliore? assolutamente no, semplicemente perchè è il più anziano. Fra “le nuove leve” possiamo annoverare sicuramente GIT, il vero e proprio rivale di SVN. In cosa si differenziano i due sistemi?

Differenze tra GIT e SVN

Git viene definito come sistema distribuito, mentre svn è detto sistema centralizzato. In pratica questo significa che in un sistema GIT tutti gli utenti hanno la loro copia personale di codice in locale che possono mettere online in un repository per renderla fruibile ad altri membri del team. In SVN invece Ciascun membro ha una working copy e le modifiche sono inviate a un server centrale (central repository) che di volta in volta “cede” i cambiamenti agli altri membri del team.

In GIT il “master” ovvero il flusso principale di codice è in locale e non in un server centralizzato remoto come accade in SVN. In pratica questo si traduce in maggiore velocità, in quanto si lavora essenzialmente in locale e si invia online la working copy solo quando siamo soddisfatti delle modifiche. In SVN invece operazioni anche basilari, necessitano di una connessione al server centrale.

Per quanto concerne la semplicità d’uso GIT vince a mani basse, in quanto tutte le operazioni (in particolare quelle di marging ) sono estremamente semplici. Oltre a questo i puristi apprezzeranno il fatto che GIT crea copie molto più leggere di SVN. Quest’ultimo infatti crea ben 2 copie di ciascun file: una copia usata dall’utente e una copia nascosta per operazioni come status, diff e commit.

Migliori piattaforme per hostare il codice GIT

Se lavorate in un team avrete la necessità di rendere fruibili le working copy anche online, permettendo agli altri membri di scaricare l’ultima working copy con tutte le modifiche che avete effettuato. Esistono diverse piattaforme, ecco le principali FREE.

  • github: ideale per creare progetti open source o collaborativi, il codice è visibile al pubblico e può essere modificato da chiunque.
  • bitbucket : ideale per progetti “privati” che non volete far conoscere al pubblico. Permette di aggiungere fino a 5 membri del team nella versione FREE. Repository ILLIMITATI. Consigliatissimo.

Conclusioni

Per quanto mi riguarda GIT esce vincitore assoluto da questa sfida, un ottimo strumento sia che lavoriate in team, sia da soli, in quanto permette di tenere traccia comunque di tutte le versioni di codice di un progetto senza impazzire. Uno strumento indispensabile insomma, che chi lavora in ambito web (e non solo) dovrebbe saper usare.

Nel prossimo articolo vedremo come impostare la prima repository online e i comandi essenziali di GIT per gestire al meglio il version control dei vostri progetti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

jquery-barra-ad-espansione-hover-del-mouse
Up Next:

jQuery: barra ad espansione all'hover del mouse

jQuery: barra ad espansione all'hover del mouse