CVS vs SVN
CVS (Concurrent Versions System) et SVN (SubVersioN) sont deux systèmes de fichiers de contrôle de version couramment utilisés par les équipes collaborant sur un seul projet. Ces systèmes permettent aux collaborateurs de suivre les modifications apportées et de savoir qui développe quelle branche et si une branche doit être appliquée ou non au tronc principal. CVS est le plus ancien des deux et il a été l’outil de collaboration standard pour beaucoup de gens. SVN est beaucoup plus récent et introduit de nombreuses améliorations pour répondre aux demandes de la plupart des gens..
La plus grande amélioration de SVN est probablement l'ajout de commits atomiques. Atomic commits permet à chaque commit d'être appliqué intégralement ou pas du tout. Cela peut être très utile lorsque le serveur tombe en panne au milieu d’une validation. Avec SVN, la validation peut être annulée alors que CVS ne pouvait pas annuler la validation partielle. Un autre ajout est la possibilité de renommer et de déplacer proprement les fichiers dans le référentiel. Avec SVN, les fichiers qui ont été renommés ou supprimés portent toujours leur historique de révision et leurs métadonnées. CVS est également incapable d’appliquer de nouvelles modifications aux référentiels parents, alors que cela peut être réalisé en SVN avec certains outils. Ces fonctionnalités ne sont tout simplement pas prises en charge par CVS ou ne faisaient pas partie de sa conception initiale et causent souvent beaucoup de problèmes à certaines personnes..
Pour ce qui est d’accéder à l’un ou l’autre via un réseau, les deux prennent en charge des protocoles propriétaires qui peuvent être tunnellisés via une connexion SSH pour assurer la sécurité des informations transmises sur le réseau. SVN ajoute un peu plus avec WebDAV + DeltaV. Ce protocole est basé sur HTTP et HTTPS et offre aux utilisateurs une autre option pour se connecter au SVN..
Pour la plupart des gens qui commencent tout juste avec SVN et CVS, SVN est l'option supérieure et logique entre les deux. Il fournit à l'utilisateur le bon ensemble de fonctionnalités pour répondre à ses besoins. La seule raison de continuer à utiliser CVS est si vous êtes coincé avec un système hérité qui est assez difficile à migrer vers un système SVN.
Résumé:
1. SVN est plus récent et plus avancé que le CVS beaucoup plus ancien
2. SVN autorise les commits atomiques alors que CVS ne
3. SVN permet de renommer et de déplacer tandis que CVS ne
4. SVN permet de propager les modifications aux référentiels parents alors que CVS ne
5. SVN prend en charge deux protocoles de réseau alors que CVS n’en supporte qu’un