Acabei de descobrir por acaso – através de uma pergunta do meu amigo MVP Daniel Oliveira – que o TFS pode apresentar um comportamento inesperado e deixar de executar algumas políticas sob certas circunstâncias.

Se você:

  • Usar a janela Pending Changes para fazer check-in de vários arquivos ao mesmo;
  • Selecionar arquivos pertencentes a diferentes team projects;
  • E tentar fazer o check-in de todos ao mesmo tempo;

Então somente serão executadas as políticas comuns a todos os projetos.

Em outras palavras: Dados os team projects ProjectA e ProjectB, configurados como a seguir;

  • ProjectA: Política de check-in Work Items ativada;
  • ProjectB: Políticas de check-in Work Items e Code Analysis ativadas.

Ao efetuar o check-in dos arquivos $\ProjectA\foo.cs e $\ProjectB\Bar.cs (um de cada team project), apenas a política de Work Items (comum aos dois projetos) será executada. A política de Code Analysis será ignorada!

Quais as alternativas?

  1. Configurar todos os team projects para seguirem as mesmas políticas (nem sempre é viável);
  2. Fazer check-ins de apenas um team project por vez. Para evitar que o desenvolvedor se confunda e faça check-in de mais de um team project ao mesmo tempo, foi criado um add-in que alerta o desenvolvedor e impede o check-in “promíscuo”. Saiba mais em: http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/thread/a71ac2f0-dc9c-4c03-a6a3-ab59877c55d8

Um abraço,
Igor

Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Siga-o no Twitter @igorabade.