Gerrit Code Review: Difference between revisions
No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
{{Cmd|git push origin HEAD:refs/for/master}} | {{Cmd|git push origin HEAD:refs/for/master}} | ||
[Category:FreeBSD] | [[Category:FreeBSD]] |
Revision as of 03:01, 10 February 2013
Denna artikel beskriver hur man använder Gerrit Code Review. Hur man administrerar sina repos utan granskningsfunktionen i Gerrit står beskrivet här.
Introduktion
Gerrit fyller främst två funktioner:
- Administrera repo/projekt rättigheter
- Support för granskning av commits innan dom mergas in i repot
Istället för att pusha commits direkt till t.ex. master, så pushar man till en fiktiv granskningsbranch som heter for/master. Eftersom en commit kan underkännas och kräver justering innan acceptering, så använder Gerrit ett Change-Id i commit meddelandet för att koppla ihop dessa till samma ändring. Nya commits med samma Change-Id blir nya s.k. patch sets i Gerrit. Commits som har olika Change-Ids behandlas som helt olika förändringar.
En commit måste granskas och verifieras innan den kan kan submittas till repot. Gerri använder ett poängsystem där verifiering +1 betyder ok, och -1 betyder att committen underkändes. För granskning kan -2 till +2 poäng sättas. -1 till +1 betyder rekommendationer. -2 betyder att committen underkänds och +2 betyder att den kan accepteras.
Klona ett repo
För att klona ett repo så behöver du ha ett Gerrit-konto, tillräckliga rättigheter samt ha laddat upp din publika SSH nyckel. Exempel: Klona ett projekt som heter helloworld:
Change-Id Commit Hook
För att automatiskt generera och lägga till ett Change-Id till commit-meddelandet. Kopiera en commit-hook ifrån Gerrit. Gå till root-katalogen i ditt klonade repo och kör kommandot:
Detta behöver bara göras en gång efter att du klonat ett repo.
Pusha till master för granskning
Anta att vi har gjort utvecklat på en branch som heter test. Innan det är dax att pusha ändringarna för granskning, så squashar vi ihop alla commits till en. Sen kan man pusha med kommandot: