version control - Quels sont les avantages de l'utilisation de SVN sur CVS?

Translate

Mon entreprise utilise CVS comme norme de facto pour le contrôle de code source. 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 connais pas 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.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

CVS suit uniquement les modifications 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 modernes de contrôle de source utilisent le concept de révision, 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'ai rencontré qu'une seule fois, il est possible que 2 personnes s'engageant ensemble dans CVS puissent entrer en conflit, perdant des données et mettant 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 encore d'outils, SVN dispose d'une base d'applications assez large sur n'importe quel système.

MODIFIER 2015: Sérieusement, cette réponse a 7 ans maintenant. Oubliez SVN, allez utiliser Git comme tout le monde!

La source
Translate

L'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.

Subversion Pro:

  • Prise en charge des changements / déplacements versionnés (impossible avec CVS): Fingolfin, Ender
  • Prend en charge les répertoires nativement: il est possible de les supprimer, et ils sont versionnés: Fingolfin, Ender
  • Les propriétés du fichier sont versionnées; plus de "bit exécutable" enfer: Fingolfin
  • Le numéro de révision global facilite grandement la gestion des versions et les tests de régression: Ender, Fingolfin
  • Commits atomiques: Fingolfin
  • Branchage et balisage intuitifs (basés sur un répertoire): Fingolfin
  • Scripts de hook plus faciles (pré / post commit, etc.): SumthinWicked (je l'utilise pour Doxygen après les commits)
  • Empêche la création accidentelle de fichiers en conflit: Salty-horse, Fingolfin
  • Prise en charge de la commande personnalisée 'diff': Fingolfin
  • Diffs hors ligne, et ils sont instantanés: sev
La source
Translate

SVN présente 3 avantages principaux par rapport à CVS

  • c'est plus rapide
  • prend en charge la gestion des versions des fichiers binaires
  • et ajoute un commit transactionnel (tout ou rien)
La source
Mat
Translate

Le livre Subversion aune annexequi 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 du moins, SVN sera toujours le meilleur choix.

La source
Translate

Je seconderai la suggestion d'Eridius sur Git, mais je l'étendrais à l'autre DRCS (Distributed Revision Control System) tel queMercurieletbazar.

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 aux développeurs puissants (et ici ;-)).

D'un autre côté, quoineCVS fait actuellement pour vous? D'après votre question initiale, vous n'en avez pas vraiment, "CVS est nul, que puis-je utiliser à la place?"

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

La source
Translate

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

La source
Translate

btw: CVSNT prend en charge les commits atomiques

La source
Translate

En tant que personne qui est en train de basculer entre CVS et SVN (au départ, nous avons basculé tous nos projets avec cvs2svn, puis avons décidé que nous ferions la transition en utilisant uniquement svn sur de nouveaux projets), voici quelques-uns des problèmes que nous avons rencontrés.

  • La fusion et la création de branches sont très différentes, et si vous branchez et fusionnez fréquemment, à moins que SVN 1.5 ne fonctionne sur votre serveur, vous devez savoir quand vous avez créé une branche (ce n'est pas très clair dans les boîtes de dialogue Tortoise SVN). Michael dit que le branchement et la fusion sont intuitifs, je dirais qu'après avoir utilisé CVS pendant 10 ans, ce n'est pas le cas.
  • Si vous exécutez le serveur SVN sous Linux, il peut être difficile de faire passer votre SA à svn 1.5, comme installation par défaut 1.4.x.
  • La fusion des conflits n'est pas aussi facile ni aussi claire (du moins pour moi et mes collègues) dans TortoiseSVN que dans TortoiseCVS. L'approche à trois volets nécessite un certain temps pour s'y habituer et WinMerge (mon outil de fusion préféré) ne fait pas de fusion à trois volets.
  • Méfiez-vous: de nombreux tutoriels en ligne et articles de magazines que j'ai lus ne se branchent évidemment pas et ne fusionnent pas, vous devez configurer votre référentiel principal commehttps://svn.yoursvnserver.com/repos/YourProject/Trunket branches surhttps://svn.yoursvnserver.com/repos/YourProject/Branches/BranchX. Vous pouvez nettoyer si vous démarrez vos dépôts au mauvais endroit, mais cela prête à confusion.
La source
Translate

Vous devriez jeter un oeil àGitau lieu de SVN. C'est un DVCS ultra-rapide et très puissant. Ce n'est pas aussi convivial que SVN, mais ça s'améliore à cet égard, et ce n'est pascettedifficile à apprendre.

La source
Translate

CVS (Concurrent Versions System) et SVN (SubVersioN) sont deux systèmes de fichiers de contrôle de version couramment utilisés par les équipes qui collaborent sur un seul projet. Ces systèmes permettent aux collaborateurs de suivre les modifications apportées et de savoir qui développe lequel et si une branche doit être appliquée au tronc principal ou non. 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 source
Translate

vous pouvez également choisir de migrer uniquement le dernier code de CVS vers SVN et de geler votre dépôt CVS actuel. cela facilitera la migration et vous pourrez également créer vos anciennes versions dans l'ancien dépôt CVS.

La source
Translate

Eh bien, certaines choses qui, à mon avis, rendent svn génial.

  1. La combinaison de creuset SVN-Altassien est une méthode de révision et de contrôle qualité bien supérieure
  2. Meilleure gestion des conflits et des fusions
  3. C'est évidemment plus rapide pour effectuer des paiements, effectuer des commits, etc.
  4. Le problème de la validation atomique - Il est possible que 2 personnes s'engageant 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 à l'aide de cvs2svn.

La source
précédent:
c# - Multi asynchrone