Onde a refatoração pertence ao modelo de nomeação de ramificações do GitFlow?

22

Recentemente, comecei a trabalhar com o modelo GitFlow, conforme implementado pelo bitbucket. E há uma coisa que não está completamente clara para mim.

Tentamos resolver regularmente nossa dívida técnica, acumulando em atraso, planejando e implementando as tarefas de refatoração. Essas ramificações de refatoração terminam com solicitações pull que são mescladas develop. Minha pergunta é onde os ramos de refatoração pertencem ao GitFlow ?

  • O uso do featureprefixo parece o mais lógico, no entanto, não parece totalmente correto, porque a refatoração não adiciona nenhuma nova funcionalidade.
  • No entanto, o uso do bugfixprefixo não parece certo e não há correções de refatoração de bugs reais .
  • A criação de um prefixo personalizado, por outro lado, parece complicar, se não o excesso de engenharia.

Você teve essa situação? Qual prática você usa para resolver isso? Por favor, explique o porquê.

AMA
fonte
Por que você precisa de uma filial para refatoradores? Eles não alteram a funcionalidade do produto por definição, portanto, você poderá fazê-los diretamente no desenvolvimento.
precisa saber é o seguinte
@ Jonrsharpe em suma, é mais conveniente e controlável. Geralmente, existe um ticket Jira para a refatoração e também é revisado por código durante a solicitação de recebimento. Além disso, compilações e testes são executados antes da mesclagem. Tentamos continuar a desenvolver galhos verdes.
AMA
4
Você está criando coisas demais - neste caso, o processo. Refatorar como você trabalha no sistema, não como um pacote de trabalho discreto.
Sr. Cochese
2
Nesse caso: 1. Você tem minhas simpatias; e 2. Eu diria que use refactor, então está claro o que transformar cada mesclagem deve fazer no produto (correção de bug: corrija comportamento quebrado, recurso: adicione novo comportamento, refatore: mantenha o comportamento anterior). Mas @MrCochese está certo, deve realmente fazer parte do outro trabalho que você está fazendo, não uma tarefa separada. Observe também que, se seus refatores quebrarem a compilação, eles não serão refatores!
precisa saber é o seguinte
Alguns dos trabalhos de refatoração que você está realizando devem realmente fazer parte do trabalho principal. Eu certamente não faria ramos de refatoração rotineiramente, mas apenas como parte de um esforço maior de limpeza. Criar esse hábito incentivará outros maus hábitos, como adiar o trabalho de limpeza para o ramo "refatorar".
Robert Harvey

Respostas:

27

O trabalho de refatoração deve ir em uma ramificação de recursos.

O prefixo "recurso" é apenas uma palavra para descrever uma tarefa de programação discreta, você pode escolher qualquer palavra que desejar, qualquer ramo do desenvolvimento é um ramo "recurso" ou um ramo "release"

Adicionar um novo prefixo como "refatoração" é problemático. Como você costuma refatorar algumas vezes ao adicionar um recurso, está simplesmente se dando um problema de nomeação e aumentando a confusão. ie "algumas de nossas ramificações de recursos são chamadas de 'refatoração', elas não contêm todo o trabalho de refatoração e, às vezes, possuem correções de bugs ou recursos '

Da mesma forma, ramificações de "hotfix" não são chamadas de hotfix porque contêm hotfixes, mas porque ramificam do mestre em vez de desenvolver

Ewan
fonte
1
obrigado. Isso parece razoável. Vou esperar um pouco mais e, se não houver outras respostas, aceitarei as suas.
AMA