Como lidar com o número da versão no código, através das filiais?

5

Estou trabalhando em um aplicativo PHP, usando três ramificações principais: 'master' (versão estável atual), 'bugfix' (para patches) e 'next' (para a próxima versão secundária).

Armazenamos o número da versão atual no código - ele é usado para algumas coisas, incluindo a verificação de atualizações para o aplicativo e também a quebra de cache simples para arquivos CSS / JS (como styles.css?v=1.2.3 ), que ajuda na atualização. / p>

Meu problema é sobre conflitos de mesclagem. Digamos que eu tenha a versão 1.2.3, e 'next' é ramificado lá para começar a trabalhar na versão 1.3. Eu mudo a versão nessa ramificação para 1.3.0 ou 1.3.0-dev . Então eu preciso consertar um bug na linha 1.2, então a ramificação 'dev' é corrigida e a versão 1.2.4 é liberada.

Mas agora, quando eu mesclar as alterações na ramificação 'next', recebo conflitos de mesclagem, porque a mesma linha foi editada em ambas as ramificações. Existem estratégias para evitar isso? Ou devo apenas resolver o conflito de mesclagem e seguir em frente?

Já vi algumas respostas em SE que falam sobre o uso de tags git (que usamos para lançamentos), mas não acho que isso realmente ajude minha situação, já que precisamos do número da versão no código.

    
por DisgruntledGoat 11.03.2017 / 23:53
fonte

1 resposta

2

A primeira coisa é ler e entender a versão semântica .

O próximo truque é examinar seu processo de criação e seu sistema de controle de versão para que seu processo de criação adicione automaticamente as tags apropriadas à versão com base em qual "ramificação" você está construindo.

Se você está feliz com um pequeno python , você pode gerar o valor da versão, como uma variável de ambiente ou como um% co_de gerado % arquivo por ou qualquer que seja o equivalente para os idiomas em uso usando as ligações disponíveis para a maioria dos sistemas de controle de versão. Você também pode fazer truques semelhantes com scripts bash, etc., mas eu acho a solução python muito mais limpa e mais sustentável.

Pessoalmente, também defino um sinalizador se uma compilação inclui alterações não confirmadas.

    
por 12.03.2017 / 13:58
fonte