Gerrit Branching Compared

Gerrit

  • Progresses commit after commit.
  • Each commit is rebased to the current status of the ‘develop’ branch.
  • All commits are verified and reviewed.
  • Commits can be changed and overridden during review.
  • Master branch keeps track of releases.

 

  • Tends to result in larger commits.
  • Tends to result in multi-purpose commits
  • Developers are forced to keep track of current development.
  • Only working solutions pass review and become part of the history.

 

  • Local git configuration needed

Github/Gitlab

  • Changes are provided as MergeRequest/PullRequest for series of commits.
  • Merge Requests are verified and reviewed.
  • Master branch keeps track of current state of development
  • Release-Tags are used to mark certain points in development as release.

 

  • Tends to result in multiple small commits.
  • Tends to result in single purpose commits.
  • Can lead to large changes with the risk of conflicts. Strategies for conflict resolving are needed.
  • Detailed process can vary from repo to repo.
  • Developers must be willing to keep track with current development.
  • It is less common to override commits.  Therefor history tends to become a record of the development process itself.

Leave a Reply