Pergunta

isso pode ser uma pergunta ingênua, mas, tal como solicitado no objeto, qual é o caminho real usado pelo versionamento softwares para mesclar um back ramo no tronco principal sem gerar código quebrado?

Aqui está um exemplo rápido: Eu faço um ramo fora do tronco principal para o programa "edição Olá Mundo Power". I adicionar suporte para Klingon. Esta é uma mudança radical que muda a forma como a função printHelloWorld () funciona.

Enquanto isso, por causa do bug # 749 que causa "Olá Mundo" para ser escrito "Helo World", a função printHelloWorld () no tronco principal foi alterado.

Agora, o problema que eu vejo aqui é: quando eu fundir por ramo de volta ao tronco principal i experimentar um choque na printHelloWorld function () dentro do arquivo sayHello.py

Como é que um programa VCS know how para adicionar o suporte Klingon do meu ramo e manter a correção de bug no tronco principal? Quais são as estratégias-driven humanos ou conduzido de software de evitar isso?

Agradecemos antecipadamente.

Foi útil?

Solução

Como é que um programa VCS sabe como adicionar o apoio Klingon do meu ramo e manter a correção de bug no tronco principal?

VCS não sabe nada sobre semântica de seu código-fonte que vê-lo como um monte de arquivos de texto / binário. VCS usos do sistema diff / merge algoritmos para detectar conflitos entre o seu e versão do arquivo atual. É de sua responsabilidade para resolver tais conflitos, porque só você sabe semântica dessas mudanças. Alguns VCSs como SVN seria necessário que você atualize sua cópia de trabalho com as mais recentes alterações de tronco antes de permitir que você para confirmar as alterações para se certificar de que nada está perdido.

Para se certificar de que você não quebrar nada e todas as correções de erros anteriores não foram quebrados, você deve usar revisões de código , testes de unidade e outras práticas. integração contínua é uma boa maneira de manter o software saudável.

Outras dicas

Em tal caso, um sistema de controle de versão não pode mesclar automaticamente, você tem que fazer a fusão com a mão. testes unitários boas vão ajudá-lo a garantir que nenhuma funcionalidade é perdida.

Antes de fundir o seu ramo de volta ao tronco, o sistema de controle de versão irá atualizar a sua cópia de trabalho com as mudanças no tronco desde que se ramificou. Ele só não vai permitir que você mesclar sem essa atualização. Isso garante que você obtenha todas as correções de bugs no tronco em sua próxima submissão.

Uma boa estratégia para trabalhar em um ramo é a mudanças de porta em porta-malas em você ramificar em base muito regular. Isso garante que você não deriva muito além do tronco, levando você a ter problemas quando você eventualmente fundir volta para o trunk.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top