Controle de versão de código com o Source Control no Team Foundation Service

Um sistema de controle de versionamento é utilizado para controlar versões, manter histórico e controle sob a edição de qualquer tipo de documento. Eles funcionam basicamente assim: você baixa uma versão do arquivo, abre para edição – pode bloquear pra que outras pessoas não editem ao mesmo tempo que você -, após finalizar as alterações envia para o servidor. Quem trabalha em uma equipe de desenvolvimento sabe da importância de utilizar softwares desse tipo nos códigos fonte dos softwares. Até mesmo fazendo um trabalho de faculdade em grupo, ou mesmo desenvolvendo um projeto freelancer apagamos sem querer um arquivo importante, ou alteramos uma linha e depois não lembramos mais qual foi, e já é tarde pois o programa não funciona mais como deveria.

Para solucionar esses e muitos outros problemas ao longo do projeto de software o Visual Studio Team Foundation Server 2012 - que é uma ferramenta de ALM(Gerenciamento do ciclo de vida da aplicação) – oferece um de seus módulos, o Source Control, totalmente integrado à IDE de desenvolvimento Microsoft Visual Studio 2012. Através da Team Explorer você realiza as operações de check in e check out nos arquivos – tendo opção de solucionar conflitos na alteração automaticamente ou manualmente,  visualiza histórico de alteração até a cada linha de código e tem muitas outras opções.

Uma versão gratuita do software é disponibilizada pela Microsoft para que equipes pequenas, de até 5 membros possam utilizar num servidor local em sua rede, é o Team Foundation Server Express. Se você optar pelo cloud, a Microsoft disponibiliza o host gratuito Team Foundation Service, que te permite utilizar o Git ou o Team Foundation Server como repositório do projeto.

tfservice2012host

Antes de começar a trabalhar com controle de versão no TFS você deve saber os principais termos utilizados quando se trabalha dessa forma:

Team Collection: Representa uma coleção de projetos dentro do servidor. Esse agrupamento de projetos permite que configurações que serão comuns á todos eles sejam aplicadas nesse nível. Por exemplo, você pode adicionar permissões aos usuários dessa coleção e todos os projetos que estão dentro dela estarão disponíveis à eles.

Team Project: Representa seu projeto dentro do Team Foundation Server, ele está localizado dentro de uma coleção previamente criada. Você pode conceder permissão ao usuário pra acessar especificamente esse projeto.

Check In: É a ação de enviar os arquivos para o repositório de código.

Changeset: Toda vez que você sobe um arquivo para o servidor é gerado um changeset, que armazena todos os arquivos que foram enviados e o usuário que enviou.

Check Out: É a ação de pegar o arquivo no servidor para edição. Ao fazer isso, você pode escolher entre bloquear para que ninguém mais faça o check in enquanto você estiver alterando o arquivo, ou pode optar por editar mantendo os bloqueios já existentes.

O primeiro passo para começar a utilizar o versionamento de código no host da Microsoft é criar um cadastro com um usuário de e-mail e escolher o domínio da sua hospedagem do Team Foundation Server.

nova conta host

Após criar sua conta, você verá as duas opções pra criação do projeto no servidor: New Team Project – que é por padrão no Team Foundation Server(TFS) – e o New Team Project + Git. Dentro do seu painel de controle da hospedagem você pode acessar tutoriais de ajuda para utilização do serviço, conexão ao servidor via Visual Studio e gerenciamento dos projetos e permissões de usuário.

home

Clicando em qualquer uma das opções de criação de projeto você terá a opção de escolher se quer usar Git ou TFS.

Em Project Name informe o nome do seu projeto, no nosso caso é Primeiro Site. Em Description insira uma breve descrição sobre o que é o projeto. Em Process template escolha o template da metodologia que será utilizada para conduzir o projeto e em Version Control o tipo de controle de versão que você quer utilizar. É importante lembrar que o Process Template você não consegue alterar depois do projeto já criado, nem o Version Control. Pois no caso do Process template, toda a estrutura de etapas do projeto, áreas e iterações são criadas em cima do tipo de template que você escolheu.

