O SourceSafe é realmente seguro?

27

Depois de passar a manhã inteira tentando verificar algo - agora percebo que perdi alguns dias de trabalho.

Isso já aconteceu antes - e é aparentemente uma ocorrência comum com o SourceSafe. O SourceSafe pode ser usado com sucesso, sem problemas e, em caso afirmativo, como?

billy.bob
fonte
40
Oh, meu Deus, NÃO ... nunca, nunca mais!
Tim Post
27
Eu lutei muito e muito para tirar o SourceSafe da minha empresa. Eventualmente ganhou e todos estão mais felizes por isso.
Kevin D
13
Qualquer organização que usa o VSS é um mau "cheiro de org"
JoelFan
8
A frase "Verificando cedo e frequentemente". é evitar esse tipo de situação. Você nunca deve perder mais do que algumas horas de trabalho. No entanto, o Iron Maiden disse o melhor sobre o VSS: "Corra para as colinas! Corra por sua vida!"
Ryan Hayes
3
A Microsoft não usa. Por que deveríamos?
greyfade

Respostas:

45

Minha opinião é simples, migrar para outra coisa o mais rápido possível. Não demorará muito (1-2 semanas no WAG) e não importa quanto tempo a migração leve, é fácil justificar isso para o gerenciamento. Um pouco de tempo para migrar equivale a um sólido controle de origem e muito pouca chance de perda de código-fonte. Faça uma pesquisa rápida no Google por "histórias de terror seguras na fonte" ou similar se seu chefe for cético.

DevSolo
fonte
É verdade, mas às vezes não é fácil justificar para uma pessoa não técnica que passa de uma a duas semanas migrando o controle de origem.
T3mujin
2
@ t3mujin, consulte a discussão sobre "dívida técnica" programmers.stackexchange.com/questions/18059/…
Nemi
O SourceSafe é um passivo ativo e contínuo para a sua produtividade a curto e longo prazo. Ele pode ser facilmente substituído por qualquer número de sistemas de controle de versão modernos, seguros e distribuídos. Faça uma pesquisa com o Google sobre as histórias de horror do SourceSafe, bem como orientações profissionais. FAÇA SEU CASO FORTE. Faça o que for preciso.
Adam Crossland
3
@ t3mujin: migre-o projeto por projeto. Onde estou trabalhando, costumávamos usar o SourceSafe, agora usamos o TFS. Migrar tudo (centenas de projetos) seria doloroso; portanto, se ainda temos trabalho a fazer em um projeto antigo ainda no SourceSafe, gastamos pouco tempo migrando-o e só então começamos a trabalhar.
Carson63000
@ Carson63000 Estamos usando o TFS para a maioria dos projetos atuais, mas há uma grande base de fontes com poucas atualizações ocasionais no VSS que ninguém está disposto a pagar pela migração para o TFS. Eu não estou na equipe que usa-lo mais frequentemente por isso estou OK com algumas linhas de código de vez em quando
t3mujin
33

Pior. SCM. Sempre.

Tudo o que está errado no SCM é incorporado no VSS. Até o StarTeam é melhor que o Source Safe. O Source Safe é o Internet Explorer 1 do mundo do controle de versão: totalmente substituído por qualquer outra implementação.

Como eu o usei?

Meu fluxo de trabalho típico para fazer as coisas era

  1. Confira o projeto
  2. Bloqueie todos os arquivos (para evitar a fusão com o de alguém que abriu os portões profanos do inferno)
  3. Meu trabalho
  4. Cada dia verificava minhas alterações
  5. Verificou tudo de novo e corrigiu todos os problemas com a integração
  6. Verificou novamente

Em comparação com o Subversion, o acima é risível (além de verificar se você não quebrou a compilação).

Restrições às práticas de programação da minha equipe

Essas são as regras que a equipe teve que trabalhar para fazê-la funcionar para nós. Sua milhagem pode variar.

  1. Apenas uma pessoa pode editar um arquivo (o Céu o ajudará se forem de férias)
  2. Não ramifique, é muito difícil de gerenciar
  3. Nunca tente voltar para uma revisão anterior

O que pode ser feito?

O Polarion possui um bom conjunto de ferramentas para migrar de fontes seguras para o Subversion (SVN), que é o padrão de fato atual na maioria das empresas para controle de versão de código aberto. O Subversion sofre por exigir que um servidor esteja disponível para permitir check-ins (diferente do GIT ou Mercurial, que são projetados para equipes offline distribuídas).

