Subversion vs CVS
J'ai utilisé à la fois SVN et CVS un peu, mais vous devrez en choisir un pour un nouveau projet, je vais commencer.
Peut quelqu'un qui a utilisé à la fois largement s'il vous plaît offrir certains avantages et des inconvénients de et de qui ils pensent est le meilleur? Les meilleures ressources d'apprentissage serait apprécié aussi.
Ce sera pour un petit projet, un ou deux développeurs de commencer.
- il y a une question similaire, stackoverflow.com/questions/1261/...
- Pourquoi ne pas faire votre commentaire une Réponse à cette question? 🙂
- ajouter à ma réponse.
- il y a déjà beaucoup d'autres questions avec vauluable réponses ici sur DONC. Vous pouvez prendre un coup d'oeil.
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé à la fois. Il n'y a pas de comparaison, vous voulez svn. La seule raison d'utiliser CVS est parce que vous êtes de la saisie ou de la reprise d'un ancien système avec la direction qui ne veut pas changer le statu quo. Si vous commencez un nouveau projet, il est presque logique de l'impossibilité de prétendre que CVS est mieux que la Subversion.
Si vous avez autour de google, vous devriez trouver beaucoup de comparaisons, et les justifications relatives à l'utilisation de Subversion sur le CVS. Quelques-uns des avantages de Subversion sur CVS:
Ayant dit tout cela, je vous recommande également d'explorer certains des distribué des Vcs comme Bazar, Mercurial et git. Personnellement, j'utilise git sur tous mes projets.
"cheap" copying and branching
chose que vous avez mentionné? Comment est la copie et la ramification de mieux dans la Subversion (par rapport à CVS)? merci!Subversion a d'importantes victoires sur CVS:
Cependant, il présente de sérieuses lacunes. La plus grande et de loin, est que les Branches et les Tags ne sont pas des citoyens à part entière dans le svn, ils sont juste des répertoires qui adhèrent à une convention. En plus de perdre certains des avantages de réel, de ramification et de marquage (mentionné dans d'autres commentaires) le plus gros problème qu'il crée est que si, il est très facile à visser.
Subversion de l'utilisation de la convention plutôt que configuration signifie que vous devez penser à vos dépôts de la structure à l'avance et de s'assurer que tout le monde y adhère. D'autre, vous créez un monde de souffrance pour les générations futures, et encore moins tous les outils qui doivent grok votre repo.
La fusion et de la mise en miroir sont à peu près inexistantes (bien de l'aide pour) pré 1.5. 1.5 a pris des mesures pour répondre à ces deux, mais il y a encore de la place pour l'amélioration. La fusion dans la subversion est encore beaucoup plus difficile qu'il doit être.
SVN sur le CVS est presque une évidence. Cependant, vous m'en voudrais de ne pas considérer ce DVCS de l'offre (Git, Hg, Bzr) ou si votre budget le permet il y a des outils d'excellente réputation (Accurev, Forcément).
Subversion est probablement le bon choix, mais vous devez faire vos devoirs pour obtenir les meilleurs résultats. Commencer avec le Livre Rouge http://svnbook.red-bean.com/
Bien que j'ai choisi de Subversion plus de CVS dans la plupart des cas, vous devez savoir ce que vous êtes absent de Subversion:
CVS voit les étiquettes et les branches comme des choses différentes, la Subversion n'est pas. Cela signifie que des outils de tiers, construit sur le haut de la Subversion (par exemple, IDEs de commande de source d'intégration) ont un travail plus difficile à connaître la différence. D'habitude vous avez à faire un peu de configuration spécial à lui dire où vos tags et branches, et vous devez vous assurer que vos utilisateurs de garder une certaine structure du système de fichiers.
Subversion ne peut pas regarder à un fichier et vous dire à quel point quelqu'un a créé une branche ou une étiquette à partir d'elle. Des outils comme CVSGraph pouvez utiliser cette information pour dessiner un arbre d'un fichier de l'histoire. De le faire avec Subversion, vous devez à la recherche de toutes les branches/tags répertoires, et je n'ai pas vu tous les outils qui le font bien.
CVS a été autour de plus, et les outils tiers sont plus stables, dans mon expérience.
Appelez-moi démodé, mais je préfère de beaucoup la ramification/marquage modèle sous CVS.
Dans les CVS, les branches et les tags sont différents choses. Une étiquette est une étiquette de révision. Ils sont super utile pour des choses comme le marquage d'une PRODUCTION tag pour les fichiers à synchroniser sur votre serveur web. Vous n'avez pas à fusionner pour mettre à jour le PRODUCTION fichiers, il suffit de déplacer la balise.
Branches vivent dans le même "espace de noms" le fichier principal-il est facile de traquer tous les mods d'un fichier particulier.
Dans SVN il n'y a pas de telles choses comme une balise. Il y a seulement les branches. Si vous voulez des balises, vous devez créer une branche, et prétendre que c'est une étiquette. Les Branches sont essentiellement des copies de fichiers. La dernière fois que j'ai utilisé SVN pour branches/fusionne, vous avez eu à enregistrer la révision de la pré-ramifiée fichier si vous jamais souhaité l'intégrer ensemble (remarque, je ne suis pas un SVN expert, ce qui peut avoir changé).
Cela étant dit, je pense que SVN est mieux à tous autres égards, et vous ne devriez probablement pas commencer un nouveau projet avec CVS.
Vous allez obtenir beaucoup de réponses à cette, je le soupçonne. Ils pourraient même tous d'accord.
Entre ces deux choix, je crois qu'il n'est pas question que vous devez utiliser Subversion. Subversion a été construit comme un "mieux " CVS", et comme un résultat, personne ne soutient activement CVS plus longtemps. Subversion a la possibilité de renommer et déplacer des fichiers sans perte de l'histoire, prend en charge atomique s'engage, plus robuste référentiel format, a plus modernes méthodes d'accès, a un meilleur outil tiers de soutien, et la liste continue.
Subversion est comme "une meilleure CVS". Il gère le déplacement des fichiers ET des répertoires bien. Il a ramification de soutien, bien que ce qui est inférieur à Distribué des Vcs.
Vous pouvez également envisager d'utiliser un VCS distribués l'un comme git, bazaar ou mercurial.
Edit: Voici un lien à une question similaire
Généralement Subversion .. Cependant, vous devez regarder pour les problèmes de ressources.
Lorsque je travaillais pour une société de jeu, nous avons eu un certain nombre de répertoires contenant des centaines de petits fichiers, et à d'autres répertoires contenus à quelques centaines de meg fichiers. Quand nous avons échangé sur le CVS de la Subversion, de la vitesse de la vérification de la mise en pension a diminué d'une heure à quatre ou cinq heures. La mise à jour a également été considérablement slowr.
Ce n'est presque certainement due à l'utilisation de http ou ssh pour transmettre un fichier de données, par rapport aux natifs de csv pserver, cependant, car il est si facile à installer svn sur ssh ou webdav, les gens ont tendance à ne pas penser à propos de la surcharge de protocoles. Vous pouvez cependant utiliser un natif svn protocole et cela devrait résoudre le problème, nous n'avons pas testé ce à mon ancienne société.
Une autre question qui est souvent ignoré, c'est l'espace de stockage, nous avons constaté que la subversion n'utiliser plusieurs fois la quantité de stockage local, comme le CVS. Je crois me souvenir qu'il conserve une copie locale de la mise en pension de données pour accélérer de comparaison, ce ne sera pas un énorme problème, à moins que vous stockez plusieurs gigaoctets de votre référentiel.
J'ai utilisé la subversion de 3,5 ans, maintenant j'ai déménagé dans une autre entreprise qui utilise CVS de commande de la source. Au premier abord, il n'y a pas beaucoup de différences entre les deux, mais de venir à l'opération de fusion (ce qui est le sommet de la plupart de mes préoccupations) je pourrais dire que CVS a fait un meilleur travail. Les notions de branches/tags SVN sont source de confusion, alors que de très clair dans le CVS. aussi la fusion (dans mon cas, l'intégration d'une branche) est beaucoup plus facile dans les CV que dans le SVN.
La faiblesse de CVS est tellement loin dans mon idée seulement la livraison atomique. sinon, il serait bon choix.