Introduction
Melange uses Gerrit for code review.
Setup
# setup push-for-review helper alias
git config --global alias.push-for-review '!CURRENT=$(git symbolic-ref --short HEAD) && git push origin ${1:-HEAD}:refs/for/master%topic=${CURRENT}${R:+,r=${R}} && echo pushed'
# add change-id hook
curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x `git rev-parse --git-dir`/hooks/commit-msg
Code Review
Reviewing your branch
- Create a topic branch, work on your change, commit your change.
- git push-for-review
- in the Gerrit web UI, explicitly add at least one reviewer
- review happens.
- if changes are necessary, commit, rebase, go back to step 2.
Syncing and preparing your branch
- pull the latest changes to master * git checkout master * git pull origin master
- rebase your branch on master git rebase master and fix possible conflicts on the way * git checkout your-branch * git rebase master
- git push-for-review
- if the rebase cleared the review approvals, ask the reviewers for another look. Otherwise, the changes are almost ready to be submitted
- locally merge your branch into master * git checkout master * git merge your-branch
git push-for-review
The push-for-review alias supports some variations:
if you set an ‘R’ environment variable, that becomes a reviewer.
R=john.smith@gmail.com git push-for-review
You can also specify a change to push:
git push-for-review a1b2c3
Submitting the code
- get code reviewed by someone else, and receive a +2
- click submit button in web ui
Personal Branches
Please name personal branches user/$USERNAME/$BRANCHNAME
Etiquette
- Do not assume that someone will re-review your change unless you make a comment like “please look again” or “re-review me” or similar. (Rationale: Because of the volume of email Gerrit sends, some people may filter out the “new change has been uploaded emails” -- and a new change being uploaded doesn't mean the Change is ready for review anyway.)
- If you have commit rights, do not submit someone else's change without a good reason. These might include:
- Change author does not have commit rights. (But don‘t assume that a change is ready for review after you’ve +2'ed it, the author may want to make changes that require re-review, update the CL description, or there may be other reviewers.)
- Change author is missing and there's an urgent need to get their change submitted before they come back.
- The change is urgent and simple (i.e. build fix) and can't wait.
- In general, please do do not click Submit on other people's changes without permission from the author.
Interesting Links