locked
Devo usar o Branch neste cenário? RRS feed

  • Pergunta

  • Olá pessoal, td bem? Está pra acontecer uma situação diferente aqui na empresa e estou na duvida de como organizar melhor o código fonte no  TFS para que não haja problemas de versionamento. O cenário é o seguinte: Temos um ERP feito em C#, e que está usando o TFS2010 como repositório. A arquitetura é aquela tradicional de 3 camadas (BIZ, Dados e WinUI) e usamos DataSet Tipado como tecnologia de acesso a dados. Até o momento, nós nunca tivemos a necessidade de trabalhar paralelamente em projetos que mexesse nos mesmos códigos fontes por muito tempo.

    Para atender o nosso cenário atual, nós temos apenas uma única pasta no TFS (trunk) e todos os desenvolvedores fazem Checkin e Checkout diretamente nela. Tomamos alguns cuidados quando mais de uma pessoa precisa mexer num mesmo arquivo, e caso isso aconteça, procuramos ficar pouco tempo com este checkout paralelo, e nos comunicarmos bastante para evitar confusões na hora do merge.

    Contudo, agora surgiu uma necessidade de tocarmos um novo projeto em paralelo, que mexerá em arquivos iguais ao mesmo tempo, sendo eles, WinForms, classes de negócio e até DataSet Tipados. O detalhe é que a conclusão deste novo projeto será num prazo mais longo do que estamos acostumados a fazer (cerca de 40 dias).

    Portanto, estou encarando como dois projetos diferentes, sendo:

    • [PROJETO A]: que continuará sendo os fontes do Trunk principal como é hoje, onde ocorrerão as manutenções e suportes do dia-a-dia e que já vem acontecendo no ERP. Muitos destes suportes demandam correções no código fonte e checkins para liberar da versão em produção.
    • [PROJETO B]: que seria este projeto novo que está pra começar e que será tocado em paralelo.

    Na verdade, será apenas eu como desenvolvedor, que irei tocar o [PROJETO B] em paralelo, porém o [PROJETO A] continuará sendo mantido pelos demais desenvolvedores da empresa, e algumas vezes também por mim, visto que as manutenções na Trunk principal não podem parar. Estou até combinando com o pessoal aqui de que, num período irei ficar no [PROJETO A] e noutro período, irei tocar o [PROJETO B].

    Ah... lembrando que, em ambos os projetos, eu irei usar também o mesmo computador, mesmo Visual Studio e Login de acesso ao TFS. Mas isso acho que é o de menos né...

    Penso também que, em algum momento, haverá a necessidade de nós publicarmos uma versão beta do [PROJETO B], para que os usuários testem e homologuem aquilo que está ficando pronto.

    Enfim pessoal, estou muito na duvida se devo ou não usar Branchs para este cenário. E se devo, como proceder? Pois nunca fizemos isso aqui...  Quais os cuidados e boas práticas que devo ter neste cenário que mencionei?

    Por hora, muito obrigado.

    Abraços



    André P. Bertoletti


    terça-feira, 16 de julho de 2013 19:30

Respostas

  • Oi André, 

    Branch é uma solução para a sua necessidade, agora para dizer se é a melhor, mais prática, best practices, etc, eu precisaria conhecer melhor o seu cenário. 

    De qualquer forma, recomendo a leitura do guia de branch dos ALM Rangers. http://vsarbranchingguide.codeplex.com/ 

    Lá você encontrará cenários, dicas e grande parte de suas dúvidas serão respondidas.

    Se ainda assim ficar alguma dúvida, posta aqui.

    Abraços 


    André Dias, ALM Ranger | ALM MVP | MCSD ALM - @AndreDiasBR - http://blog.andredias.net

    segunda-feira, 22 de julho de 2013 04:21
    Moderador

Todas as Respostas

  • Oi André, 

    Branch é uma solução para a sua necessidade, agora para dizer se é a melhor, mais prática, best practices, etc, eu precisaria conhecer melhor o seu cenário. 

    De qualquer forma, recomendo a leitura do guia de branch dos ALM Rangers. http://vsarbranchingguide.codeplex.com/ 

    Lá você encontrará cenários, dicas e grande parte de suas dúvidas serão respondidas.

    Se ainda assim ficar alguma dúvida, posta aqui.

    Abraços 


    André Dias, ALM Ranger | ALM MVP | MCSD ALM - @AndreDiasBR - http://blog.andredias.net

    segunda-feira, 22 de julho de 2013 04:21
    Moderador
  • Valeu pela dica xará...

    Eu acabei lendo outros materiais e percebi que vou enfrentar problemas quando tiver que fazer Merge de DataSets Tipados, que são gerados pelos Wizards do próprio Visual Studio.

    Veja no link a seguir, o qual orienta a fazer Chekout exclusivo quando for mexer em DataSet tipados (ou qualquer outro arquivo auto-gerado), pois a ferramenta de Merge não consegue resolver muito bem os conflitos que vierem a acontecer com estes tipos de arquivos.

    http://www.develop-one.net/blog/2007/11/01/VSTSUseExclusiveCheckoutForTypedDataSets.aspx

    Enfim, você tem experiencias bem sucedidas de Merge com DataSets Tipados? Ou então algum tipo de best pratices para este caso?


    Tentei encontrar algo nos guia de Branch nos Ranges, mas não encontrei nada sobre DataSet lá.

    Abraços



    André P. Bertoletti

    segunda-feira, 29 de julho de 2013 19:18