Quels sont les avantages d'utiliser SVN sur CVS?

Mon entreprise 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 ça, je ne suis pas familier avec ses avantages.

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

0

11 Réponses

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

0
ajouté

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:

  • Support for versioned renames/moves (impossible with CVS): Fingolfin, Ender
  • Supports directories natively: It's possible to remove them, and they are versioned: Fingolfin, Ender
  • File properties are versioned; no more "executable bit" hell: Fingolfin
  • Overall revision number makes build versioning and regression testing much easier: Ender, Fingolfin
  • Atomic commits: Fingolfin
  • Intuitive (directory-based) branching and tagging: Fingolfin
  • Easier hook scripts (pre/post commit, etc): SumthinWicked (I use it for Doxygen after commits)
  • Prevents accidental committing of conflicted files: Salty-horse, Fingolfin
  • Support for custom 'diff' command: Fingolfin
  • Offline diffs, and they're instant: sev
0
ajouté
Fingolfin et Ender ne sont que les noms des personnes de ce forum: Derrière chaque "argument" se trouve une liste de personnes qui conviennent que cet argument particulier est valide.
ajouté l'auteur hinneLinks, source
Qu'est-ce qu'un "fingolfin"? Googling ce mot le rend seulement plus confus
ajouté l'auteur DuKes0mE, source

CVS suit uniquement la modification fichier par fichier, tandis que SVN suit un commit entier comme une nouvelle révision, ce qui signifie qu'il est plus facile de suivre l'historique de votre projet. Ajoutez le fait que tous les logiciels de contrôle de sources modernes utilisent le concept de révision, de sorte qu'il est beaucoup plus facile de migrer à partir de SVN que de CVS.

Il y a aussi le problème de la validation atomique. Bien que je ne l'ai rencontré qu'une fois, il est possible que deux personnes engagées ensemble dans CVS puissent entrer en conflit les unes avec les autres, perdre des données et mettre votre client dans un état incohérent. Lorsqu'ils sont détectés tôt, ces problèmes ne sont pas majeurs, car vos données sont toujours là quelque part, mais cela peut être pénible dans un environnement stressant.

Et enfin, peu d'outils sont développés autour de CVS. Alors que les nouveaux outils brillants comme Git ou Mercurial manquent cruellement d'outils, SVN dispose d'une base d'applications relativement importante sur n'importe quel système.

EDIT 2015: Seriously, this answer is 7 years old now. Forget SVN, go use Git like everyone else!

0
ajouté
Je veux la même réponse pour git vs subversion et git vs mercurial
ajouté l'auteur Isaac Rabinovitch, source

btw: CVSNT prend en charge les commits atomiques

0
ajouté

vous pouvez également choisir de migrer uniquement le dernier code de CVS vers SVN et de geler votre repo CVS actuel. Cela facilitera la migration et vous pourrez également créer vos anciennes versions dans l'ancien référentiel CVS.

0
ajouté

En tant que quelqu'un qui est en train de basculer entre CVS et SVN (initialement nous avons changé tous nos projets avec cvs2svn et ensuite décidé que nous ne ferions la transition qu'en utilisant svn sur de nouveaux projets), voici quelques problèmes que nous avons rencontrés.

  • La fusion et la dérivation sont très différentes, et si vous branchez et fusionnez fréquemment, à moins que SVN 1.5 ne tourne sur votre serveur, vous devez savoir quand vous branchez (ce n'est pas très clair dans les boîtes de dialogue SVN de Tortoise). Michael dit que l'embranchement et la fusion sont intuitifs, je dirais qu'après avoir utilisé CVS pendant 10 ans, ce n'est pas le cas.
  • Si vous utilisez le serveur SVN sous Linux, il peut être difficile d'obtenir que votre SA passe à svn 1.5, en tant qu'install 1.4.x par défaut.
  • La fusion de conflits n'est pas aussi facile ou claire (au moins pour moi et mes collègues) dans TortoiseSVN que dans TortoiseCVS. L'approche à trois volets prend un peu de temps pour s'y habituer et WinMerge (mon outil de fusion préféré) ne fait pas de fusion à trois volets.
  • Attention: la plupart des tutoriels en ligne et des articles de magazines que j'ai lus ne s'embranchent pas et ne fusionnent pas, vous devriez configurer votre référentiel principal comme https://svn.yoursvnserver.com/repos/YourProject/Trunk et branches sur https://svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Vous pouvez nettoyer si vous commencez votre repos au mauvais endroit, mais cela mène à la confusion.
0
ajouté

Vous devriez jeter un oeil à Git au lieu de SVN. C'est un DVCS très rapide et très puissant. Ce n'est pas aussi convivial que SVN, mais il s'améliore à cet égard, et ce n'est pas si difficile à apprendre.

0
ajouté
Vous, sire, méritez une médaille pour la bonne aventure.
ajouté l'auteur altinturk, source

SVN a 3 avantages principaux sur CVS

  • c'est plus rapide
  • prend en charge la gestion des versions des fichiers binaires
  • et ajoute une validation transactionnelle (tout ou rien)
0
ajouté

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

0
ajouté

Je vais appuyer la suggestion de Git par Eridius, mais je l'étendrais aux autres systèmes DRCS (Distributed Revision Control System) tels que Mercurial et bazar .

Ces produits sont assez récents et le niveau d'outillage et d'intégration avec eux semble faible pour le moment (d'après mes premières recherches). Je dirais qu'ils étaient les mieux adaptés pour les développeurs d'énergie là-bas (et ici ;-)).

D'un autre côté, qu'est-ce que ne fait pas CVS pour vous? De votre question initiale, vous n'en avez pas vraiment, "CVS craint cela, que pourrais-je utiliser à la place?"

Vous devez peser les coûts de toute migration potentielle contre les avantages. Pour un projet existant, je pense que ce serait difficile à justifier.

0
ajouté

Eh bien, quelques choses que je ressens rendent svn génial.

  1. La combinaison du creuset SVN-Altassian est une méthode de révision et de contrôle de qualité de loin supérieure
  2. Meilleure gestion des conflits et des fusions
  3. Il est évidemment plus rapide de prendre des caisses, d'effectuer des validations, etc.
  4. Problème de validation atomique - Il est possible que deux personnes engagées ensemble dans CVS puissent entrer en conflit, perdant des données et mettant votre base de code dans un état incohérent

La migration peut facilement être effectuée en quelques heures en utilisant cvs2svn.

0
ajouté