# Trunk Base Development

One liner:

*A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ , resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.

Different types of development git workflow:

  • GitHub flow
  • Gitflow
  • Trunk base development

Addressing issues with low and high volume of commits per day and CI and CD.

# GitHub flow my thoughts:

  • Simple and great for Fork vs Shared repo model

    • Open source repo, only Maintainer have write to upstream and Contributors fork the repo.
    • Shared repo, all Contributors including Maintainers.
  • Works well when you do not have control of individual Contributors

  • Use GitHub for distrubited approached and managed using

  • Upstream is the choke point for Maintaners to review PR. In other words, slow release cycles.

  • Leverage GitHub PR for rollbacks.

# Gitflow my thoughts:

  • More structured and timing release. ie. Every 2 weeks or month or quarter.
  • Concept of the dev, qa, release(production) branches
  • More maintainance on Maintainers to keep the branches in snyc. More opportunity for complex git history and rollbacks are painful.

# Trunk base development my thoughts:

  • Like GitHub flow but more fancy.
  • Requires a mature dev team and DevOps team.
  • Great for large internal dev orgs for small to large velocity of git commits a day volume.
  • With all the quality checks it could possible for Continuous Delivery and Deployment with feature flags though.