Chek-in, Check-Out e Branch com TFS

Tempo de leitura: menos de 1 minuto

E ai pessoal? Tudo bem?

Vamos conversar um pouco sobre Gestão do Código Fonte?Mas gestão do Código fonte com TFS…

Eu acho que todos concordam comigo que o TFS é o melhor sistema para gestão do Código Fonte, e ao contrario do que muitos pensam, o TFS não restringe seu uso apenas ao Visual Studio, a Microsoft desenvolveu um plugin para o Eclipse (TFS AnyWhere), e além disso, você pode versionar seu Código Fonte que não seja nem com o Visual Studio, e nem mesmo com o Eclipse, você pode utilizar o TFS Power Tools, onde você pode executar as funções do TFS direto nas pastas dos arquivos, ou seja, você não tem desculpas para não utilizar o TFS em seus projetos.

 

Mas ai você vai me dizer, Julio, eu até gostaria de utilizar o TFS, mas eu trabalho sozinho / com meus 4 amigos fazendo meu TCC, meus Freelas, e não tenho condições de pagar a licença do TFS. Nesse caso, eu tenho uma ótima noticia para você meu amigo, a Microsoft fornece para nós, meros mortais, o Visual Studio Online, (antigo TFS Online), onde você possui licença gratuita para até 5 usuários que é o suficiente para nossos pequenos projetos, e se você é uma empresa, pode também utilizar o Visual Studio Online, e pagar o valor da licença de acordo com a sua necessidade.

 

Bom, já falamos um pouco sobre o TFS, (fizemos um pequeno merchan..rs)  , então agora vamos conversar um pouco sobre o seu Código Fonte.

Já é de conhecimento de todos, que a maioria das empresas / desenvolvedores, não conhecem toda a capacidade do TFS,e o utiliza apenas para realização de Check-in e Check-Out de código fonte, mas apenas isso, não lhe permite um controle de versionamento de fato, a maioria não coloca nem mesmo Politicas de Check-In para ajudar a melhorar um pouco este cenário.

Para poder explicar um pouco do que quero dizer com Controle de Versão, vejamos o seguinte cenário:

“A equipe de desenvolvimento disponibilizou para a produção(após todo o processo de homologação e testes) a versão 2.0 do sistema de ERP da empresa “XYZ Corporation” e continuou desenvolvendo novas features para a aplicação em ambiente de Dev.

Passados algumas semanas, é aberto um chamado para a equipe de desenvolvimento, informando que uma determinada tela está com erro, e precisa ser corrigida.

Como isso deve ser feito, sendo que desde a disponibilização da versão que se encontra em produção, os desenvolvedores já desenvolveram mais coisas, e fizeram diversos Chek-in’s?”


Já vi em alguns lugares, a equipe fazer a correção na versão atual, e disponibilizar para a produção, mas isso seria um problema, já que existem novas funções disponíveis que ainda não devem ser utilizadas, e já vi também, ficarem peregrinando por check-in’s até encontrar aquele que deveria ser utilizado.

Se você utiliza seu TFS apenas para Check-In e Check-Out, em um caso desses, você fica muitas vezes de mãos atadas, ou então tem muito trabalho para encontrar o Change Set correto.

Oque seria o mais correto para versionar o seu Código Fonte?

Primeiramente, utilizar os comentários de Check-in;

Segundo, utilizar as Label’s do TFS.

A utilização de Label’s é interessante para quando você finalizar uma versão, você “tirar uma fotografia” daquele momento, e marcá-lo como aquela versão, assim, no caso de você ter que recuperar uma versão antiga, é só procurar por aquela label.

Você sabe como fazer para aplicar uma Label no seu projeto? Não? é um processo bem simples, dê uma olhada na imagem abaixo:

 

 

 

 

Viu ai? No Source Control Explorer, basta você clicar com o botão direito do Mouse no projeto que deseja aplicar a Label, ir até Advanced, e clicar em Apply Label.

