Overview
The Asterisk project uses Gerrit for code reviews, continuous integration validation, and git management. When creating a patch to Asterisk or its various related projects, all patches should be pushed to Gerrit for review.
Use of Gerrit is beyond the scope of this wiki page - for in depth information, see the Gerrit documentation.
Creating an Account
Gerrit uses OpenID in conjunction with the Asterisk project's Atlassian infrastructure to provide single sign-on. If you already have an account in the Asterisk project infrastructure (such as JIRA) and have signed a Contributor License Agreement, you should be able to sign in to Gerrit automatically.
Create an account at signup.asterisk.org.
Sign a Contributor License Agreement.
Browse to Gerrit, and click Sign In.
This will redirect to openid.asterisk.org. Sign in with your Atlassian username/password.
Upon signing in successfully, you will need to authorize Gerrit to access your OpenID. When you have done so, you should be redirected back to Gerrit, and will be signed in.
Setting up your Gerrit Account
- Add an SSH key
- Set your username
Cloning from Gerrit
SSH:
git clone ssh://{user}@{server}:29418/{repo}
HTTP:
git clone http://{user}@{server}/{repo}
Anonymous HTTP:
git clone http://{server}/{repo}
Pushing to Gerrit
How to push:
$ git push ssh://{username}@{server}:29418/{repo} HEAD:/refs/for/master
- Change-ID: Make sure you install the hook, if it isn't already there!
Installing it:
scp -p -P 29418 {username}@{server}:hooks/commit-msg {local-repo}/.git/hooks/
Fixing it if you forgot:
git commit -amend
Updating a Review
- Make sure any new commits use the same Change ID
Squash your commits back down into one (preferably)
git rebase -i HEAD~{num}
- Re-push