Como fazer merges entre branches não relacionados com o TFS 2010
O TFS 2010 é uma solução de Gestão do Ciclo de Vida de Aplicações (ALM - Application Lifecycle Management) completa. Um dos recursos disponíveis é o controle de versões avançado e extremamente poderoso.
O TFS 2010 Source Control permite a criação de branches, inclusive quando necessário com relações e hierarquias pai-filho entre branches. Realizar o merge entre branches relacionados pode ser feito via linha de comando ou diretamente da interface gráfica do Team Explorer.
No exemplo abaixo podemos ver uma hierarquia de branches:
Se pedirmos para realizar um merge a partir do branch HotFix ele abrirá a seguinte janela de wizard:
Notem que não aparece a opção para realizar um merge de HotFix para Dev ou HotFix para Prod. Apenas de HotFix para QA. Isso acontece porque HotFix só está relacionado com o branch QA.Para fazer um merge entre branches não relacionados, o TFS 2010 dá a opção de realizar um baseless merge. O baseless merge deve inicialmente ser feito via linha de comando (no TFS 2010, mas via interface gráfica já é um pedido de usuários do produto e provavelmente aparecerá em novas versões do Team Foundation Server). O comando para fazer o merge entre HotFix e Dev, sem passar pelo branch QA, seria o seguinte:
tf merge /baseless Hotfix Dev /recursive
Após a realização de um baseless merge, via linha de comando, a interface do Team Explorer já mostra o merge realizado através de uma linha pontilhada ligando os branches não relacionados. E outra vantagem é que nos próximos merges entre esses branches já é possível usar a própria interface gráfica!
Do ponto de vista teórico não é recomendado fazer merges entre branches não relacionados, mas é possível com o TFS 2010! Para mais dicas de estratégias de branching recomendo o Visual Studio TFS Branching Guide 2010.

2 Comentários:
Considero fundamental que os merges sejam feitos com 3 pontos de referencia (base comum, branch A e branch B)
No exemplo citado, o TFS consegue identificar a versão base (neste caso específico,o changeset da branch dev utilizado para criar a branch QA) e repassar para uma ferramenta externa automaticamente ?
Este é um artigo muito interessante. Recentemente comecei a me interessar pelo mundo dos jogos. E meus amigos sugeriram que eu tentasse jogar cs go com eles. Então eu tentei e eu realmente gostei. Então eles me contaram sobre o site https://dmarket.com/pt/ingame-items/item-list/csgo-skins no qual você pode comprar skins a um preço muito razoável.
Postar um comentário
<< Home