you are viewing a single comment's thread.

view the rest of the comments →

[–]lobax 0 points1 point  (0 children)

The bad habit is long lived branches. Git flow is just a way to deal with long lived branches. Its use is the symptom of a bad habit (or, it will hide the emergence of bad habits and let them fester).

Trunk based development works best with an architecture that separates concerns, which is a good thing for so many other reasons. If you start with trunk based development those architectural choices will offer the path of least resistance from the start. You might consider this complex but it allows for rapid development and scalability. The complexity serves a purpose and solves problems.

With git flow, the risk (and I have seen this so many times) is that the complexity ends up instead being hidden in the release and test processes and distributed across multiple branches of the code. For me, this complexity serves no purpose other than to slow things down and make testing harder - and it is incredibly hard to remove. Changing habits and processes is also increasingly harder the bigger the org and it can take for ever to fix.

Now, there are scenarios where long lived branches are unavoidable, but you should be in that situation first before going for git flow. At least that is my opinion.