🌱 Trunk Based != Sem Branch
Trunk-based development (TBD) é uma técnica de versionamento de software onde apenas uma branch é a fonte de verdade, chamada de "trunk".
🌱 Seedlings são ideias que recém tive e precisam de cultivo, não foram revisadas ou refinadas. Saiba mais.
Rola uma super confusão achando que, por existir apenas uma fonte da verdade, não se pode utilizar outras branches. Isso é um equÃvoco!
- A diferença é que são utilizadas branches com um ciclo de vida curtÃssimo (máximo dois dias), que são criados só pra fechar uma tarefa e depois são integrados de volta ao trunk através de um merge request.
- Uma das grandes vantagens do TBD é evitar conflitos e manutenção de múltiplas versões
- É bastante aderente de automatização detestes e pipelines, pois trabalha para integração contÃnua
Evidentemente o time precisa de maturidade em outras técnicas de trabalho para funcionar, por exemplo:
- Slice de tarefas (Branch by Abstraction, Dependency Injection)
- Outras capabilities devops
- Feature Toggles
- Testes unitários
- (manutenibilidade, etc)
Mas isso não significa que gitflow não exija maturidade em outros aspectos, também exige... Não existe bala de prata.
Também vale mencionar o contexto de criação do Gitflow: para sistemas com versões duradouras, como aplicações desktop, bem diferente no modo de release de websites, por exemplo.
Times DevOps, que buscam integração contÃnua, não podem trabalhar com Gitflow para atender seus objetivos plenamente:
Essentially, long-lived branches are the opposite of continuously integrating all changes to the source code
Atualização 2023: fiz uma apresentação sobre o tema [link privado]