How to Use Branching to Stabilize Feature Development

- J.D. Meier, Jason Taylor, Alex Mackman, Prashant Bansode

Use Feature branches to improve the integration and stabilization of breaking changes across features.

The following is an example of what your branch structure might look like after you have created Feature branches:
  • Development – Container for feature branches
    • Feature A – Feature branch
      • Source
    • Feature B – Feature branch
      • Source
    • Feature C – Feature branch
      • Source
  • Main – Integration branch
    • Source
    • Other Asset Folders

Keep the following recommendations in mind when working with Feature branch:
  • When to branch – Feature teams often have source file overlap, increasing the potential for build breaks and check-in conflicts. If you are experiencing these problems, consider feature branches for each feature to provide feature isolation. You can create these off Main branch for small teams, or off a Team branches for larger teams.
  • When not to branch – If you are only creating CI builds, or your daily builds are already predictably stable, you might not need the extra overhead of Feature branches.
  • Permissions in branch – Assign read/write permissions to developers on the feature branch, and read-only permissions to everyone else.
  • Build frequency on branch – Continuous integration builds are performed on the branch.
  • Testing focus in branch – Perform feature and quick feedback testing.

Use the Feature branch to allow each feature to be developed in parallel. Perform all active development in the Feature branches and then integrate your code into the Main branch.

Additional Resources

Last edited Jul 31, 2007 at 1:42 PM by prashantbansode, version 9

Comments

No comments yet.