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.