Yesterday, the Eclipse Foundation launched the long-awaited availability of Gerrit for Git-based code review and patch submission. Gerrit is a web-based tool for receiving Git submissions which InfoQ has covered before. The review tool is available at https://git.eclipse.org/r/.
Gerrit is already widely used by open source projects such as https://android-review.googlesource.com/, and since EGit has been part of the standard Eclipse packages, with almost half of Eclipse projects on Git already, integrating the Gerrit instance was the logical conclusion.
Chris Aniszcsyk has been a long-time proponent of Git and Gerrit at Eclipse, and says:
It’s satisifying to see this finally be rolled out as a few of us committers have been pushing on this for the past couple of years as a way to modernize the Eclipse infrastructure. We have been piloting Gerrit for quite awhile in the EGit and JGit projects and have been very pleased with it. It’s great that Eclipse committers now have a convenient way of doing code reviews using Git if they wish to add that workflow for their project.
However, the Eclipse process has yet to catch up with the improvements in technology. The wide availability of Git as a DVCS has meant it is trivial for people to fork Eclipse projects at GitHub, and provide improvements to that functionality as direct commits to the repository. However, the process describes adding 'patches' to bugzilla, a rare event in DVCS worlds generally (but not impossible).
Although Gerrit supports a user agreement which must be agreed to before first login, which is often used to accept licensing agreements, the Eclipse process says that:
Contributor asserts on the corresponding bug or in a comment on the Gerrit push record that they:
- authored 100% the content they are contributing
- have the rights to donate the content to EPL
- contribute the content under the EPL
…[at] this point in time, we require that the contributor explicitly consent to the Terms of Use when an account is created; we further require that the contributor assert the three questions with each contribution. Consent can be given either on the Bugzilla record (if one exists), or on a comment connected to the Gerrit push.
An ongoing discussion suggests that this rule has often been widely ignored in the past for other version control systems.
With the upcoming release of Eclipse 3.7.2 at the end of the month, and many projects keeping around old CVS or SVN repositories "just in case" for 3.7 stream builds, it is likely that the usage of Git as a proportion of projects will leap forwards by EclipseCon 2012. With 310 days running until CVS is switched off, it is fairly likely that many projects will have escaped the gravity well of CVS and quite probably SVN as well. And if the problems with the Eclipse Contributor Agreement can be sorted out, and the process of patches by Gerrit integrated within the IP workflow, it may even see a wider contribution of fixes to the key platform libraries that is so desperately needed.
Alex Blewitt can be reached on Twitter as @alblue and blogs regularly at alblue.bandlem.com.