Gerrit is a modern code review system that supports:
The instance consists of a set of mirrors of kernel git repositories, which you can see and browse at linux.googlesource.com. Review changes can be created only for the mirrored repos. Currently two dozens of the most active repos are mirrored, but this list can be easily extended if there is interest.
The second part is the review system at linux-review.googlesource.com. All uploaded changes are public and visible to everyone, however creating own changes and participating in reviews requires a Google account. To sign in into the review system, click Sign in link in the top-right corner. Once you signed in you can see your outgoing, incoming and CCed changes at the dashboard.
There are several potential use cases:
Feel free to use it if you find it useful.
Note: when you upload a new change nobody is notified. You can add reviewers/CC manually and/or give the change link to other people.
To create a change for the net tree you need to:
git clone https://linux.googlesource.com/linux/kernel/git/davem/net
or add a new remote with:
git remote add -f gerrit-net https://linux.googlesource.com/linux/kernel/git/davem/net
Sign in into the gerrit instance using Sign in link in the top-right corner.
Click Generate Password link in the top menu. Copy-paste and execute the script which adds an auth cookie required for pushing changes for review.
Add gerrit commit hook to the git repo with:
(f=`git rev-parse --git-dir`/hooks/commit-msg; \ mkdir -p $(dirname $f); \ curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg; \ chmod +x $f)
The hook simply adds
Change-Id: unique-id to commit messages, gerrit uses it to understand uploads of new versions of the same change.
git checkout gerrit-net/master git checkout -b my-test-gerrit-change sed -i "s#mm_init(#mem_init(#g" init/main.c git commit -s --all -m "init: test change"
git push gerrit-net HEAD:refs/for/master
Pushing to the special path
refs/for/target-branch creates a change based on the
target-branch. The command output will contain the URL of the change, e.g.:
you should also see it on the dashboard.
sed -i "s#mem_init(#mem_initialize(#g" init/main.c git commit --amend --all --no-edit git push gerrit-net HEAD:refs/for/master
Gerrit knows it's a new version based on the
Change-Id tag. Now you can see the new version at:
as well as the diff between versions:
To create patch series simply push a branch with multiple commits.
Most of the steps are onetime: for the second change you just need to create the commit and push it to