Differenza tra CVS e Subversion

CVS vs Subversion

Concurrent Versions System (noto anche come Concurrent Versioning System o CVS) è un sistema di controllo di revisione software gratuito, ovvero, è un programma aperto al pubblico che gestisce le modifiche a documenti, programmi e altre informazioni memorizzate nel computer File). Permette a più sviluppatori di collaborare.

Subversion (noto anche come SVN) è un sistema di controllo delle versioni utilizzato per mantenere le versioni correnti e precedenti dei file (come codice sorgente, pagine Web e documentazione). È un aggiornamento diretto di CVS e del suo successore più compatibile. È anche una tecnologia open source ed è stata ampiamente utilizzata in più progetti, come Apache Software Foundation, Free Pascal, MediaWiki e il codice Google.

CVS utilizza l'architettura client-server: significa che un server memorizza una versione corrente (o versioni) di un particolare progetto e ne salva la cronologia. Il client quindi si connette al server come mezzo per "estrarre" una copia del progetto che è stata completata prima della sua connessione al server. Il cliente è quindi in grado di lavorare su questa copia del progetto e quindi controllare le modifiche che ha apportato in seguito. Oltre a consentire a un cliente di effettuare il check-in su una copia di un determinato progetto, CVS consente a più client di lavorare contemporaneamente e di effettuare il check-in sullo stesso progetto. I client saranno in grado di modificare i file all'interno della propria copia di lavoro del progetto e inviare queste modifiche al server.

Subversion commits -that is, crea una serie di modifiche provvisorie e le rende permanenti- come operazioni atomiche (o una serie di operazioni di dati in cui tutto avviene o nulla accade). Subversion consente inoltre agli utenti di rinominare, copiare, spostare e / o rimuovere file; tuttavia, tali file manterranno la loro cronologia completa delle revisioni. Questo sistema utilizza l'output parsable, la progettazione nativa della libreria a livello di client / server e la ramificazione e la codifica come operazioni a basso costo (indipendentemente dalla dimensione del file). Esistono collegamenti linguistici per PHP, Python, Perl e Java. Subversion costa anche in base alle dimensioni del cambiamento e non alle dimensioni dei dati.

CVS può mantenere diversi rami di un progetto - vale a dire, aspetti diversi o permutazioni dello stesso progetto possono staccarsi dal progetto di origine e CVS manterrà tutte le versioni (una versione rilasciata del progetto costituisce un ramo per correzioni di bug, mentre una versione diversa che è attualmente in fase di sviluppo può contenere nuove funzionalità e modifiche importanti e formare un ramo dello stesso progetto, ad esempio).

Sommario:
1. CVS consente a più utenti di collaborare allo stesso progetto; Subversion mantiene le versioni correnti e precedenti dei file.
2. CVS consente agli utenti di effettuare il check-in sullo stesso progetto e modificarlo; Subversion commette come vere operazioni atomiche.
3. CVS può mantenere diversi rami di un progetto; Subversion usa un output parsabile.