2009-07-09 6 views
4

Nous sommes actuellement en train de déterminer si nous voulons déplacer des projets CVS et VSS à un seul serveur SVN.SVN vs VSS vs CVS comparant l'aide

J'utilise SVN depuis longtemps maintenant, mais je suis obligé d'utiliser CVS et VSS pour le travail.

Pourriez-vous s'il vous plaît m'aider à expliquer pourquoi il serait préférable de passer à SVN plutôt que d'acheter un VSS 2005? Et aussi quels seraient les avantages de passer de CVS à SVN?

Nous avons des projets en C# .NET/Java/Perl/Visual Basic. Au-delà de la différence de coût, que puis-je dire de plus aux patrons pour les convaincre de passer à svn.

Et y a-t-il un moyen de préserver les historiques de VSS et CVS lors du passage à SVN?

+0

Copie possible: http://stackoverflow.com/questions/17524/what-is-so-great-about-subversion –

Répondre

4

SVN par rapport à CVS est simple. SVN a été développé comme un nouveau logiciel à utiliser à la place de CVS pour corriger certains problèmes avec CVS.

Un problème que je connais est le problème avec le déplacement et le changement de nom des fichiers dans le référentiel. C'est un gros problème si vous avez tendance à refactoriser beaucoup dans votre code.

Plus se trouve ici: Limitations de CVS sur Wikipedia.
Et ici: Criticism sur VSS sur Wikipédia
Et pour les comparaisons: Limitations de SVN sur Wikipédia

4

There are tools pour convertir l'historique CVS en SVN et other tools pour migrer l'historique VSS - de sorte que vous pouvez les utiliser dans votre cas de passer à un meilleur système.

Pour toutes les raisons liées dans le commentaire et ailleurs, SVN a tendance à être beaucoup mieux enviroment que CVS ou VSS (sauf si vous avez des exigences bizarres) - donc si vous pouvez importer avec succès votre histoire et sauver l'entreprise l'argent, je ne verrais pas pourquoi les patrons ne le feraient pas.

1

Vous pouvez certainement conserver l'historique passant de VSS à Vault, qui ne figurait pas sur votre liste, mais que je recommande fortement. Si d'autres développeurs sont habitués à VSS, ils n'auront aucun problème à s'habituer à Vault. Ce n'est pas gratuit, mais c'est beaucoup moins cher que beaucoup d'alternatives.

En ce qui concerne les convaincre de se déplacer, VSS aurait vraiment dû fournir ses propres raisons à ce jour. J'étais constamment étonné que notre référentiel VSS ne se soit jamais écrasé, mais je ne savais pas qu'un autre développeur le réparait presque tous les jours.

+0

Heureusement, je n'ai pas utilisé VSS depuis des années, donc j'ai encore un peu de cheveux sur ma tête. Mais quand j'étais ... arrog, même l'outil VSS Analyze n'a pas résolu certains problèmes bizarres dans la base de données.Parfois, nous déplaçons le référentiel actuel en tant que sauvegarde, et le snapshot le code actuel dans un nouveau pour éviter les bogues. – devstuff

+0

SourceGear Vault et Fortress sont gratuits pour une licence d'une personne. –

0

Il y a beaucoup de raisons de passer à SVN de CVS. Nous avons utilisé CVS comme notre contrôle de source de 2002 à 2007. Je dirai pendant ce temps que nous n'avons jamais eu un problème avec CVS. Le vrai problème est que CVS n'a pas progressé depuis environ 1998 en termes de développement de fonctionnalités. Le plus grand avantage de SVN par rapport à CVS doit être vrai commits autonomes. Nous avons utilisé l'outil open source cvs2svn pour transférer tous nos projets CVS vers SVN. Nous n'avons pas eu un seul problème et gardé l'histoire complète sur tout. VSS: Cela doit vraiment être l'un des pires produits Microsoft jamais créés. La corruption de fichiers, la perte d'historique et les problèmes majeurs de fusion sont les principales raisons de rester à l'écart. À ce stade, je suis certain que Microsoft déprécie VSS en faveur des Team Tools intégrés dans Visual Studio Team Edition.

0

Deux de mes choses préférées sur SVN:

  • Les branches sont prises selon un agréable et simple. Je n'ai jamais pu me concentrer totalement sur les branchements CVS. Les copies locales cachées signifient que les commandes telles que "svn diff" et "svn log" n'ont pas besoin de contacter le serveur. Cela rend le travail avec un référentiel extrait sur un ordinateur portable non connecté beaucoup plus facile.

