Gerrit Code Review - The Introduction

1,423 views

Published on

Short introduction to Gerrit Code Review

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,423
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
34
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Gerrit Code Review - The Introduction

  1. 1. Introduction to Gerrit Dariusz Łuksza dariusz@luksza.org @dluksza
  2. 2. Git?! Copyright © 2012 Dariusz Łuksza
  3. 3. What is Gerrit? Git server GerritHTTP serverSSH server Copyright © 2012 Dariusz Łuksza
  4. 4. Why use code view?● Early catch of common errors: – NullPoinerException – Code duplication – Deprecated code use – Typos● Code design review● Improve team knowledge about project● Can be used as knowledge base Copyright © 2012 Dariusz Łuksza
  5. 5. Who uses Gerrit? Copyright © 2012 Dariusz Łuksza
  6. 6. Gerrit @ Eclipse Foundation Copyright © 2012 Dariusz Łuksza
  7. 7. What is needed to use it?● Gerrit server● git – with additional configuration – proper refspec – commit message hook● or EGit Copyright © 2012 Dariusz Łuksza
  8. 8. What is “refspec”?$ git push <repo_name> <src_branch>:<dst_branch>example:● $ git push origin fix-npe:master● $ git push origin fix-npe:refs/for/masteror configure this as default push action for repository:$ git configure remote.origin.push HEAD:refs/for/masterOr use EGit and “Push to Gerrit” action. Copyright © 2012 Dariusz Łuksza
  9. 9. What is “commit hook”?● Script executed by git after commit operation● Gerrit commit hook adds Change-Id meta data● It is project independent so after fetching from server for one project you can copy it locally● Or use EGit and dont bother about hooks. Copyright © 2012 Dariusz Łuksza
  10. 10. Lets create first review request$ git init$ scp -p -P 29418 <host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit 0a60797abd716298c6f6f8eb641451ae507eb9bfAuthor: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I871f6b4c500c96f4f7a91abf236f76b00d9057ca$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  11. 11. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit 0a60797abd716298c6f6f8eb641451ae507eb9bfAuthor: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I871f6b4c500c96f4f7a91abf236f76b00d9057ca$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  12. 12. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit 0a60797abd716298c6f6f8eb641451ae507eb9bfAuthor: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I871f6b4c500c96f4f7a91abf236f76b00d9057ca$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  13. 13. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit 0a60797abd716298c6f6f8eb641451ae507eb9bfAuthor: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I871f6b4c500c96f4f7a91abf236f76b00d9057ca$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  14. 14. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit 0a60797abd716298c6f6f8eb641451ae507eb9bfAuthor: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I871f6b4c500c96f4f7a91abf236f76b00d9057ca$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  15. 15. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  16. 16. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  17. 17. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  18. 18. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  19. 19. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push origin HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  20. 20. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  21. 21. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  22. 22. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  23. 23. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  24. 24. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  25. 25. Lets create first review request$ git init$ scp -p -P 29418 <login>@<host>:hooks/commit-msg .git/hooks/$ echo first review > readme.txt$ git add readme.txt$ git commit -m my first commit$ git logcommit e6762c9a59c1bda7118633e4c2ddabf4ecca2152Author: Dariusz Luksza <dariusz@luksza.org>Date: Tue Nov 20 11:20:13 2012 +0100 my first commit Change-Id: I5e9f2d410fdf37d2e20bedc162b2fb9565988a56$ git push ssh://<login>@<host>:29418/<proj> HEAD:refs/for/master Copyright © 2012 Dariusz Łuksza
  26. 26. Review change in Web UI m o d e iv eL Copyright © 2012 Dariusz Łuksza
  27. 27. Add inline comments mo d e iveL Copyright © 2012 Dariusz Łuksza
  28. 28. Amend change mo d e iveL Copyright © 2012 Dariusz Łuksza
  29. 29. Vote on change mo d e iveL Copyright © 2012 Dariusz Łuksza
  30. 30. Submit change mo d e iveL Copyright © 2012 Dariusz Łuksza
  31. 31. Gerrit ACL● Read● Push● Push merge commit● Push annotated tag● Label code review (-2 to +2)● Label verified (-1 to +1)● Create reference (aka create branch)● Abandon● Edit topic● Forge author identity● Forge committer identity● Forge server identity● Rebase● Remove reviewer Copyright © 2012 Dariusz Łuksza
  32. 32. Gerrit Plugability● Plugins – Plugins – Extensions● Prolog rules for change validation Copyright © 2012 Dariusz Łuksza
  33. 33. Review from Eclipse Copyright © 2012 Dariusz Łuksza
  34. 34. Introduction to Gerrit Dariusz Łuksza dariusz@luksza.org @dlukszaUseful links:● Git – http://git-scm.com/● EGit – http://eclipse.org/egit/● Gerrit – http://gerrit.googlecode.com/● Mylyn reviews – http://eclipse.org/reviews/gerrit/

×