The android project uses gerrit for code reviews and as far as I know, google seems to use gerrit internally for some of their git repository hosting and code reviews (see I've been on the look out for some simple issue trackers and or project management software that isn't overly complicated to use and to setup. It was just an accident that I had come across gerrit after I was looking at some of the kiteware released code for things like VTK, ITK and cmake, whamcloud who are supporting lustre also seem to be using gerrit to review code.

Although it's not an issue tracker or a project management piece of software, it seems to be an interesting tool to open up repositories for contributors who are not apart of the core group of developers of a project. It seems to be like a gatekeeper to a repository, anyone can clone and submit code to the system, but the changes aren't applied till the changes are reviewed and verified.

There's already a few blog posts out there such as Code Review with Gerrit, a mostly visual guide and Gerrit Code Review Installation which describe how to install and configure gerrit, and also how to import existing repositories into the system. It's not difficult to install and configure gerrit for evaluating or production for small projects, it's almost pleasant to setup.

One thing to note about newer versions of gerrit is that you will need to configure new projects with the enough temporary permissions to push a branch or tag. Apart from initially playing with the permissions for a project there's isn't really too much need to fiddle with it.

In just testing the system, I have found that doing something like this in my .git/config to be useful

[remote "review"]
        url = ssh://gerrithost:29418/project
        push = HEAD:refs/for/master

and using the commit-msg hook is also very useful

scp -p -P 29418 gerrithost:hooks/commit-msg .git/hooks/

or else if you have a different ssh identity for your gerrithost, you can configure ssh with the appropriate identity

Host gerrithost
User username
IdentityFile ~/.ssh/id_rsa
Port 29418

So far I've been toying with gerrit as a single user, it doesn't seem very useful projects with less than two or three developers. What I have found it useful for, it is to use it as a dumping ground for changes and a place for making notes for the changes. It's acting as a barrier for myself, protecting my projects from me. Other useful scenarios would be to use it to review code submissions from student projects. I think if I replaced org-mode and milli with a simple to install bug tracker like roundup things might work a bit better.

Bookmark and Share