O que é uma boa frequência para mesclar ramificações de recursos a uma linha principal?

5

Temos uma base de código muito grande no mercurial. Temos uma cadência de lançamento de 6 meses com sprints de 2 semanas. Para cada lançamento, temos cerca de 10 filiais de recursos e talvez 5 ou mais pessoas trabalhando por ramificação.

Agora, se as ramificações de recurso são ou não uma boa ideia é uma pergunta para outro dia.

Atualmente fazemos mesclagens / cópias de ramos de recursos na linha principal de controle de qualidade duas vezes durante esses 6 meses - uma vez a cada meio e algumas semanas antes do final do lançamento. (especificamente, mesclar de qa, então o branch de recursos copia para cima).

O motivo parece não se manter sincronizado entre si, mas para permitir alguns testes na metade do lançamento.

Isso causou muita angústia sobre iminentes fusões e alguns conflitos desagradáveis de mesclagem, mas não tantos quanto se poderia esperar.

Então, acho que minhas perguntas são:

  1. Ter mais mesclagens frequentes apenas com o único propósito de manter as coisas sincronizadas e evitar surpresas cria mais rotatividade ou menos rotatividade?

  2. Se sim, qual seria um bom cronograma? Pensei sobre isso um pouco - as mesclagens mais frequentes exigiriam que as equipes tivessem o código em boa forma com mais frequência, o que pode não ser uma coisa ruim. Muitas vezes, porém, pode espalhar bugs para todos os ramos de recursos antes que eles tenham a chance de ser corrigido.

Estamos usando o Hg, mas estou adicionando o git como tag porque acho que os problemas são praticamente os mesmos.

    
por marathon 16.04.2015 / 18:29
fonte

1 resposta

6

O bom agendamento é mesclar apenas código estável (ou código "provável de ser estável").

Se você se unir no meio do caminho apenas para começar os testes, e você sabe que alguns dos recursos que você está codificando atualmente não estão concluídos, você certamente receberá alguns comentários de teste sobre esses recursos.

A pergunta que você deve fazer é "Estou confiante com a integridade do que já construí?"

Se a resposta for sim, você pode testá-lo. Se não, não faz sentido testá-lo, apenas mantenha a codificação.

EDIT: Na verdade, você pode começar a testar parcialmente toda vez que um de seus desenvolvedores lhe disser que ele terminou um recurso que poderia estar ok por si só.

    
por 16.04.2015 / 18:12
fonte