Code versioning

From wiki.techunit.org
Jump to: navigation, search

Branches

Master

Characteristics

  • Type of branch: Main
  • Is unique: Yes
  • Lifetime: Infinite
  • Audience: Everyone
  • Contents: Production-ready state

Merges out

  • Develop: For evolution
  • Hotfixes: For bug fixes

Merges in

  • Hotfix: Tagged with incremented minor version
  • Release: Tagged with incremented major version


Develop

Characteristics

  • Type of branch: Main
  • Is unique: Yes
  • Lifetime: Infinite
  • Audience: Specific release audiences
  • Contents: Integration-ready state

Merges out

  • Feature: For evolution
  • Hotfixes: For prod bug fixes
  • Release: For use tests after integration succeed

Merges in

  • Develop: For evolution
  • Hotfixes: To update prod bug fixes
  • Feature: To concatenate features of next release
  • Release: To update use tests bug fixes


Feature

Characteristics

  • Type of branch: Support
  • Is unique: No
  • Lifetime: Time-delay development
  • Audience: Feature developers & code approbator
  • Contents: Feature specific changes

Merges out

  • Develop: For evolution

Merges in

  • Develop: To update changes


Release

Characteristics

  • Type of branch: Support
  • Is unique: No
  • Lifetime: Time-delay major version development
  • Audience: Integrator and release use tester
  • Contents: Merged features and use tests bug fixes changes

Merges out

  • Develop: To update use tests bug fixes
  • Master: Tagged with incremented major version

Merges in

  • Develop: To update marged features, tagged with incremented major version

Hotfix

Characteristics

  • Type of branch: Support
  • Is unique: No
  • Lifetime: Time-delay hotfix correction
  • Audience: Developer & integrator
  • Contents: Production bug fixes changes

Merges out

  • Develop: To update production hotfixes
  • Master: Tagged with incremented minor version

Merges in

  • Master: For production bug corrections

Sources

http://nvie.com/posts/a-successful-git-branching-model/