novo projeto tfs

Após alguns segundos seu projeto estará criado e você verá essa tela de conclusão bem sucedida.

projeto criado

Clique em Navigate to Project e comece a explorar as opções do seu projeto dentro do Team Foundation Server. Como escolhi o template Scrum para os processos do projeto Primeiro Site, temos as atividades, itens de trabalho, gráfico Burndown e opções de administração do projeto e gerenciamento de membros do projeto.

painel controle

Para se conectar ao serviço via IDE, você deve ter uma dessas ferramentas:

Caso sua IDE seja outra, você deve baixar plugin do TFS ou utilizar apenas o Git:

Dando continuidade ao nosso objetivo com esse tutorial, vamos conectar nosso Visual Studio 2012 ao servidor e subir os arquivos do projeto Primeiro Site. Crie um projeto web ou de qualquer outro tipo com o Visual Studio 2012 e localize sua Team Explorer.

primeira-tela

A Team Explorer é um plugin que conecta sua IDE ao servidor e é através dela que você insere, edita, exclui projetos e arquivos no repositório. Ela divide espaço com a Solution Explorer, bem no canto direito da IDE. De início sua Team Explorer estará desconectada e você tem duas opções: conectar ao Team Foundation Server ou criar uma conta pra hospedar. Como nós já criamos nossa conta e configuramos o projeto no servidor, clique no canto direito no link “Open New Instance of Visual Studio” no painel de controle do projeto no Team Foundation Service. Essa opção irá abrir o Visual Studio e já acionar a conexão ao servidor, informando as credenciais de acesso, que no caso é a que você está utilizando para gerenciar o projeto via browser. Caso sua rede não tenha nenhuma restrição de porta e permissão, você será conectado sem problemas.

team explorer

Caso ele não consiga localizar suas credenciais, você deve informá-las na janela que será apresentada de dentro do Visual Studio.

abrindo vs pelo TFService

A conexão será estabelecida e você poderá subir seu projeto para o repositório de código do TFS. Se não estiver aberto, abra seu projeto e clique em seu nome utilizando o botão esquerdo. Vá na opção Add Solution to Source Control. Essa opção irá te permitir a preparação do projeto no servidor para o envio do seu código.

adicionando código fonte

Uma janela será exibida para que você escolha o nome da pasta em que sua solução será salva no servidor. Ao clicar no botão Advanced você poderá escolher separadamente onde será salva a solução e também a estrutura do site. Clique em OK para prosseguir.

definindo local do projeto no servidor

Note que em frente aos nomes dos arquivos aparece um sinal + na cor verde. Ele indica que você já pode subir seus arquivos, agora que está configurado. Indica que esses arquivos estão em sua máquina local, mas ainda não estão no servidor. Para enviar os arquivos você utiliza o mecanismo chamado Check In.

fazendo checkin

Ao clicar em Check In, será solicitado que você informe um comentário sobre essa ação. É recomendado que sempre seja informado um comentário explicando o motivo do Check In ou até mesmo o que foi alterado pra que haja uma melhor organização do desenvolvimento. No entanto, caso não seja informado o que foi alterado, há um recurso de comparação de versões que mostra linha por linha o que foi modificado e quem efetuou a modificação.

alteracoes pendentes no checkin

Existe a possibilidade de impedir que o programador suba os arquivos para o servidor sem inserir um comentário, mas essas configurações são feitas na área de administração do Team Project. Na Team Explorer clique em Home e será aberto um menu com as opções disponíveis do seu projeto no servidor. Clique em Settings.

acessando configuracoes do projeto

Escolha a opção Source Control para alterar a configuração padrão do controle de versão de código.

acessando configuracoes do projeto - source control

Selecione a opção Check-in Policy, que vai te permitir adicionar regras a serem seguidas para que seja possível enviar os arquivos para o servidor. Clique em Add pra escolher uma nova regra.

acessando configuracoes do projeto - source control - adicionar politica de checkin

