SourceSafe est-il vraiment sûr?

27

Après avoir passé toute la matinée à essayer d'enregistrer quelque chose, je me rends compte maintenant que j'ai perdu quelques jours de travail.

C'est déjà arrivé - et c'est apparemment fréquent avec SourceSafe. SourceSafe peut-il être utilisé avec succès, sans problème, et si oui, comment?

billy.bob
la source
40
Oh cher Dieu NON ... plus jamais plus!
Tim Post
27
J'ai lutté longtemps et durement pour retirer SourceSafe de mon entreprise. Finalement gagné et tout le monde en est plus heureux.
Kevin D
13
Toute organisation utilisant VSS est une mauvaise "odeur d'organisation"
JoelFan
8
La phrase «Arrivée tôt et souvent». est d'empêcher ce genre de situations. Vous ne devez jamais perdre plus de quelques heures de travail. Cependant, Iron Maiden l'a dit le mieux à propos de VSS: "Courez dans les collines! Courez pour votre vie!"
Ryan Hayes
3
Microsoft ne l'utilise pas. Pourquoi devrions nous?
greyfade

Réponses:

45

Ma vue est simple, migrez vers autre chose dès que possible. Cela ne prendra pas longtemps (1-2 semaines WAG) et peu importe la durée de la migration, il est facile de justifier cela à la direction. Un peu de temps pour migrer équivaut à un contrôle de source solide et très peu de chances de perdre le code source. Effectuez une recherche rapide sur Google pour les "histoires d'horreur sûres à la source" ou similaire si votre patron est sceptique.

DevSolo
la source
Certes, mais il n'est parfois pas facile de justifier auprès d'une personne non technique passant 1 à 2 semaines à migrer le contrôle de code source.
t3mujin
2
@ t3mujin, voir la discussion sur la "dette technique" programmers.stackexchange.com/questions/18059/…
Nemi
SourceSafe est une responsabilité active et continue envers votre productivité à court et à long terme. Il peut facilement être remplacé par un certain nombre de systèmes de contrôle de version modernes, sûrs et distribués. Faites des recherches avec Google sur les histoires d'horreur SourceSafe ainsi que des conseils professionnels. FAITES FORTEMENT VOTRE ÉTUI. Faites ce qu'il faut.
Adam Crossland
3
@ t3mujin: migrez-le projet par projet. Là où je travaille, nous utilisions SourceSafe, maintenant nous utilisons TFS. Tout migrer (des centaines de projets) aurait été pénible, donc à la place, si nous avons du travail à faire sur un ancien projet toujours dans SourceSafe, nous passons d'abord le peu de temps à le migrer, puis seulement nous commençons à travailler.
Carson63000
@ Carson63000 Nous utilisons TFS pour la plupart des projets en cours, mais il existe une large base de sources avec peu mais occasionnellement des mises à jour sur VSS que personne n'est prêt à payer pour la migration vers TFS. Je ne fais pas partie de l'équipe qui l'utilise le plus souvent, donc je vais bien avec quelques lignes de code de temps en temps
t3mujin
33

Pire. SCM. Déjà.

Tout ce qui ne va pas dans SCM est incarné dans VSS. Même StarTeam est meilleur que Source Safe. Source Safe est Internet Explorer 1 du monde du contrôle de version: entièrement remplacé par toute autre implémentation.

Comment l'ai-je utilisé?

Mon flux de travail typique pour faire avancer les choses était

  1. Découvrez le projet
  2. Verrouillez tous les fichiers (pour éviter de fusionner avec le cos de quelqu'un qui a ouvert les portes impies de l'enfer)
  3. A fait mon travail
  4. Chaque jour vérifié mes changements dans
  5. J'ai tout vérifié à nouveau et corrigé tous les problèmes d'intégration
  6. Je l'ai vérifié

Par rapport à Subversion, ce qui précède est risible (à part vérifier que vous n'avez pas cassé la construction).

Restrictions aux pratiques de programmation de mon équipe

Ce sont les règles que l'équipe a dû respecter pour que cela fonctionne pour nous. Votre kilométrage peut varier.

  1. Une seule personne peut éditer un fichier (Heaven vous aide si elle part en vacances)
  2. Ne branchez pas, c'est trop difficile à gérer
  3. N'essayez jamais de revenir à une révision précédente

Ce qui peut être fait?

Polarion dispose d'un bon ensemble d'outils pour migrer de sources comme Safe Safe vers Subversion (SVN), qui est la norme de facto actuelle dans la plupart des entreprises pour le contrôle de version open source. Subversion souffre de la nécessité de disposer d'un serveur pour permettre les connexions (contrairement à GIT ou Mercurial qui sont conçus pour les équipes hors ligne distribuées).

Gary Rowe
la source
@David ne me lance pas sur la tentative d'obtenir des historiques de révision de fichiers ou de branchement (je pleure en écrivant - tant d'heures perdues de ma vie ...)
Gary Rowe
2
oui, la branche et la fusion ne sont pas vraiment amusantes dans un bon SCM. Je ne pense pas que le congrès vous permettrait de faire en sorte que les gens le fassent en toute sécurité.
BlackICE
2
Ne jamais revenir à une version précédente? Pourquoi pas? Et si oui, quel est le but principal de l'utilisation d'un outil SCM?
JoelFan
À l'époque où j'étais dans un magasin qui utilisait VSS, nous n'avions aucun problème à revenir à une ancienne version. Cela semble un peu extrême. Je suis cependant avec toi sur la ramification.
JohnFx
@JohnFx @SpashHit Notre équipe avait une très faible tolérance à la douleur, alors peut-être que je suis un peu trop haut. Lorsque Subversion est arrivé, c'était comme si un poids puissant avait été levé.
Gary Rowe
15

