Concurrent Versions System (CVS) används av mjukvaruutvecklare för att hålla reda på utvecklingsprocessen. Många programvaruprojekt, särskilt inom området för öppen källkodsutveckling, kräver att utvecklare i olika delar av världen samarbetar för att skapa och underhålla programvara. Även känt som Concurrent Versioning System, är CVS en metod som används för att säkerställa att varje utvecklare kan hålla reda på ändringar som görs i programvaran.
Mjukvaruutveckling är en rigorös process. Arbetet bakom kulisserna som går till att skapa mjukvaruapplikationer involverar ofta timmars arbete med att lösa ”programvarubuggar” eller fel i programmet som orsakar oavsiktliga resultat. Genom att använda ett Concurrent Versions System kan utvecklare inte bara hålla reda på alla ändringar som görs i applikationen, de kan också ”rulla tillbaka” dessa ändringar om problem uppstår. Detta hjälper till att minimera tiden det tar att utveckla programvaran.
De flesta typer av system för samtidiga versioner fungerar genom att ha en central server som lagrar programmeringskoden och dokumentationen. Klienter kan ansluta till den här servern för att begära en kopia av koden eller dokumentationen, utföra revisioner på den och sedan ladda upp den tillbaka till servern. Servern kommer sedan att lagra de nya ändringarna utan att radera den tidigare kopian. Detta är hur ett CVS kan säkerställa att mjukvaruutvecklare kan ångra alla ändringar som görs i programmeringen eller dokumentationen.
Detta system gör det också möjligt för CVS att hjälpa mjukvaruutvecklare att skapa och underhålla mjukvarudokumentation för deras applikationer. Genom att ha ett system med samtidiga versioner kan utvecklare hålla reda på alla ändringar och tillägg som gjorts i ett program sedan den senaste utgåvan. Detta gör att dokumentationsskribenter kan lägga till beskrivningar av de nya funktionerna till befintlig dokumentation istället för att kräva att de skriver ny dokumentation från grunden. Detta kan avsevärt minska produktionstiden och kostnaden för mjukvarudokumentation.
I takt med att utvecklingen av öppen källkod har ökat, har också betydelsen av CVS i programmeringsvärlden ökat. Traditionella mjukvaruutvecklingsteam har i allmänhet varit placerade inom ett litet geografiskt område på ett slutet system. Utveckling med öppen källkod, å andra sidan, innehåller ofta programvaruprogrammerare från hela världen som samarbetar i ett enda projekt. Utan ett system som CVS skulle utveckling med öppen källkod vara opraktisk.
Även om Concurrent Versions System såg sin uppgång genom öppen källkodsutveckling, är dess tillämpningar inom andra affärsområden omätliga. Juridikområdet har ofta hållit koll på förändringar, vilket gör CVS användbart för juridiska tillämpningar. Oavsett hur det används, har fördelarna med Concurrent Versions System blivit ganska uppenbara sedan det utvecklades.