Feito isso, irá aparecer uma tela, onde você poderá informar o nome da Label, como por exemplo “Versão 1.0”, colocar comentários, e também, informar oque você quer naquela Label, por exemplo, se você quer que seja a ultima versão do Código Fonte, Se você quer que seja um determinado Changeset, se quer que seja uma outra Label, se quer que seja a versão do Workspace, dêem uma olhada na imagem abaixo que poderão ver isso:

 

 

Simples não? E você pensando que isso era algo complicado de se fazer…

 

Agora, voltando um pouco ao nosso exemplo anterior.

Bom, já temos uma maneira simples de como buscar nossa versão do Código Fonte, mas e ai, como vamos fazer para realizar essa alteração no código especifico?

O TFS possui um recurso chamado “Branch”, mas oque seria isso?

Branch, é uma ramificação do seu Código Fonte. Ai você deve estar se perguntando, “Julio, como assim uma ramificação do meu Código Fonte?”, eu explico.

Imagine o nosso exemplo, você disponibilizou a versão 2.0 para a produção, está atualmente desenvolvendo a versão 3.0, mas foi encontrado um erro na versão 2.0 que precisa ser corrigido, e você não quer afetar essa versão para corrigir o erro, nesse caso, você criaria um “Branch”, que seria uma ramificação do seu Código Fonte, você poderia por exemplo, pegar aquela Label que criamos, de trabalhar nela, sem afetar a versão atual, seria algo mais ou menos como na imagem abaixo:

 

 

 

 

 

Com essa imagem, acredito que dê para entender o conceito de Branch, onde atualmente estou na versão 2.2 mas possuo uma Ramificação da versão 2.1.

O Branch, pode se dizer ser isolado do código raiz (aquele em que você trabalha de fato), e as alterações na Branch, só afetam o código principal se você quiser que isso aconteça, mas muitas vezes isso não é necessário, pois você muitas vezes já corrigiu o código no ambiente principal, ou vai faze-lo de outra maneira.

Bom, para criar uma branch, é bem simples também, veja a imagem abaixo:

 

 

Bom, basicamente basta abrir o Source Control Explorer, clicar com o botão direito do mouse no projeto que se deseja criar o Branch, e selecionar a opção “Branching and Merging”, e depois em “Branch”, feito isso, se abrirá uma tela, onde você deve informar como essa Branch deverá ser criada, uma branch pode ser criada apartir de um changeset, apartir de uma label, apartir da ultima versão do código, etc.., veja na imagem:

 

 

Bem simples não? Falei que era facil de se fazer isso…

Depois que criar a branch, ela irá aparecer assim em seu Source Control Explorer:

 

Agora, você tem o projeto principal, e o Branch, que é a cópia do código fonte no momento em que a Label foi criada, você pode trabalhar tranquilamente na Branch, fazer as correções, disponibilizar a versão.

Após terminar de trabalhar com a Branch, você pode criar uma label para ela, como por exemplo “Versão 2.1” e depois pode excluir a Branch, pois com a label, você conseguirá recuperar a Branch com facilidade caso seja necessário.

 

Viram pessoal, esse processo todo é muito simples, muito simples mesmo, e permite um controle muito melhor do versionamento do seu Código Fonte, é realmente uma pena, que a maioria das empresas não se utilizem destes recursos em suas equipes de desenvolvimento, demandando muito tempo e dinheiro quando é necessário corrigir um bug, ou por algum motivo voltar a versão anterior. Eu já vi empresas que mantem histórico de aplicações, copiando toda a pasta do aplicativo quando é disponibilizada uma nova versão, enquanto utilizam o TFS delas apenas para Check-In e Check-Out.

 

Espero que tenha ajudado, e qualquer coisa é só entrar em contato.

 

Links Uteis:

Team Explorer AnyWhere: http://www.microsoft.com/en-us/download/details.aspx?id=30661

TFS Power Tools 2013: http://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f