Gary Rowe
fonte
@ David não me faça começar na tentativa de obter históricos de revisão de arquivos ou ramificação (eu estou chorando enquanto escrevo - tantas horas desperdiçadas da minha vida ...)
Gary Rowe
2
Sim, ramificação e mesclagem não são realmente divertidas em um bom SCM. Eu não acho que o congresso permita que você faça as pessoas fazerem isso de forma segura.
BlackICE
2
Nunca voltar para uma versão anterior? Por que não? E se sim, qual é o objetivo de usar uma ferramenta SCM?
JoelFan
No dia em que eu estava em uma loja que usava VSS, nunca tivemos nenhum problema em voltar para uma versão antiga. Isso parece um pouco extremo. Estou com você na ramificação embora.
JohnFx
@JohnFx @SpashHit Nossa equipe tinha uma tolerância muito baixa à dor, então talvez eu esteja sendo um pouco exagerada. Quando o Subversion apareceu, foi como se um peso poderoso tivesse sido levantado.
Gary Rowe
15

Mude o seu Source Control para SVN / Mercurial / Git e nunca olhe para trás!

Amir Rezaei
fonte
3
É de "Mercurial", não "Mercury" (apenas escolher algumas lêndeas aqui, sem ofensa)
Jürgen A. Erhard
@jae Corrigido isso para você :-)
Gary Rowe
11

Nós o retiramos de operação há cerca de um ano.

Aconteceu várias vezes que o que eu havia feito o check-in na noite anterior simplesmente não estava lá na manhã seguinte. Eu não achei isso divertido porque parecia suspeito que eu não tinha terminado o meu trabalho. Desde que eu era novo na empresa, isso poderia ter sido perigoso para mim.

Nós os mudamos para o TFS e ele vem operando sem problemas desde então.

user8685
fonte
1
+1 para retirar a operação. Você fez a coisa certa.
Gary Rowe
1
O TFS é uma coisa linda e linda. Se você tem dinheiro para pagar, é isso.
Adam Crossland
2
@ Adam Crossland: Bonito como um diamante grande e com o mesmo preço.
Orbling
1
@ Orbling: bem dito.
Adam Crossland
1
Para quem não reconhece a abreviação, o TFS é o Team Foundation Server da Microsoft .
amigos estão dizendo sobre keith thompson
9

Minha visão?

Existem melhores que são mais fáceis de usar, mais seguros e totalmente gratuitos. Por que se preocupar em usá-lo?

Essa é uma área de desenvolvimento em que temos muitas opções de escolha; a maioria, ou tudo, melhor que o VSS.

Steven Evers
fonte
"most" é um pouco desconcertante ... ou, de outra forma: o que é pior que o VSS?
Jürgen A. Erhard
@jae: Must é apenas um qualificador, indicando que eu não os usei todos e, portanto, não posso verificar sua qualidade com relação ao VSS; daqui "ou todos"
Steven Evers
9

Usar o SourceSafe em uma operação comercial é como aquecer o prédio queimando notas de dólar.

Em 2000, minha empresa de oito desenvolvedores provavelmente perdeu de 5 a 10% de sua produtividade devido às corrupções duas vezes ao dia, em média, dos bancos de dados VSS. Era tão baixo porque tínhamos feito backups de hora em hora.

Desde que me mudei do VSS para Perforce, svn e git, nunca tive um banco de dados do SCM corrompido.

Bob Murphy
fonte
7

Eu posso ser votado no inferno por isso, mas ..

texto alternativo

O VSS efetivamente coloca você na droga, na medida em que você não pode conciliar nenhum tipo de realidade necessária para perceber que o seu repo agora cancelado não foi sua culpa.

Por favor, nunca use.

Tim Post
fonte
É improvável que você seja rejeitado. Minha única crítica é que o cianeto é obviamente a droga de escolha para o usuário habitual do VSS.
Orbling
7

usou por anos - era a solução padrão, pois já estava lá. Tinha me mordido algumas vezes, mas é difícil superar a inércia

então eu tive que usá-lo remotamente através de VPN, e até pequenos check-ins eram como enfiar um tijolo em um buraco de alfinete . Foi mais rápido encontrar manualmente os arquivos que foram alterados, compactá-los, enviá-los por e-mail, remotamente para a máquina do Vault de origem, descompactá-los e fazer check-in do código na máquina do Vault de origem.

Alterado para Mercurial. Posso clonar toda a base de código-fonte na VPN em menos de um minuto. E eu não tenho mais medo de ramificar.

Nunca mais voltarei.

Steven A. Lowe
fonte
A fonte externa foi para isso. Eu me lembro disso também. Na verdade, comprei minha própria cópia da fonte externa, para não precisar fazer o VSS pela VPN
BlackICE
+1 para "Não tenho mais medo de ramificar" o sinal de um SCM maduro
Gary Rowe
5

É uma abominação. Mas ainda melhor que nada.

Gelo preto
fonte
12
Com todas as alternativas, é difícil justificar o uso, porque quando vai para o sul, é isso que você terá: Nada.
precisa saber é o seguinte
13
Como pode ser melhor que nada se isso faz com que você perca o trabalho?
precisa saber é o seguinte
4
Você também pode perder o trabalho com nada; o sourcesafe pode às vezes salvá-lo .
BlackICE
4
@ David - o mesmo pode fazer backups sensatos antes de fazer qualquer coisa potencialmente "nojenta". A única coisa que rivaliza com o VSS em falha é o MS BOB. O VSS é tão horrível que uma instituição de caridade deve ser criada em nome de curar as pessoas de usá-la.
Tim Post
9
Não, é pior que nada. Porque se você também não tem backups, tem uma falsa sensação de segurança e pode perder TUDO
CaffGeek
5

Eu o usei por um longo tempo (quase 10 anos) sem ter problemas pessoais (inclusive nas equipes em que eu estava trabalhando), embora nosso código tendesse a ser razoavelmente bem dividido para evitar conflitos e coisas do gênero.

Mas há muitas histórias de perda de dados para continuar usando quando existem alternativas decentes e confiáveis ​​de código aberto por aí.

Edit: A partir dos comentários, a mensagem parece evitar qualquer coisa complexa (ramificação, fusão, conflito) e você provavelmente está bem. Mais alguma coisa e você está entrando em território arriscado.

Jon Hopkins
fonte
Você estava trabalhando em equipe ou em projetos individuais em uma base de código geral?
Gary Rowe
Dentro de uma equipe, embora a base de código estivesse relativamente bem dividida em termos de quem estava trabalhando no quê, raramente haveria conflitos.
Jon Hopkins
@ Jon Isso ajuda bastante a explicar a operação sem problemas.
Gary Rowe
1
FWIW minha experiência é semelhante à de Jon. 7 anos, equipe de 8 pessoas, sem problemas usando o VSS. Aparentemente, estamos na minoria (sortuda). Eu nunca o usaria novamente com base em todas as histórias (usando o SVN agora).
Steve Fallows
1
Quando ramificação, mesclagem e resolução de conflitos são consideradas operações complexas, você provavelmente está usando o sistema de controle de versão errada ...
James
5

Até a MS está preterindo isso em favor do TFS.

Para uma loja individual ou muito pequena trabalhando no Visual Studio 6 ou algo mais antigo, é aceitável e melhor que nada. Eu acho que há muito exagero sobre o quão ruim foi, mas é preciso apenas um exemplo de perda de trabalho valioso para agredi-lo em um produto (por um bom motivo). O VSS tinha o seu lugar, e eu o credito por pelo menos encorajar muitos desenvolvedores que não usavam nenhuma ferramenta SCM a adquirir o hábito, mas, como muitas tecnologias, agora é praticamente obsoleto.

JohnFx
fonte
Fazer com que as pessoas comecem a usar o SCM é bom, sem argumentos. Mas ... VSS? Experiências ruins não podem apenas dar um nome ruim a um produto, podem dar um nome ruim a toda uma categoria. Ou: quantos desenvolvedores iniciam o SCM com o VSS e depois pensam "Uau, esse material do SCM é tão ruim quanto eu esperava" quando o VSS estragou tudo? Sem mencionar que SCM é um extremamente peça fundamental da infra-estrutura, ou seja: erros não permitidos (sim, eu sei ...)
Jürgen A. Erhard
@jae que não foi a minha experiência. O VSS foi minha primeira exposição ao SCM e nunca olhei para trás. Não experimentei nenhuma perda de dados, corrupção ou qualquer problema durante anos ao usá-lo. Acabei seguindo em frente, mas acho que levaria mais tempo para integrar uma ferramenta se ela não tivesse sido pré-instalada com o Visual Studio naquele dia.
JohnFx
3

Depois de três anos de uso, reclamando de vez em quando com o meu gerente por causa de todas as alternativas mais avançadas / racionais existentes, nunca tive realmente um problema com o VSS, mas também nunca tive uma opção.

Na minha opinião, é uma merda e um golpe.

A parte mais irritante sobre isso não é a capacidade de criação de versões horrível e de ramificação confusa, mas a caixa de listagem no menu arquivo não permite que você pressione a tecla de seta direita para expandir.

Verdadeiramente doloroso.

Peter Turner
fonte
3

