Razlika med CVS in SVN

CVS proti SVN

CVS (sistem sočasnih različic) in SVN (SubVersioN) sta dva datotečna sistema za nadzor različic, ki ju popularno uporabljajo ekipe, ki sodelujejo pri enem projektu. Ti sistemi omogočajo sodelavcem, da spremljajo nastale spremembe in vedo, kdo se razvija in ali naj se veja uporabi na glavno deblo ali ne. CVS je veliko starejši od obeh in je bil standardno orodje za sodelovanje pri mnogih ljudeh. SVN je veliko novejši in uvaja veliko izboljšav za reševanje potreb večine ljudi.

Verjetno je največje izboljšanje SVN dodajanje atomskih zavez. Atomske zaveze omogočajo, da se vsaka zaveza uporablja v celoti ali pa sploh ni. To je lahko zelo koristno, ko se strežnik zruši sredi zaveze. S SVN je mogoče zavezo vrniti, medtem ko CVS ne more razveljaviti delne potrditve. Drug dodatek je možnost čistega preimenovanja in premikanja datotek v skladišču. S SVN datoteke, ki so bile preimenovane ali odstranjene, še vedno vsebujejo svojo zgodovino in metapodatke. CVS prav tako ne more pritisniti nobenih novih sprememb v nadrejenih skladiščih, medtem ko jih je mogoče v SVN doseči z uporabo nekaterih orodij. Teh lastnosti preprosto ne podpira CVS ali niso bile del njegove prvotne zasnove in pogosto povzročajo veliko težav nekaterim ljudem.

V smislu dostopa do omrežja bodisi oba podpirata lastniške protokole, ki jih je mogoče tunelizirati prek SSH povezave, da se zagotovi varnost informacij, ki se prenašajo po omrežju. SVN z WebDAV + DeltaV dodaja malo več. Ta protokol temelji na HTTP in HTTPS in uporabnikom ponuja še eno možnost za povezavo z SVN.

Za večino ljudi, ki šele začnejo s SVN in CVS, je SVN najboljša in logična možnost med tema dvema. Uporabniku ponuja pravilno nastavljeno funkcijo, ki ustreza njegovim potrebam. Edini razlog, da še naprej uporabljate CVS, je, če se zataknete za zapuščenim sistemom, ki ga je težko premakniti na sistem SVN.

Povzetek:
1. SVN je v primerjavi s precej starejšimi CVS novejši in naprednejši
2. SVN omogoča atomsko zavezo, CVS pa ne
3. SVN omogoča preimenovanje in premikanje, medtem ko CVS ne
4. SVN omogoča razširjanje sprememb v nadrejenih skladiščih, medtem ko CVS ne
5. SVN podpira dva omrežna protokola, medtem ko CVS podpira samo enega