Escolha a opção Change Comments Policy, ela obrigará o usuário informar um comentário quando desejar subir o arquivo para o repositório.

acessando configuracoes do projeto - source control - adicionar politica de checkin - escolhendo

Clique em OK para salvar as configurações e tente novamente fazer o check-in, porém não informe o comentário. Você verá que agora o servidor está verificando a regra que acabamos de adicionar.

politica de comentarios no checkin

Informe um comentário e clique em Check In. Note que uma barra de progresso será exibida e listará os arquivos que estão sendo enviados.

notificacao de progresso do checkin

Logo após os arquivos serem enviados,você verá que foi gerado um Changeset e verá o ID correspondente. Nesse changeset está listado todos os arquivos que foram incluídos e outras informações referentes a essa ação no servidor.

checkin concluido
Pela web é possível acompanhar essas alterações e visualizar o código fonte. Clique em CODE no menu do seu projeto e verá que os arquivos foram  enviados com sucesso.

acessando codigo fonte no servidor via browser


Agora vamos fazer uma alteração em um dos arquivos e vamos subir pra o repositório de códigos. Clique com o botão direito sobre o nome do arquivo e vá em Check Out for Edit… .

fazendo checkout

Você poderá escolher o tipo de check out que deseja realizar, se quer bloquear a submissão do arquivo modificado por outras pessoas enquanto está bloqueado com você ou se algum bloqueio já existente irá permanecer.

escolhendo modelo de checlout
Quando concluir o check-out você verá que em frente ao arquivo terá um simbolo vermelho, que indica que você agora pode editá-lo. Os demais estão com um cadeado na frente, que indica que está bloqueado no servidor e se você quiser alterar terá que fazer o check-out como acabou de fazer agora.

alterando uma pagina

Voltando ao acesso web do TFS você pode ver o histórico de alteração de cada arquivo e aí vemos a importância do comentário em cada submissão de alteração, é muito mais fácil saber o que está acontecendo no desenvolvimento quando vemos uma descrição bem elaborada do que o desenvolvedor fez na alteração. Você consegue ver também o histórico dessas alterações dentro da IDE do Visual Studio.

visualizando no servidor o historico de alteracoes

 

Um recurso interessante é que o Compare também está disponível na versão web do TFS o que já estava na IDE, sendo assim, você consegue comparar diferentes versões do código linha a linha e ver o que foi removido e acrescentado.

conferindo no servidor as alteracoes - comparando com versao anterior


Bom, creio que depois desse tutorial você já consiga trabalhar em equipe, conectado á um repositório de código.

Vale ressaltar que o controle de versão é apenas um dos serviços que o Microsoft Team Foundation Server oferece. Dê uma olhada no site dessa poderosa ferramenta pra descobrir as inúmeras vantagens de utilizar essa completa ferramenta de ALM.

Site do produto -> http://msdn.microsoft.com/pt-br/vstudio/ff637362.aspx

Até mais, pessoal! :)

8 responses to “Controle de versão de código com o Source Control no Team Foundation Service

    • Olá Emerson,
      Utilizamos o Team Foundation Server aqui nos projetos da Universidade Vale do Rio Doce desde que ele foi criado. Anteriormente utilizávamos o Source Safe e mais umas outras ferramentas pra obter um resultado de ALM. Não temos o que reclamar do Team Foundation Server aqui e olha que não usamos nem 80% do que ele nos oferece de recurso.

      • Que bom que está dando certo por aí, o meu comentário foi relativo as minhas experiências juntamente com as equipes por empresas que passei e outros colegas de outras empresas também. Nos últimos anos vi muita empresa migrando do TFS pro GIT, mas isso é um assunto bem polêmico, o meu ponto é que juntando todos os recursos que o TFS oferece + o GIT agora integrado, ele ficou realmente bom.

  1. Pingback: Team Foundation Service – TFS SaaS·

  2. Olá. parabéns pelo artigo! Pergunta: posso utilizar o Team Foundation para versionar códigos Java e de outras linguagens “não Microsoft”?
    Abs,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s