36

I am using github and I am willing to start using Gerrit with it.

Since Gerrit uses JGit, I am scared of the following text from this link:

EGit/JGit is a reimplementation of git in java, due to this GitHub does not officially support it. Issues have happened and repositories have been corrupted by them. While it is usually a simple matter to repair these repos due to git’s distributed nature, be aware that EGit may not work as well as the official git binaries.

Did someone already use it?

Macarse
  • 91,829
  • 44
  • 175
  • 230

2 Answers2

37

Gerrit is it's own server and the issues we've seen were with the client and have recently been fixed in the brand new version of JGit. It also didn't corrupt the repository, it just pushed packfiles that were missing objects. The Gerrit server is solid and has been used by the Android project for over a year.

However, since it is its own server and enforces a very specific workflow, it is generally not used in conjunction with public GitHub much, since code contributions on GitHub tend to be pull requests, where contributions on Gerrit are peer-verified patch series through the Gerrit system. Again, you can set them both up for the same project, but most people do not.

mikej
  • 65,295
  • 17
  • 152
  • 131
Scott Chacon
  • 2,756
  • 19
  • 14
  • 1
    Thanks for your answer, Scott. I want to use this approach to use Gerrit code review functionality with my team before pushing to the master branch on Github. Does it make sense? – Macarse Mar 16 '10 at 11:05
  • I'm looking at Gerrit for the same reason. We have a github account that contains our company's private repositories and we allow access to these repositories on a per-developer basis. We don't want to let developers fork these private repos and use github fork-queues to manage reviews, since I believe each developer would need private repositories on their own github accounts. Instead, we want to review changes before pushing to master hosted on github. – jabley Jul 22 '10 at 11:05
  • 2
    @jabley forks of private repositories do not count against the number of private repositories per account. So if `company` has a private repository `project` and alice, bob and cecile fork it, you don't have to pay for a private repository on their account, only once on the company account. – max Feb 10 '11 at 22:33
  • 1
    @mdorseif - yes, we've discovered that. Github introduced their own workflow stuff and it works very nicely for our purposes, so we didn't need to use Gerrit. We just push to a branch, make a pull request and review on that branch, make changes, rebase and merge in. Simples! – jabley Feb 11 '11 at 10:56
  • It’s worth noting that currently there appears to be a way of integrating Github with Gerrit by using Gerrit server and mirroring it to Github with a plugin. Gerrit would still have to be the source of truth, unfortunately. – Anton Strogonoff Aug 24 '22 at 03:16
7

Take a look at http://gerrithub.io - the site enables Gerrit workflow for public GitHub repositories.

AndreasB
  • 309
  • 2
  • 10
  • We have published a comprehensive comparison of Gerrit and GitHub on http://wp.me/p1dpEJ-2q – lucamilanesio Oct 17 '13 at 07:52
  • 1
    Is there any way to get the approved changes from GerritHub back to GitHub? – Thomas Uhrig Nov 27 '13 at 19:29
  • 1
    Yes, they are automatically propagated by Gerrit replication. NOTE: Once you start using Gerrit on top of your GitHub repository, you need to remember to push TO Gerrit and pull from either one (Gerrit is the master, GitHub becomes the Read-Only slave). On GitHub you can keep accepting Pull Requests and merge them through Gerrit. – lucamilanesio Dec 13 '13 at 00:00