Differenza tra CVS e SVN

CVS vs SVN

CVS (Concurrent Versions System) e SVN (SubVersioN) sono due file system di controllo della versione che vengono comunemente utilizzati dai team che collaborano su un singolo progetto. Questi sistemi consentono ai collaboratori di tenere traccia delle modifiche apportate e sapere chi si sta sviluppando e se un ramo deve essere applicato o meno al tronco principale. CVS è il più vecchio dei due ed è stato lo strumento di collaborazione standard per molte persone. SVN è molto più recente e introduce molti miglioramenti per soddisfare le richieste della maggior parte delle persone.

Probabilmente il più grande miglioramento di SVN è l'aggiunta di commit atomici. I commit atomici consentono a ciascun commit di essere applicato per intero o del tutto. Questo può essere abbastanza utile quando il server si blocca nel mezzo di un commit. Con SVN, è possibile eseguire il rollback del commit mentre CVS non è in grado di annullare il commit parziale. Un'altra aggiunta è la possibilità di rinominare e spostare in modo pulito i file nel repository. Con SVN i file che sono stati rinominati o rimossi conservano ancora la cronologia delle revisioni e i metadati. CVS non è inoltre in grado di inviare nuove modifiche ai repository principali mentre è possibile ottenerle in SVN con l'uso di alcuni strumenti. Queste funzionalità semplicemente non sono supportate da CVS o non facevano parte del suo design iniziale e spesso causano molti problemi per alcune persone.

In termini di accesso a entrambi tramite una rete, entrambi supportano protocolli proprietari che possono essere canalizzati attraverso una connessione SSH per garantire la sicurezza delle informazioni che vengono trasmesse attraverso la rete. SVN aggiunge qualcosa in più con WebDAV + DeltaV. Questo protocollo è basato su HTTP e HTTPS e offre agli utenti un'altra opzione per connettersi a SVN.

Per la maggior parte delle persone che stanno appena iniziando con SVN e CVS, SVN è l'opzione superiore e logica tra i due. Fornisce all'utente le giuste caratteristiche per soddisfare le sue esigenze. L'unica ragione per continuare a utilizzare CVS è se sei bloccato con un sistema legacy che è piuttosto difficile da spostare in un sistema SVN.

Sommario:
1. SVN è più recente e avanzato rispetto al CVS più vecchio
2. SVN consente il commit atomico mentre CVS no
3. SVN consente di rinominare e spostare mentre CVS no
4. SVN consente di propagare le modifiche ai repository principali mentre CVS no
5. SVN supporta due protocolli di rete mentre CVS ne supporta solo uno