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

voix
56

Mon entreprise utilise CVS comme notre standard de facto pour le contrôle de la source. Cependant, je l'ai entendu beaucoup de gens disent que SVN est mieux.

Je sais que SVN est plus récente, mais à part ça, je ne suis pas familier avec ses avantages.

Ce que je suis à la recherche 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.

Créé 04/08/2008 à 15:06
source utilisateur
Dans d'autres langues...                            


12 réponses

voix
54

CVS ne suit que la modification sur un fichier par fichier, alors que SVN suit son ensemble commettras comme une nouvelle révision, ce qui signifie qu'il est plus facile de suivre l'histoire de votre projet. Ajoutez le fait que tous les logiciels de contrôle des sources modernes utilisent le concept de révision il est donc beaucoup plus facile de migrer de SVN qu'il est de CVS.

Il y a aussi le problème atomique COMMIT. Bien que je ne rencontrais une fois, il est possible que 2 personnes ensemble dans CVS commis peuvent entrer en conflit les uns des autres, perdre des données et de mettre votre client dans un état incohérent. Lorsqu'il est détecté tôt, ces problèmes ne sont pas majeurs, car vos données sont toujours là quelque part, mais il peut être une douleur dans un environnement stressant.

Et enfin, pas beaucoup d'outils sont développés autour de CVS plus. Alors que les nouvelles et nouveaux brillants outils tels que Git ou Mercurial manquent certainement encore des outils, SVN a une base d'application assez large sur tout système.

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

Créé 04/08/2008 à 15:17
source utilisateur

voix
18

L'une des nombreuses comparaisons:

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

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

Subversion Pro:

  • Prise en charge de renomme / déplace versionnés (impossible avec CVS): Fingolfin, Ender
  • Prise en charge en mode natif les répertoires: Il est possible de les enlever, et ils sont versionnées: Fingolfin, Ender
  • Propriétés du fichier sont versionnés; pas plus l'enfer « bit exécutable »: Fingolfin
  • numéro de révision générale fait versionnage de construction et les tests de régression beaucoup plus facile: Ender, Fingolfin
  • Atomique engage: Fingolfin
  • Intuitive (basé sur un répertoire) et le marquage de branchement: Fingolfin
  • Plus facile scripts hook (validation pré / post, etc.): SumthinWicked (je l'utilise pour Doxygen après commits)
  • Les déconnexions accidentelles commettre des dossiers: en conflit cheval Salty, Fingolfin
  • Prise en charge de la commande « diff » personnalisée: Fingolfin
  • diffs hors ligne, et ils sont instantanément: SEV
Créé 04/08/2008 à 15:09
source utilisateur

voix
14

SVN a 3 principaux avantages par rapport CVS

  • c'est plus rapide
  • prend en charge les fichiers binaires de versionnage
  • et ajoute commettre des transactions (tout ou rien)
Créé 04/08/2008 à 15:35
source utilisateur

voix
7

Le livre de Subversion a une annexe qui détaille les différences importantes de 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écialement conçu pour corriger les défauts de longue date dans le CVS donc, en théorie au moins, SVN sera toujours le meilleur choix.

Créé 04/08/2008 à 15:14
source utilisateur

voix
4

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

Créé 18/08/2008 à 18:22
source utilisateur

voix
2

Comme quelqu'un qui est au milieu de la commutation entre CVS et SVN (d'abord nous avons changé tous nos projets avec cvs2svn et a décidé que nous passer en utilisant uniquement svn sur de nouveaux projets), voici quelques-uns des problèmes que nous avons eu.

  • La fusion et la ramification sont très différents, et si vous branche et fusion fréquemment, sauf si vous avez SVN 1.5 en cours d'exécution sur votre serveur devez savoir quand vous ramifiés (ce n'est pas très clair dans les boîtes de dialogue tortoisesvn). Michael dit que la fusion est et ramification intuitive, je dirais que après avoir utilisé CVS pendant 10 ans, ce n'est pas.
  • Si vous êtes en cours d'exécution le serveur SVN sous Linux, il peut être difficile d'obtenir votre SA pour passer à 1,5 svn, comme l'installation par défaut 1.4.x.
  • La fusion des conflits est loin d'être aussi facile ou aussi clair (au moins pour moi et mes collègues) dans TortoiseSVN comme dans TortoiseCVS. L'approche en trois volet prend un certain temps pour s'y habituer et Winmerge (mon outil préféré de fusion) ne fait pas une fusion à trois volets.
  • Attention: la plupart des tutoriels en ligne et des articles de magazine que j'ai lu évidemment ne ramifier et de fusion, vous devez 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 vos prises en pension au mauvais endroit, mais il conduit à la confusion.
Créé 04/09/2008 à 18:44
source utilisateur

voix
2

Je appuie la suggestion de Eridius de Git, mais je l' étendre aux autres ESRD (Distributed Revision Control System) tels que Mercurial et bazar .

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

D'autre part, ce qui ne CVS actuellement pas pour vous? A partir de votre question initiale, vous ne vraiment avez pas, « CVS suce à cela, que pouvais - je utiliser à la place? »

Vous avez pesez dois les coûts de toute migration potentielle par rapport aux avantages. Pour un projet existant, je pense qu'il serait difficile à justifier.

Créé 18/08/2008 à 18:04
source utilisateur

voix
1

CVS (système de versions concurrentes) et SVN (Subversion) sont deux systèmes de fichiers de contrôle de version qui sont couramment utilisés par les équipes qui collaborent sur un seul projet. Ces systèmes permettent aux collaborateurs de garder une trace des modifications apportées et savoir qui se développe qui 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écente et il introduit beaucoup d'améliorations pour répondre aux exigences de la plupart des gens.

Créé 17/07/2018 à 07:19
source utilisateur

voix
1

BTW: CVSNT supporte commits atomiques

Créé 18/08/2008 à 17:22
source utilisateur

voix
0

Eh bien, quelques petites choses que je me sens fait svn impressionnant.

  1. La combinaison creuset SVN-Altassian est une méthode bien supérieure des évaluations et des contrôles de qualité
  2. Une meilleure gestion des conflits et des fusions
  3. Il est évidemment plus rapide pour prendre checkouts, effectuer commits, etc.
  4. Le problème livraison atomique - Il est possible que 2 personnes ensemble dans CVS commis peuvent entrer en conflit les uns des autres, perdre des données et de mettre votre base de code dans un état incohérent

La migration peut se faire facilement en quelques heures à l'aide cvs2svn.

Créé 18/09/2016 à 14:01
source utilisateur

voix
0

vous pouvez également choisir de migrer uniquement le dernier code de CVS dans SVN et geler votre repo actuel CVS. cela rendra plus facile la migration et vous pouvez également créer vos communiqués existants dans l'ancien repo CVS.

Créé 08/10/2008 à 17:19
source utilisateur

voix
0

Vous devriez jeter un oeil à Git au lieu de SVN. Il est un DVCS qui est ultra-rapide et très puissant. Il est pas aussi convivial que SVN, mais il est l' amélioration à cet égard, et ce n'est pas que difficile à apprendre.

Créé 07/08/2008 à 00:09
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more