Gerrit Code Review: Difference between revisions
mNo edit summary |
|||
Line 45: | Line 45: | ||
{{Cmd|git clone ssh://<host>:29418/helloworld.git}} | {{Cmd|git clone ssh://<host>:29418/helloworld.git}} | ||
= Change-Id Commit Hook = | == Kopiera Change-Id Commit Hook från Gerrit == | ||
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: | 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: | ||
{{Cmd|scp -p -P 29418 <gerrit server>:hooks/commit-msg .git/hooks/}} | {{Cmd|scp -p -P 29418 <gerrit server>:hooks/commit-msg .git/hooks/}} | ||
Detta behöver bara göras en gång efter att du klonat ett repo. | Detta behöver bara göras en gång efter att du klonat ett repo. | ||
[[Category:FreeBSD]] | [[Category:FreeBSD]] |
Revision as of 16:39, 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).
Komma igång
Gerrits webinterface körs oftast på port 8080 och git kommandona över ssh körs oftast på port 29418.
För att komma igång med Gerrit, så behöver du ett konto samt ladda upp din publika del av en SSH nyckel. Om du inte redan har ett SSH nyckelpar, skapa ett via kommandot ssh-keygen. För att skapa en RSA nyckel, kör kommandot:
Om du inte vill skydda nyckeln med ett lösenord, tryck bara på enter när lösenord efterfrågas.
Logga in på Gerrit. Gå till Settings och SSH Public Keys. Ladda upp din publika nyckel, dvs ofta innehållet i filen ~/.ssh/id_rsa.pub om du skapade en RSA nyckel enligt ovan.
För att testa din nyckel, kör följande kommando:
Om allt går bra ska du se en hälsningsfras liknande:
**** Welcome to Gerrit Code Review **** Hi, you have successfully connected over SSH. Unfortunately, interactive shells are disabled. To clone a hosted Git repository, use: git clone ssh://USER@HOST:29418/REPOSITORY_NAME.git Connection to HOST closed.
Klona ett repo
Normalt sett behöver man bara klona ett repo en gång. Man får då tillgång till alla version av repot. För att sen uppdatera sin klon använder man git pull eller git fetch. Exempel: Klona ett repo som heter helloworld:
Kopiera Change-Id Commit Hook från Gerrit
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.