Provavelmente somos uma das únicas (sei lá quantas, mas devem ser poucas) equipes de desenvolvimento neste mundo que utilizam como repositório de desenvolvimento, o antigo Microsoft Visual Source Safe, ou VSS como todos dizem.
Como plugin de integração à base do VSS, utilizamos o “Vss Eclipse Plugin“. A interface é bastante amigável e o plugin funciona de forma excelente, até que um belo dia você se depara com a seguinte mensagem:
“Unable to find any valid VSS Installation.
Are you sure that the VSS installation is not currupt? “

O erro acima passou a ocorrer, após uma nova pessoa ter iniciado em nossa equipe. Ele passou a utilizar uma máquina que já contava com o eclipse em pleno funcionamento com o plugin do VSS, mas seu login de rede era outro e o IP da máquina tmabém havia mudado.
Levamos horas, literalmente, para encontrar uma solução para este problema. Como algo que já funcionava, que não havia sido alterado, que não contava com novas instalações ou desinstalações passou a deixar de funcionar, apenas porque o login e o IP eram outros?
Depois de muito fuçar, entendemos que o plugin do VSS, que exige a instalação de um VSS client na máquina dos desenvolvedores, fazia referência ao ProgID “SourceSafe” para funcionar. Com esta informação em mãos, tínhamos duas alternativas, ou a engine JNI que faz a interação entre objetos COM e o java do SWT não estava funcionando corretamente por algum motivo qualquer, ou algo estava realmente errado na máquina, fazendo com que o ProgID necessário não fosse encontrado.
Para testar as alternativas, criamos um programa simples em VB Script (argh) para identificar se ele conseguiria criar o objeto “SourceSafe”
dim vss
set vss = CreateObject(”SourceSafe”)
Resultado!!! Na máquina em que o plugin do VSS não funcionava, este pequeno trecho também não rodou, identificando que algo no maldito registry do Windows não estava adequado. Como em todas as outras máquinas da equipe de desenvolvimento, esta máquina em questão contava com o SourceSafe 2005, ou 8.0 de acordo com a Microsoft. Mas o curioso é que nesta máquina, o ProgID do VSS não era SourceSafe, como em todas as outras, mas sim SourceSafe.8.0 ! Mais uma vez a Microsoft nos faz ficar algumas horas a mais no trabalho, por algum motivo que não conseguiremos explicar nunca, talvez. Como em outras máquinas o ProgID era outro? Mistério.
Para solucionar o problema, precisávamos indicar ao plugin do VSS que o ProgID a ser utilizado era outro. Identificamos então que o arquivo contido em eclipse\plugins\org.vssplugin_1.6.1\org\
vssplugin\message.properties continha uma entrada (graças a Deus) para o nome do ProgID a ser executado. A linha é a seguinte:
# ***********************************************************************************
# Strings from the VSS OLE Interface.. Change these if needed on non-english VSS versions.
# ***********************************************************************************
vssOlePrgName=SourceSafe
Bastando alterar o valor "SourceSafe” para "SourceSafe.8.0" e pronto, um abrir e fechar do eclipse e tudo funciona como deveria!