Il Concurrent Versions System (CVS), conosciuto anche come Concurrent Versioning System, è un sistema software, divenuto popolare nel mondo del software libero e distribuito sotto la GNU General Public License, che implementa un sistema di controllo versione.

Il programma mantiene al corrente tutto il lavoro e i cambiamenti operati in un insieme di file, tipicamente l'implementazione di un software in via di sviluppo, permettendo dunque a molti sviluppatori (potenzialmente distanti) di collaborare in team allo sviluppo del codice sorgente accedendo alle medesime risorse disponibili in maniera concorrente ovvero senza creare conflitti nelle modifiche allo stesso software.

Storia

CVS venne sviluppato da un sistema di controllo versioni chiamato Revision Control System (RCS), ancora in uso, il quale gestisce file individuali ma non l'intero progetto. Dick Grune ha fornito alcune note storiche sul CVS sul suo sito:

Il codice fu pubblicamente distribuito sul newsgroup mod.sources il 23 giugno 1986. Si può ancora vedere il post originale su usenet su Google Groups.

Il codice che finalmente si è evoluto nella versione corrente del CVS iniziata con Brian Berliner nell'aprile 1989, più tardi con l'input di Jeff Polk e molti altri contributori. Brian Berliner scrisse una pagina web che introduce i suoi miglioramenti nel programma CVS il quale descrive come lo strumento fosse esteso e utilizzato internamente da Prisma, uno sviluppatore free lance che lavorava sul kernel di SunOS, e venne distribuito a favore della comunità sotto GPL.[2]

Oggigiorno, un gruppo di volontari gestisce il codice di CVS. Lo sviluppo della versione di CVS per Microsoft Windows si è scisso in un progetto chiamato CVSNT ed è stato considerevolmente più attivo nell'estendere l'insieme delle funzioni del sistema, tanto da effettuare il porting di queste modifiche sulla piattaforma UNIX sotto il nome di CVSNT.

La relazione tra il CVS e il progetto GNU può apparire in qualche modo ambigua: il sito di GNU distribuisce il programma, identificandolo come "GNU package" (pacchetto GNU) su una pagina e "other GPL-licensed project" (altri progetti con licenza GPL) su un'altra. Sul sito FTP, il programma risiede nella directory /non-gnu/.

Un certo numero di sviluppatori chiave che hanno lavorato sul CVS sono ora responsabili del progetto SVN (Subversion), distribuito nella prima metà del 2004, e che mira a sostituire CVS per superare alcune sue limitazioni.