Subversion ( SVN ) og Concurrent Versions System ( CVS ) er to av de mest kjente og mest brukte versjonen styringssystemer som brukes til å håndtere de hundrevis av dokumenter som finnes i den typiske programmering prosjektet. Begge , på sin egen måte , la et helt team av programmerere til å jobbe med de samme filene samtidig minimere tid og krefter det tar å flette forandringer , men de er mye annerledes i hvordan de fungerer. Lagringsformat
CVS lagrer alle filene i prosjektet i en forgrening sett med mapper på filsystemet . På den annen side lagrer SVN dens filer i en database: enten BerkleyDB eller FSFS . Dette gjør CVS tregere enn SVN , men det gjør det også slik at CVS filer kan hentes i en katastrofe med bare vanlige filbehandler verktøy som Windows Utforsker eller bash shell . SVN databaser kan være skadet, og spesielle verktøy er nødvendig for å hente filer ut av depotet når dette skjer .
Transaksjoner
CVS lagrer prosjekter på en fil -for- fil basis. Dette gjør systemet noe enklere , som programmerer kan sjekke inn og ut enkeltfiler , men det har en ekkel bivirkning . Programmerere pleier ikke å gjøre endringer i én fil . Snarere endringer i én fil krever små modifikasjoner på andre. Med CVS , er det mulig for et nettverk problem å gi noen av de endrede filer skal oppdateres på depotet , potensielt bryte bygge og forårsaker mye forvirring på laget hvis problemet ikke er fanget umiddelbart . SVN begår filer som et prosjekt, og gjør det ved hjelp en "transaksjon "-konseptet : Enten alle endringene er vellykket forpliktet til serveren , eller ingenting er forpliktet
File Types
.
CVS er designet for å håndtere bare med ren tekst data ( som er normalt finnes i kildekoden ) . Men , det er en sjelden programmering program som ikke inneholder minst noen ikke- tekstdata , for eksempel grafiske ikoner , tilpasset musepekere og logoer. CVS kan bli endret for å håndtere ikke- tekst data , men SVN støtter alle filtyper direkte uten annen endring eller tilpasning.
Branches
I CVS , hver fil blir automatisk tildelt sin egen versjon nummer. Når prosjektet er sjekket ut , er den nyeste versjonen av hver fil gitt til programmereren. I SVN , har hele prosjektet en versjon . Selv om filene aldri blir duplisert unødvendig på serveren ( for å spare plass ) , er grensesnittet gis til brukeren at hver begår noensinne laget til serveren er umiddelbart tilgjengelig for dem av versjonsnummer, uten å spesifisere bygge datoer eller tag tall.