Changez votre contrôle de source en SVN / Mercurial / Git et ne regardez jamais en arrière!

Amir Rezaei
la source
3
C'est "Mercurial", pas "Mercury" (juste cueillir quelques lentes ici, pas d'offense)
Jürgen A. Erhard
@jae Correction de cela pour vous :-)
Gary Rowe
11

Nous l'avons mis hors service il y a environ un an.

Il est arrivé plusieurs fois que ce que j'avais enregistré la veille n'était tout simplement pas là le lendemain matin. Je n'ai pas trouvé ça amusant parce que ça ressemblait étrangement à ce que je n'avais juste pas fini mon travail. Comme j'étais nouveau dans l'entreprise, cela aurait pu être dangereux pour moi.

Nous les avons passés au TFS et cela fonctionne bien depuis.

user8685
la source
1
+1 pour retirer l'opération. Tu as fais ce qu'il fallait faire.
Gary Rowe
1
TFS est une très belle chose. Si vous avez la pâte à payer, c'est.
Adam Crossland
2
@Adam Crossland: Magnifique comme un gros diamant, et à peu près au même prix.
Orbling
1
@Orbling: bien dit.
Adam Crossland
1
Pour ceux qui ne reconnaissent pas l'abréviation, TFS est le Team Foundation Server de Microsoft .
Keith Thompson
9

Mon avis?

Il y en a de meilleurs qui sont plus faciles à utiliser, plus sûrs et totalement gratuits. Pourquoi prendre la peine de l'utiliser du tout?

C'est un domaine de développement où nous avons beaucoup de choix; la plupart, ou tous, mieux que VSS.

Steven Evers
la source
"la plupart" est un peu déconcertant ... ou en d'autres termes: quoi de pire que VSS?
Jürgen A. Erhard
@jae: Must est juste un qualificatif indiquant que je ne les ai pas tous utilisés et que je ne peux donc pas vérifier leur qualité par rapport à VSS; d'où "ou tous"
Steven Evers
9

Utiliser SourceSafe dans une opération commerciale, c'est comme chauffer le bâtiment en brûlant des billets d'un dollar.

En 2000, mon entreprise de huit développeurs a probablement perdu 5 à 10% de sa productivité en raison des corruptions deux fois par jour en moyenne des bases de données VSS. C'était seulement si bas parce que nous étions passés à des sauvegardes toutes les heures.

Depuis que je suis passé de VSS à Perforce, svn et git, je n'ai jamais vu une base de données SCM corrompue.

Bob Murphy
la source
7

Je vais peut-être voter pour l'enfer, mais ..

texte alternatif

VSS vous met efficacement sous contrôle, dans la mesure où vous ne pouvez pas concilier toute sorte de réalité nécessaire pour réaliser que votre repo maintenant foutu n'était pas de votre faute.

S'il vous plaît, ne l'utilisez jamais.

Tim Post
la source
Il est peu probable que vous soyez rejeté. Ma seule critique est que le cyanure est évidemment le médicament de choix pour l'utilisateur habituel de VSS.
Orbling
7

utilisé pendant des années - c'était la solution par défaut, car elle était déjà là. Si ça m'a mordu plusieurs fois, mais l'inertie est difficile à surmonter

Ensuite, je devais l'utiliser à distance via VPN, et même les enregistrements mineurs étaient comme enfoncer une brique dans un trou d'épingle . Il était plus rapide de trouver manuellement les fichiers modifiés, de les compresser, de les envoyer par e-mail, de les connecter à distance à la machine du coffre-fort source, de les décompresser et d’archiver le code de la machine du coffre-fort source.

Passé à Mercurial. Je peux cloner l'intégralité de la base de code source sur le VPN en moins d'une minute. Et je n'ai plus peur des ramifications.

Jamais de retour.

