Bug no Team Foundation Version Control

Aconteceu com um de nossos desenvolvedores aqui na FórumAccess: ao trabalhar com datasets tipados, o designer de datasets passou a “explodir” com uma mensagem de ACCESS_DENIED. Minha primeira providência foi checar as permissões no TFS – estava tudo OK. Depois, fui checar as permissões da cópia local no workspace dele. Qual não foi minha surpresa quando, ao abrir o diretório, vi que os arquivos .cs dos datasets dele tinham virado diretórios!!!

Provavelmente isso se deve a um erro conhecido do Team Foundation Server, disponível na página de FAQ do projeto de Web Applications para Visual Studio 2005:

Issue 7 – Using TFS Source ControlThere is a known issue with the enterprise source control system in the Team Foundation Server (TFS) which incorrectly identifies codebehind classes for .aspx. and .ascx files as folders.

To workaround, do not use “File/Source Control/Open from Source Control”. Instead, manually get the solution using Team Explorer and open the solution from local disk.

This problem will be fixed in a future release of Team Foundation Server.

Ou seja, além de páginas e controles ASP.NET, datasets tipados também estão sujeitos ao bug.

1

Alguém mexeu no meu check-out

Temos tido algumas experiências não muito divertidas com o controle de versão do TFS aqui na FórumAccess. Elas se devem basicamente ao fato de que antes usávamos o Visual SourceSafe (VSS).

Não, não é um problema de migração. Aliás, se você tem um repositório no SourceSafe e pretende migrar para o TFS, fique tranqüilo: a conversão é possível e você mantém todo o histórico do VSS.

Na verdade, a diferença é cultural. O problema deve-se ao fato que check-out no VSS e no TFS não significam a mesma coisa!

  • No VSS, podemos dizer que check-out significa “baixe a última versão disponível do arquivo, coloque uma trava no servidor para evitar outros check-outs desse arquivo e altere-o de somente-leitura para leitura-gravação no meu computador”. Ufa! Quanta coisa num comando só!
  • Já no TFS, check-out significa simplesmente “avise aos outros que estou editando este arquivo”. Viu que diferença?

O ponto de maior destaque aqui é que o TFS não faz um “Get Latest Version” no momento do check-out, em oposição ao modelo do VSS.

Por conta disso tivemos algumas discussões acaloradas aqui na empresa. Alguns desenvolvedores chegaram a chamar a ferramenta de “burra”:

“Oras”, disseram, “se estou fazendo check-out é porque quero editar o arquivo. Se quero editar o arquivo, é claro que quero a última versão!!!”

Pode parecer óbvio assim, mas na verdade não é. Se você pensar uma segunda vez a respeito disso, vai ver que o TFS é mais inteligente do que alguns imaginam… 😉

Acompanhe meu raciocínio. Quando você baixa uma versão de um projeto do controle de versão, está na verdade pegando um conjunto de artefatos interligados e interdependentes. Todos os arquivos devem estar no mesmo estágio de desenvolvimento para que seja possível compilar sua solução. Assim, se você baixa um projeto inteiro e depois de dois dias faz check-out para alterar um dado arquivo, pode ser que esse mesmo arquivo tenha sido modificado por alguém nesse intervalo de dias. Se a ferramenta fizer um Get Latest Version, você irá receber um arquivo que não está no mesmo estágio de desenvolvimento que o restante na sua máquina. As alterações incluídas pelo outro desenvolvedor podem quebrar seu build. Por isso, faz sentido integrar suas alterações com as demais feitas pelo resto da equipe apenas quando elas estiverem prontas. Enquanto isso, você tem uma versão estável do código-fonte, mesmo que os outros estejam fazendo check-in de seus trabalhos.

1

VSTS Rocks Day II

No último sábado, dia 27 de maio, tivemos a segunda edição do VSTS Rocks Day na sede da Microsoft Brasil, em São Paulo.

O principal evento do grupo VSTS Rocks demonstra na prática como usar o Team System, simulando a utilização da ferramenta no ambiente de uma empresa, cobrindo todo o ciclo de vida da ferramenta – desde a preparação inicial do projeto até a fase de testes, passando pela arquitetura e desenvolvimento da solução.

