66 votes

Quels sont les avantages de l'utilisation de SVN par rapport à CVS ?

Ma société utilise CVS comme norme de facto pour le contrôle des sources. Cependant, j'ai entendu beaucoup de gens dire que SVN est meilleur.

Je sais que SVN est plus récent, mais à part cela, je ne connais pas bien ses avantages.

Ce que je recherche, c'est une bonne et succincte comparaison des deux systèmes, en soulignant les avantages et les inconvénients de chacun dans un environnement de développement Java/Eclipse.

67voto

Vincent Robert Points 16530

CVS ne suit les modifications que fichier par fichier, tandis que SVN suit l'ensemble d'un commit comme une nouvelle révision, ce qui signifie qu'il est plus facile de suivre l'historique de votre projet. Ajoutez à cela le fait que tous les logiciels de contrôle de source modernes utilisent le concept de révision et qu'il est donc beaucoup plus facile de migrer depuis SVN que depuis CVS.

Il y a aussi le problème du commit atomique. Bien que je ne l'aie rencontré qu'une seule fois, il est possible que deux personnes effectuant un commit ensemble dans CVS puissent entrer en conflit, perdre des données et mettre votre client dans un état incohérent. Lorsqu'ils sont détectés à temps, ces problèmes ne sont pas majeurs car vos données sont toujours là quelque part, mais ils peuvent être pénibles dans un environnement stressant.

Et enfin, il n'y a plus beaucoup d'outils développés autour de CVS. Alors que les nouveaux et brillants outils comme Git ou Mercurial manquent définitivement d'outils, SVN a une base d'application assez large sur n'importe quel système.

EDIT 2020 : Sérieusement, cette réponse a 12 ans maintenant. Oubliez SVN, utilisez Git comme tout le monde !

1 votes

Je veux la même réponse pour git contre subversion et git contre mercurial.

3 votes

"Oubliez SVN, utilisez Git" : Je ne pense pas que ce soit une question d'ancien/nouveau ou de combien de personnes l'utilisent, ce sont des choses différentes.

19voto

Michael Stum Points 72046

Une des nombreuses comparaisons :

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Maintenant, c'est très spécifique à ce projet, mais beaucoup de choses s'appliquent en général.

Pro Subversion :

  • Prise en charge des renommages/déplacements par version (impossible avec CVS) : Fingolfin, Ender
  • Supporte nativement les répertoires : Il est possible de les supprimer, et ils sont versionnés : Fingolfin, Ender
  • Les propriétés des fichiers sont classées par version ; plus d'enfer de "bit exécutable" : Fingolfin
  • Le numéro de révision global facilite la création de versions et les tests de régression : Ender, Fingolfin
  • Commits atomiques : Fingolfin
  • Branchement et étiquetage intuitifs (basés sur des répertoires) : Fingolfin
  • Crochet plus facile scripts (pré/post commit, etc) : SumthinWicked (je l'utilise pour Doxygen après les commits)
  • Empêche l'engagement accidentel de fichiers conflictuels : Salty-horse, Fingolfin
  • Prise en charge de la commande "diff" personnalisée : Fingolfin
  • Différences hors ligne, et elles sont instantanées : sev

2 votes

Qu'est-ce qu'un "fingolfin" ? La recherche de ce mot sur Google rend les choses encore plus confuses.

3 votes

Fingolfin et Ender sont juste les noms des personnes de ce forum : Behind each "argument" is a list of people who agree that this particular argument is valid.

15voto

lubos hasko Points 13669

SVN présente 3 avantages principaux par rapport à CVS

  • c'est plus rapide
  • supporte la gestion des versions des fichiers binaires
  • et ajoute un commit transactionnel (tout ou rien)

7voto

Mat Points 2512

Le livre Subversion a une annexe qui détaille les différences importantes avec CVS, ce qui peut vous aider à prendre votre décision. Les deux approches reposent plus ou moins sur la même idée, mais SVN a été spécifiquement conçu pour corriger les défauts de longue date de CVS, de sorte que, en théorie du moins, SVN sera toujours le meilleur choix.

4voto

engtech Points 1594

Une chose à ne pas négliger est l'écosystème. Je travaillais dans un atelier CVSNT, et je constatais que de plus en plus d'outils open source supportaient SubVersion par défaut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X