| #summary Gerrit and Melange |
| #labels Featured,Importance-Featured |
| |
| = 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 |
| }}} |
| |
| * Log into the Gerrit UI at least once: https://melange-review.googlesource.com |
| * if the email address in your git commits doesn't line up with the account you log into Gerrit with, you must add that email address: https://melange-review.googlesource.com/#/settings/contact |
| * If you are a committer, you need to get added to the committer list in Gerrit. |
| |
| = 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 = |
| |
| * https://wiki.openstack.org/wiki/Gerrit_Workflow |