Verschil tussen CVS en SVN

CVS vs SVN

CVS (Concurrent Versions System) en SVN (SubVersioN) zijn twee versiebeheerbestandssystemen die in de volksmond worden gebruikt door teams die samenwerken aan een enkel project. Deze systemen stellen de medewerkers in staat om de veranderingen die worden gemaakt bij te houden en weten wie zich ontwikkelt en of een filiaal moet worden toegepast op de hoofdstam of niet. CVS is de veel oudere van de twee en het was de standaard samenwerkingshulp voor veel mensen. SVN is veel nieuwer en introduceert veel verbeteringen om tegemoet te komen aan de eisen van de meeste mensen.

Waarschijnlijk de grootste verbetering van SVN is de toevoeging van atomaire commits. Atomic commits laten toe dat elke commit volledig of helemaal niet wordt toegepast. Dit kan best handig zijn als de server vastloopt in het midden van een commit. Met SVN kan de commit worden teruggedraaid, terwijl CVS de gedeeltelijke commit niet ongedaan kan maken. Een andere toevoeging is de mogelijkheid om de bestanden in de repository zuiver te hernoemen en te verplaatsen. Bij SVN bevatten de bestanden die zijn hernoemd of verwijderd nog steeds hun revisiegeschiedenis en metagegevens. CVS kan ook geen nieuwe wijzigingen in de parent-repositories doorvoeren, terwijl dit met behulp van sommige tools in SVN kan worden bereikt. Deze functies worden eenvoudigweg niet ondersteund door CVS of waren geen onderdeel van het oorspronkelijke ontwerp en veroorzaken vaak veel problemen voor sommige mensen.

In termen van toegang tot beide via een netwerk, ondersteunen beide eigen protocollen die kunnen worden getunneld via een SSH-verbinding om de beveiliging van de informatie die wordt verzonden over het netwerk te verzekeren. SVN voegt een beetje meer toe met WebDAV + DeltaV. Dit protocol is gebaseerd op HTTP en HTTPS en biedt gebruikers een andere optie om verbinding te maken met de SVN.

Voor de meeste mensen die net met SVN en CVS beginnen, is SVN de superieure en logische optie tussen beide. Het biedt de gebruiker de juiste functieset om aan zijn behoeften te voldoen. De enige reden om CVS te blijven gebruiken, is als je vastzit aan een verouderd systeem dat vrij moeilijk te verplaatsen is naar een SVN-systeem.

Samenvatting:
1. SVN is nieuwer en geavanceerder in vergelijking met de veel oudere CVS
2. SVN staat atomaire commits toe terwijl CVS dat niet doet
3. SVN staat hernoemen en verplaatsen toe terwijl CVS dat niet doet
4. Met SVN kunnen wijzigingen in parent-repositories worden gepropageerd terwijl CVS dat niet doet
5. SVN ondersteunt twee netwerkprotocollen terwijl CVS er maar één ondersteunt