I wanted to share a "real story" (without mentioning company names for confidentiality reasons) of a big team moving from GitHub / Crucible to Gerrit.
This can be used as reference for those companies who need to make a decision of GitHub vs. Atlassian vs. Gerrit.
Previous usage:
- GitHub for storing code and defining teams and permissions
- Crucible for code-review on the code
NOTE: they were using Crucible and NOT GitHub pull-requests because of the high combination of repositories (around 50) and developers (around 80) that would have caused an explosion of forks (50 x 80 = 4000 forks !)
Problems:
- GitHub does not allow to block force-pushes: no big problems but the danger of a mistake (and consequent disaster) was always there
- Crucible allows only post-commit code-reviews: when you review the code *is too late* and the build / code-base is already impacted
- Commits interleaved: one feature and its commits are "interleaved" with their intermediate commits (they decided to avoid topic-branches for avoiding the explosion of Jenkins build jobs)
Gerrit adoption:
- GitHub to Gerrit as Git Server: allow FREE hosting on-site and potentially replication to other nodes on the Cloud: much faster and resilient to failures.
- Extensible: can be extended with Prolog rules and plugins for being tailored to local needs and workflow
- Pre-commit review: reviews are made *before* the code is merged and leaving the code more stable
- Clean commits: commits are "clean" and "polished" when they come to master, making cherry-picking to supported releases easier
The drawbacks of moving to Gerrit are represented by the lack of a "cool UX" such as GitHub: this was not perceived anyway as a big problem because developers are anyway supposed to spend most of their time in their IDE and not browsing GitHub UX. People were spending at times an entire working week of development looking at Eclipse / IntelliJ and Crucible and not opening the GitHub so often.
Gerrit UX is not "as nice" as GitHub but definitely equivalent in terms of user-experience to Crucible: developers were not really shocked by the move anyway.
Feel free to share YOUR history and reasons for adopting Gerrit :-)
Luca.