Steven A. Lowe
la source
La source hors site était pour ça. Je m'en souviens aussi bien. En fait, j'ai acheté ma propre copie de la source hors site juste pour ne pas avoir à faire de VSS sur le VPN
BlackICE
+1 pour "Je n'ai plus peur de ramifier" le signe d'un SCM mature
Gary Rowe
5

C'est une abomination. Mais encore mieux que rien.

Glace noir
la source
12
Avec toutes les alternatives, il est difficile de justifier l'utilisation, car quand il va vers le sud, c'est ce que vous aurez: Rien.
DevSolo
13
Comment cela peut-il être mieux que rien si cela vous fait perdre du travail?
billy.bob
4
Vous pouvez également perdre du travail avec rien, sourcesafe peut au moins vous sauver parfois .
BlackICE
4
@David - il en va de même pour les sauvegardes sensibles avant de faire quoi que ce soit de potentiellement «icky». La seule chose qui rivalise avec VSS en cas d'échec est MS BOB. VSS est tellement horrible qu'un organisme de bienfaisance devrait être créé au nom de guérir les gens de l'utiliser.
Tim Post
9
Non, c'est pire que rien. Parce que si vous n'avez pas également de sauvegardes, vous avez un faux sentiment de sécurité et vous pouvez TOUT perdre
CaffGeek
5

Je l'ai utilisé pendant une longue période (près de 10 ans) sans jamais rencontrer personnellement de problèmes (y compris au sein des équipes dans lesquelles je travaillais, même si notre code avait tendance à être assez bien divisé pour éviter les conflits, etc.).

Mais il y a beaucoup trop d'histoires de perte de données pour continuer à l'utiliser lorsqu'il existe des alternatives open source décentes et fiables.

Edit: D'après les commentaires, le message semble éviter tout ce qui est complexe (branchement, fusion, conflits) et vous allez probablement bien. Rien de plus et vous vous dirigez vers un territoire à risque.

Jon Hopkins
la source
Travailliez-vous au sein d'une équipe ou sur des projets solo dans une base de code globale?
Gary Rowe
Au sein d'une équipe, la base de code était relativement bien divisée en termes de qui travaillait sur quoi, donc il y aurait rarement eu des conflits.
Jon Hopkins
@Jon Cela explique en grande partie le fonctionnement sans problème.
Gary Rowe
1
FWIW mon expérience est similaire à celle de Jon. 7 ans, équipe de 8 personnes, aucun problème avec VSS. Apparemment, nous sommes dans la minorité (chanceuse). Je ne l'utiliserais plus jamais sur la base de toutes les histoires (en utilisant SVN maintenant).
Steve Fallows
1
Lorsque la ramification, la fusion et la résolution de conflits sont considérées comme des opérations complexes, vous utilisez probablement le mauvais système de contrôle de version ...
James
5

Même MS le déprécie au profit de TFS.

Pour un magasin solo ou vraiment petit travaillant dans Visual Studio 6 ou quelque chose de plus ancien, c'est passable et mieux que rien. Je pense qu'il y a beaucoup d'exagération sur la gravité de la situation, mais il ne faut alors qu'une seule instance de perdre un travail précieux pour vous aigrir sur un produit (pour une bonne raison). VSS avait sa place, et je le mérite d'avoir au moins encouragé de nombreux développeurs qui n'utilisaient aucun outil SCM à prendre l'habitude, mais comme de nombreuses technologies, il est maintenant à peu près obsolète.

JohnFx
la source
Amener les gens à commencer à utiliser SCM est bon, aucun argument. Mais ... VSS? Les mauvaises expériences ne peuvent pas seulement donner un mauvais nom à un produit, elles peuvent donner un mauvais nom à toute une catégorie. Ou: combien de développeurs démarrent SCM avec VSS et pensent ensuite "Wow, ce truc SCM est aussi mauvais que ce à quoi je m'attendais" quand VSS a foiré? Sans oublier que SCM est une infrastructure extrêmement critique, ce qui signifie: les bugs ne sont pas autorisés (ouais, je sais ...)
Jürgen A. Erhard
@jae ce n'était pas mon expérience. VSS a été ma première exposition à SCM et je n'ai jamais regardé en arrière. Je n'ai pas subi de perte de données, de corruption ou de problèmes que ce soit pendant des années lors de son utilisation. J'ai finalement évolué, mais je pense qu'il aurait fallu plus de temps pour intégrer un outil s'il n'était pas préinstallé avec Visual Studio à l'époque.
JohnFx
3

Après 3 ans d'utilisation, en me plaignant de temps en temps à mon manager à cause de toutes les alternatives plus avancées / rationnelles, je n'ai jamais vraiment eu de problème avec VSS, mais je n'ai jamais eu non plus d'option.

Mon point de vue est qu'il suce et souffle à la fois.

La partie la plus ennuyeuse à ce sujet n'est pas son horrible versioning et sa capacité de branchement déroutante, mais la zone de liste dans le menu fichier ne vous permet pas d'appuyer sur la touche flèche droite pour développer.

