Compartilhando o Version Control entre Team Projects no TFS 2013

Salve, salve galera, tudo bem ?

Hoje vamos discutir um assunto que é muito útil quando trabalhamos com equipes que utilizam processos de trabalho diferentes em um mesmo produto, o compartilhamento do version control de uma solução entre Team Projects distintos.

Dentro da arquitetura do TFS temos a premissa que para cada Team Project podemos ter apenas um Process Template ( que determina qual será o work-flow, artefatos, work itens, reports, etc ), sendo assim como fazemos quando trabalhamos com equipes que utilizam processos diferentes para um mesmo produto, como por exemplo equipes WEB que utilizam Scrum para front-end e um processo baseado em CMMI para back-office por exemplo ?

Uma alternativa é fazer o compartilhamento do version control do projeto entre Team Projects diferentes, garantindo assim a integridade do fonte, bem como dos artefatos gerados. E ao mesmo tempo uma flexibilidade no trabalho de cada equipe.

De maneira bem simplista temos um Team Project primário e podemos ter N Team Projects secundários. Quando realizamos esse procedimento estamos dizendo ao TFS que cada Team Project secundário possuí todos os seus artefatos exceto o version control.

Mas como assim ? Sem version control ?

Quando fazemos isso dizemos ao TFS que os Team Projects secundários utilizam o version control do Team Project primário, e também estamos dizendo que cada Team Project secundário é um Branch do version control principal, sendo assim, conseguimos realizar merges entre os fontes, independente do processo, dos artefatos, etc.

Mas chega de lero-lero e vamos por a mão na massa !!!

A primeira coisa que precisamos é ter no nosso servidor (ou na máquina de onde vamos executar o procedimento) o Team Foundation Server Power Tools.

Além disso precisamos tero nosso Team Project Primário já criado.

Feito isso vamos navegar até o diretório do Power Tools ( no meu caso ” C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools” ). Dentro do diretório temos um executável chamado tfpt.exe que será o nosso mágico da vez. Esse executável possuí um comando chamado createteamproject, com ele iremos criar um Team Project dizendo que ele compartilha o version control de outro.

Para criar o Team Project iremos executar o seguinte comando:

 tfpt createteamproject /collection:http://tfsserver:8080/tfs/Collection /teamproject:TeamProjectSecundario /processtemplate:"MSF for CMMI Process Improvement 2013.3" /sourcecontrol:Branch:"$/TeamProjectPrimario" 

No comando acima temos como parâmetros:

/collection: informamos a URL da nossa collection
/teamproject: informamos o nome do team project que estamos criando, ou seja, o team project secundário, que será uma branch do principal.
/processtemplate: informamos qual o process template iremos utilizar nesse novo team project. Cuidado aqui para não informar um nome de process template errado ou incompleto.
/sourcecontrol: informamos a origem do version control.

Feito isso, temos o nosso TeamProjectSecundario, e no momento da criação, assim como na criação de um Branch todo o fonte já está disponível para a equipe prosseguir seu trabalho, com o processo novo.

Quando quisermos unificar os fontes (no Team Project primário) devemos realizar um merge – sim um merge entre team projects.

Bom galera, por hoje é só.

Espero que esse artigo ajude vocês no dia-a-dia ae dos processos de engenharia de software.

 

Abraços !!!

 
Comments

No comments yet.