Cada um dos apresentadores representava um papel na estrutura do projeto. Todos os principais papéis estavam presentes, como o cliente, o gerente de projeto e a equipe de desenvolvimento:

  • Eu fiz o papel de Administrador de TFS e Gerente de Configuração, demonstrando como criar e configurar um Team Project, bem como demonstrando os novos recursos da ferramenta de controle de versão (Team Foundation Version Control). O Gerente de Configuração é peça-chave em modelos de processos como o CMMi, que prevêem a Gerência de Configuração como maneira de controlar a integridade dos produtos de trabalho como documentos e códigos-fonte produzidos pelo time;
  • Fábio Hirota, diretor de tecnologia da FórumAccess, representou o Cliente, mostrando como os stakeholders podem acompanhar o andamento do projeto através do portal de projetos do Team System;
  • Fábio Câmara, MVP de VSTS, representou o Gerente de Projeto, distribuindo tarefas e monitorando seu andamento, mostrando como gerar itens de trabalho (work items) através das ferramentas mais comuns a gerentes de projeto: Microsoft Excel e Microsoft Project;
  • Alexandre Tarifa, MVP de Visual Basic .NET, como Arquiteto de Sistemas, demonstrou o Diagrama de Soluções Distribuídas, com o qual modelou aplicações e web services, gerando código e orientando a equipe de infra-estrutura no processo de implantação (deployment) do sistema depois de pronto;
  • Mauro Sant’Anna, MVP em Segurança de Aplicações, foi o Desenvolvedor, demonstrando como criar código de qualidade usando ferramentas tais como a analisador de código estático (Code Analysis Tool, também conhecido como FxCop);
  • Andrey Sanches, MVP de ASP.NET, no papel de Analista de Testes, mostrou como é simples criar testes unitários e medir a cobertura de código (code coverage) usando os novos recursos do Team System;
  • Emerson Facunte, MVP de ASP.NET, foi nosso maestro, garantindo uma perfeita integração entre o time e a platéia.

Veja quais foram os principais aspectos abordados na apresentação:

  • Processos e metodologias de desenvolvimento; ciclo de vida de desenvolvimento de software e MSF 4.0 (Fábio Câmara, Fábio Hirota);
  • Visual Studio Team System, Team Editions, Team Foundation Server, Team Foundation Version Control (eu mesmo 😉 );
  • Team Edition for Software Architects, Distributed Systems Diagram (Alexandre Tarifa);
  • Team Edition for Software Developers, Static Code Analysis (Mauro Sant’Anna);
  • Team Edition for Software Testers, Unit Tests (Andrey Sanches)

Àqueles que estiveram conosco no sábado, meu sincero obrigado. Espero que vocês tenham gostado e se divertido! Utilizem nossos fóruns para dúvidas, dicas e sugestões. E fique de olho no nosso portal para saber dos próximos eventos.

Se você não pôde comparecer mas quer saber mais sobre o Visual Studio Team System, não pode perder os últimos dias do Microsoft Community Days, evento que está rodando o Brasil com diversas palestras – sendo uma delas sobre o Team System. Confira as próximas datas:

  • 06 de junho, Salvador (Fábio Câmara);
  • 13 de junho, Recife (eu);
  • 20 de junho, encerramento em Belo Horizonte (eu).

Veja mais algumas das fotos do evento:

P.S.: Gostaria de deixar um abraço ao nosso amigo Hélio, membro fundador do VSTS Rocks e que participou da primeira edição mas infelizmente não pôde participar da segunda. Te esperamos na próxima!

             
1

SCRUM Process Template para o Team System!

Está disponível para download o Scrum for Team System da Conchango. Com ele é possível adicionar ao Team System um novo process template para processos baseados na metodologia SCRUM.

E o melhor: É gratuito!  😉

Para saber mais:

Fonte: http://blogs.msdn.com/robcaron/archive/2006/03/26/561657.aspx

1