Há algumas semanas, durante um processo migração de um TFS 2008 para o TFS 2010 tive a infelicidade de me deparar com alguns bugs no novo produto. E não eram aqueles bugs que travam a ferramenta e quando você reinicia está tudo ok novamente, eram bugs que aparentemente tinham migrado informações incorretamente ou simplesmente não tinham migrado todas as informações de uma versão para a outra.

O primeiro bug foi reportado por um membro do time que não conseguia realizar um Merge, pois os valores da Drop Down List da Target Branch estavam completamente incorretos. Em alguns casos o Visual Studio 2008 simplesmente perguntava se você queria fazer um merge de $/Proj/Main para $/Proj/Main, ou seja, para o mesmo lugar.

O segundo foi um pouco pior, um programador veio até a minha mesa e disse que precisava fazer uma alteração em produção, mas que não conseguia criar uma branch baseada numa label que tinha aplicado. Quando fui verificar a label, percebi que apesar dela existir ela estava vazia e a minha reação inicial foi afirmar que o programador tinha aplicado a label de forma incorreta. Porém, após um processo de troubleshooting que chegou a envolver até a restauração do TFS original, descobri que a ferramenta não tinha migrando o conteúdo das labels.

Depois de vários contatos com o time de produto, os bugs foram confirmados e workarounds foram sugeridos:

Para o primeiro caso, fui informado que o bug só acontecia com o VS2008, pois o patch de atualização do VS2008 para se conectar ao TFS 2010 tentava inferir a estrutura de branches ao invés de usar a nova API de branches do TFS 2010 e para casos de branches complexas ele “se perdia” e por isso mostrava valores incorretos no campo de Target Branch. Situação que foi facilmente resolvida utilizando o Team Explorer 2010. No segundo caso, não teve muito jeito, tive que reconstruir as branches na unha, pois o banco já tinha sido migrado. O time de produto até se prontificou de me enviar um QFE (Quick Fix Engineering) e sugeriu para eu refazer a migração, mas o TFS já estava em produção há alguns dias então não valia a pena.

Enfim, após alguns dias trabalhando com a galera do TFS/VS2010 conseguimos colocar o ambiente 100% operacional de novo e a boa notícia é que se você ainda não migrou o seu TFS 2008 para o TFS 2010, temos um hotfix que vai te livrar de todos esses problemas.

O hotfix é baseado no KB2135068 – Labeled items and merge targets missing after upgrade to TFS2010 e pode ser baixado em http://code.msdn.microsoft.com/KB2135068

tfs installation

Uma nota importante é que esse hotfix deve ser aplicado depois da instalação do TFS 2010, porém antes do processo de configuração, ou seja, quando o Wizard de instalação terminar, não clique no botão Configure, ao invés disso, feche a janela, aplique o hotfix e depois acesse o Team Foundation Administration Console para continuar com o processo de configuração.

O processo de aplicação do hotfix é bastante simples e após isso, você deve ter um grande período de lua de mel com todas as novas features do TFS e do Visual Studio 2010.

Se você tiver dúvidas em relação ao processo de migração do TFS 2008 para o TFS 2010, entre em contato.

Um abraço,
André Dias