”Trunk-based development” is an appropriate SCM branching strategy for DevOps, because with trunk-based development, we have:
- Few active branches (less than three)
- Short-lived branches (less than a day) with branches frequently merged to the main branch.
- No or few lock periods caused by merge conflicts, code freezes and stabilisation phases.
The trunk-based development approach gives us a higher delivery performance (just what we want when working full time with DevOps) than with other SCM branching strategies, like GitHub Flow.
The GitHub Flow development approach is not suitable for DevOps. GitHub Flow:
- Has many active branches.
- Has long-lived branches that lead to more merge conflicts.
- Discourages refactoring and intra-team communication.
- Works for open source projects where contributors are not working full time.