Vraiment douloureux.

Peter Turner
la source
3

Ma vue sur VSS? J'ai refusé quelques offres d'emploi (très bien rémunérées) car elles demandaient des "compétences VSS". Et je suis sûr qu'il y a quelques autres personnes ici qui ont fait de même.

Jas
la source
1
+1, mettre "compétence VSS" sur une offre d'emploi est un signe certain que non seulement l'entreprise utilise VSS, mais qu'elle a une configuration où VSS est déjà si corrompu et problématique qu'il nécessite une véritable expérience VSS pour le faire fonctionner à tout .
Carson63000
1

Non seulement vous souffrez du problème de corruption potentielle de la source (qui devrait être un argument suffisant pour que la direction le remplace), mais vous devez également vivre avec une sauvegarde maladroite et une incapacité à travailler efficacement en équipe sur différents flux de travail.

Trouvez un autre SCM (tout autre) et voyez à quel point les branchements et les fusions peuvent être faciles. Pensez à ces moments où vous avez dû copier des fichiers de votre solution VSS et les conserver ailleurs pendant que vous reveniez pour corriger un bogue sur le code de «production».

Pour commencer, installez simplement GIT - pointez-le sur vos fichiers VSS et voyez combien il est facile pour GASP deux programmeurs de travailler sur différentes parties du même fichier EN MÊME TEMPS, puis demandez au logiciel de fusionner intelligemment vos modifications ... SCM les outils doivent être plus qu'une simple sauvegarde de source.

Paddy
la source
0

Mes vues sur VSS? Je l'utilise régulièrement depuis longtemps (toujours utilisé occasionnellement pour des composants plus anciens) mais c'est trop XX siècle pour notre équipe:

  • Très peu fiable
  • Branches non utilisables
  • Prise en charge des versions très médiocre, vous avez des étiquettes mais (tout comme les branches) pas vraiment utilisables

Je suis avec tout ce qui précède: choisissez l'une des meilleures alternatives open source waaaaay (même les anciens CVS) ou, si votre entreprise a une sorte d'abonnement MSDN, TFS .

t3mujin
la source
0
  • son verrouillage par défaut ralentissait les développeurs, et personne ne voulait gâcher sa configuration
  • il ne s'intègre pas très bien avec d'autres services, par exemple une application web de gestion de projet
  • ça n'allait pas bien fonctionner avec notre serveur CI prévu

Les nouveaux trucs de la Team Foundation 2010 étaient censés aider beaucoup et essayer de s'éloigner des mauvaises parties de VSS. Mais au fond, il repose toujours sur VSS , c'est pourquoi nous sommes passés à SVN.

edit - Je comprends que TFS est tout nouveau, mais lors du test, plusieurs développeurs à qui j'ai demandé avaient des sentiments très similaires. La raison pour laquelle j'ai dit `` à la base '' était parce que je me souviens avoir regardé les fichiers TFS créés dans ma solution qui ressemblaient à ceux créés par VSS. C'est du point de vue du développeur, peut-être même pas au courant de la technologie derrière VSS ou TFS ou tout autre SCM. Désolé pour toute confusion.

jmlumpkin
la source
Quoi!?!? TFS ne s'appuie nulle part sur VSS
BlackICE
TFS a été réécrit à partir de zéro ... ne repose en aucun cas sur VSS.
LeWoody
2
Visual Studio utilise la même API de plug-in SCC pour TFS et VSS. Cette API prend en charge VSS et a une sensation VSS, donc lorsque vous passez de VSS à tout autre serveur de contrôle de source, vous aurez l'impression que le fantôme de VSS est toujours là.
MatthewMartin
1
@LWoodyiii: Comment ont-ils fini par coder deux fois un tas de merde fumant? Ils doivent au moins avoir lu les commentaires dans le code source VSS.
Robert S Ciaccio
1
@CraigTP: la plupart des développeurs n'ont absolument pas besoin des trucs dans TFS. C'est juste du bruit qui rend leur travail plus difficile. Si les PM et les prospects veulent toutes ces fonctionnalités, ils doivent se séparer du logiciel qu'un développeur doit utiliser pour être productif.
Robert S Ciaccio
0

À l'époque, j'étais aux prises avec SCCS sous XENIX. VSS, dans Visual Studio 6, pour tous ses échecs et problèmes avait des avantages distincts. Je l'utilise toujours pour de petits projets et je n'utilise plus SCCS dans aucune version.

Dave
la source
0

Je ne peux pas comprendre pourquoi tout le monde veut dénigrer VSS. VSS n'est pas distribué et le contrôle de version distribué est

  1. mieux
  2. permet un contrôle de version non distribué dans la pratique

Veuillez lire ceci .

Dan Rosenstark
la source