Minha opinião sobre o VSS? Recusei algumas ofertas de emprego (muito bem pagas) porque solicitavam "proficiência em VSS". E tenho certeza de que há outras pessoas aqui que fizeram o mesmo.

Jas
fonte
1
+1, colocar "proficiência no VSS" em um anúncio de emprego é um sinal claro de que não apenas a empresa usa o VSS, mas também que eles têm uma configuração em que o VSS já está tão corrompido e problemático que exige experiência genuína do VSS para fazê-lo funcionar em tudo .
Carson63000
1

Você não apenas sofre do problema de corrupção potencial da fonte (que deve ser um argumento suficiente para o gerenciamento substituí-lo), mas também precisa viver com um backup desajeitado e com uma incapacidade de trabalhar efetivamente como uma equipe em diferentes fluxos de trabalho.

Encontre outro SCM (qualquer outro) e veja como é fácil ramificar e mesclar. Pense nos momentos em que você teve que copiar arquivos da sua solução VSS e mantê-los em outro lugar enquanto voltava para corrigir um erro no código de 'produção'.

Para começar, basta instalar o GIT - aponte-o para seus arquivos VSS e veja como é fácil para o GASP dois programadores trabalharem em diferentes partes do mesmo arquivo AO MESMO TEMPO, e depois fazer com que o software mescle suas alterações de maneira inteligente ... SCM As ferramentas devem ser mais do que apenas backup de origem.

Paddy
fonte
0

Meus pontos de vista sobre o VSS? Usou-o por um longo período de tempo regularmente (ainda usado ocasionalmente para componentes mais antigos), mas ainda é século XX para nossa equipe:

  • Muito pouco confiável
  • Ramos não utilizáveis
  • Suporte de versão muito ruim, você tem rótulos, mas (assim como ramos) não é realmente utilizável

Estou com todas as opções acima: escolha uma das melhores alternativas de código aberto (mesmo CVS antigo) ou, se sua empresa tiver algum tipo de assinatura do MSDN, TFS .

t3mujin
fonte
0
  • seu bloqueio padrão estava atrasando os desenvolvedores e ninguém queria mexer com sua configuração
  • ele não se integra muito bem a outros serviços, por exemplo, um aplicativo da web de gerenciamento de projetos
  • não funcionaria bem com o servidor de CI planejado

O novo material da Team Foundation 2010 deveria ajudar muito e tentar fugir das partes ruins do VSS. Mas, em sua essência, ele ainda conta com o VSS , e é por isso que mudamos para o SVN.

editar - Eu entendo que o TFS é totalmente novo, mas ao testá-lo, vários desenvolvedores que perguntei tinham sentimentos muito semelhantes a ele. O motivo pelo qual eu disse 'no seu núcleo' foi porque me lembro de olhar para os arquivos que o TFS criou na minha solução que se pareciam com os do VSS. Isso é do ponto de vista do desenvolvedor, talvez nem mesmo saiba sobre a tecnologia por trás do VSS, TFS ou qualquer outro SCM. Desculpe por qualquer confusão.

jmlumpkin
fonte
O que!?!? O TFS não confia em nenhum lugar no VSS
BlackICE
O TFS foi reescrito desde o início ... não depende do VSS de forma alguma.
LeWoody
2
O Visual Studio usa a mesma API de plug-in SCC para TFS e VSS. Essa API oferece suporte ao VSS e possui uma aparência do VSS; portanto, quando você muda do VSS para qualquer outro servidor de controle de origem, é como se o fantasma do VSS ainda estivesse lá.
MatthewMartin
1
@LWoodyiii: Então, como eles acabaram codificando uma pilha de porcaria tão fumegante duas vezes? Eles devem ter pelo menos lido os comentários no código fonte do VSS.
Robert S Ciaccio
1
@ CraigTP: a maioria dos desenvolvedores não precisa absolutamente do material no TFS. É apenas o barulho que dificulta o trabalho deles. Se PMs e leads desejam toda essa funcionalidade, eles devem se separar do software que um desenvolvedor precisa usar para ser produtivo.
Robert S Ciaccio
0

Naquele dia, fui confrontado com o SCCS sob o XENIX. O VSS, no Visual Studio 6, por todas as falhas e problemas, teve vantagens distintas. Ainda o uso para pequenos projetos e não uso mais o SCCS em nenhuma versão.

Dave
fonte
0

Não consigo entender por que todo mundo quer falar mal do VSS. O VSS não é distribuído e o controle de versão distribuído é

  1. Melhor
  2. permite controle de versão não distribuído na prática

Por favor, leia isto .

Dan Rosenstark
fonte