+1

Si vous aimez ceux-là alors vous devriez vraiment, vraiment, essayer Git. Un réel soutien des ramifications et une histoire locale complète pourraient vous faire perdre la tête. – toholio

10

Ceci est une de ces questions qui nécessite beaucoup de détails, mais cela se résume à "Pourquoi aimez-vous utiliser SVN?" et ce que vous pouvez utiliser dans la liste "J'aime" pour présenter à votre patron.

J'ai utilisé tous les trois. Je ne peux parler que de mes propres expériences et de mes préjugés. Mon histoire d'utilisation est VSS -> CVS -> SVN

CVS

Plus:

  • Il peut être utilisé sur Internet
  • Très stable

Contre:

  • Il est très difficile de renommer les choses. Cela provoque beaucoup de douleur.

Mon boeuf principal était un logiciel client. J'ai trouvé tous les logiciels clients incohérents et disjoints. Je détestais absolument l'utiliser.

VSS

Plus:

  • projets de partage est mort facile.
  • Intègre bien avec Microsoft IDEs

Moins:

  • Il utilise le moteur de stockage Microsoft Jet, qui est sujette à corrompre tout ce qu'il accède.
  • Il ne peut pas être utilisé en dehors de votre réseau local, sauf si vous achetez quelque chose comme SourceOffsite.
  • Les fichiers checkout-lock et les fichiers check-unlock peuvent ralentir la productivité dans des groupes plus importants. Beaucoup de développeurs débutants laissent des fichiers extraits, et le reste de l'équipe doit attendre pour les vérifier.
  • Microsoft ne développe plus cela. Microsoft n'utilise même pas cela en interne pour leurs applications vache à lait comme Office et Windows. Ils utilisent en fait une version personnalisée de Perforce.

Subversion

Plus:

  • cycle de l'édition de fichiers Commander-edit-fusion est l'équipe très sympathique
  • Création de branches est très pas cher et ne copie pas les fichiers physiques
  • Il est continuellement développé
  • Il existe plusieurs Subversion p Ackages à choisir
  • De nombreux fournisseurs tiers s'intègrent à Subversion. Il a une écologie d'application riche.
  • Un avantage majeur est que vous pouvez désormais intégrer la sécurité Subversion à votre arborescence Active Directory.

Moins:

  • en conflit peuvent encore fusion être une douleur importante dans le cou, mais c'est la même que la plupart des autres systèmes de contrôle de version.
  • La sécurité peut être un peu difficile à utiliser en fonction du serveur (svnserve.exe ou Apache/WebDAV) que vous choisissez pour exécuter vos référentiels.

Je suppose que puisque vos patrons veulent acheter VSS2005, cela fonctionnera sous Windows. Ma recommandation est que vous en tenir à l'un de ces 3 distros Subversion/packages

package d'installation Subversion générale: CollabNet Subersion - http://www.open.collab.net/downloads/subversion/ Cela installe à la fois svnserver.exe (serveur personnalisé) et Apache/WebDAV ou vous pouvez choisir qui un à installer pendant l'installation. Vous pourrez servir vos dépôts en utilisant les protocoles http: // et svn: //.

Subversion plus Console d'administration: VisualSVN Server - http://visualsvn.com/server/ Ils ont leur propre distribution Subversion. Ce package a un composant logiciel enfichable MMC (Microsoft Management Console) pour gérer le serveur. Celui-ci vous aidera à configurer l'autorisation contre votre arborescence Active Directory. Ceci est principalement orienté vers le protocole http: //.

Subversion console d'administration: PainlessSVN - http://www.painlesssvn.com Celui-ci ne fonctionne qu'avec svnserve.exe (serveur personnalisé). C'est un composant logiciel enfichable MMC (Microsoft Management Console) qui va gérer les paramètres et les utilisateurs. Ceci est principalement orienté vers le protocole svn: //. Tom Ritter a fourni de très bons liens vers des outils qui vont importer l'historique et le code de CVS/VSS vers Subversion.

+0

Un client CVS que j'aimais allot était CrossVC. –

1

D'autres ont mentionné pourquoi SVN est le meilleur de votre gamme. Aussi, vous devez être conscient qu'il existe des systèmes de contrôle de version plus récents et meilleurs que SVN.

Deux grands sont Mercurial et Git.