Gerrit Code Review: Difference between revisions
mNo edit summary |
|||
Line 7: | Line 7: | ||
* Support för granskning av commits innan dom mergas in i repot | * 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. | 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. Det går även att ställa in så man har rättighet att pusha direkt till master (eller annan) branch. Man går då förbi granskningsdelen i Gerrit. | ||
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. | En commit som 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. | ||
Gerrit stödjer också olika policies när en commit får submittas till t.ex. master branchen. Gerrit kan tillåta att den måste göra triviala mergningar, men man kan också vara sträng och kräva att committen baseras på den senaste committen som redan finns i repot (s.k. fast-forward). | |||
= Ladda upp SSH nyckel = | = Ladda upp SSH nyckel = |
Revision as of 16:09, 16 April 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. Det går även att ställa in så man har rättighet att pusha direkt till master (eller annan) branch. Man går då förbi granskningsdelen i Gerrit.
En commit som 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.
Gerrit stödjer också olika policies när en commit får submittas till t.ex. master branchen. Gerrit kan tillåta att den måste göra triviala mergningar, men man kan också vara sträng och kräva att committen baseras på den senaste committen som redan finns i repot (s.k. fast-forward).
Ladda upp SSH nyckel
Gerrit använder SSH och nyckelpar, så för att kunna klona och pusha över SSH måste du ladda upp din publika SSH-nyckel. Om du inte har ett nyckelpar kan du skapa ett via kommandot ssh-keygen -t rsa. Din publika nyckel hamnar i filen ~/.ssh/id_rsa.pub. Det är hela innehållet i denna fil som du ska ladda upp till Gerrit.
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: