Administrera Git repos i Gerrit Code Review
Denna artikel beskriver hur man administrerar Git repos i Gerrit Code Review. Den är OS-neutral och bör även fungera för olika Linux distributioner. Det som skiljer alla olika system är hur man startar Gerrit tjänsten vid start. Det tar denna guide inte upp. Sök efter Gerrit paket för respektive system. Dessa brukar även innehålla startskript m.m. Denna guide tar inte heller upp själva granskningsprocessen i Gerrit. Utan vi kommer öppna upp för push m.m. direkt till master och andra brancher.
Gerrit kräver Java.
Installera Gerrit
Skapa en användare på systemet som heter gerrit. Logga in som gerrit och ladda ner senaste Gerrit releasen (i detta exempel gerrit-full-2.5.war). Installera Gerrit under en katalog som vi döper till review_site:
Vi kommer nu få svara på en massa installationsfrågor.
*** Gerrit Code Review 2.5 *** Create '/home/gerrit/review_site' [Y/n]? y *** Git Repositories *** Location of Git repositories [git]: *** SQL Database *** Database server type [H2/?]: *** User Authentication *** Authentication method [OPENID/?]: development_become_any_account *** Email Delivery *** SMTP server hostname [localhost]: SMTP server port [(default)]: SMTP encryption [NONE/?]: SMTP username : *** Container Process *** Run as [gerrit]: Java runtime [/usr/local/diablo-jdk1.6.0/jre]: Copy gerrit.war to /home/gerrit/review_site/bin/gerrit.war [Y/n]? Copying gerrit.war to /home/gerrit/review_site/bin/gerrit.war *** SSH Daemon *** Listen on address [*]: Listen on port [29418]: Gerrit Code Review is not shipped with Bouncy Castle Crypto v144 If available, Gerrit can take advantage of features in the library, but will also function without it. Download and install it now [Y/n]? Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK Checksum bcprov-jdk16-144.jar OK Generating SSH host key ... rsa... dsa... done *** HTTP Daemon *** Behind reverse proxy [y/N]? Use SSL (https://) [y/N]? Listen on address [*]: Listen on port [8080]: *** Plugins *** Prompt to install core plugins [y/N]? Initialized /home/gerrit/review_site Executing /home/gerrit/review_site/bin/gerrit.sh start Starting Gerrit Code Review: OK Waiting for server to start ... OK Opening browser ...
Verifiera att Gerrit är uppe genom att t.ex. starta en webbrowser och gå till http://hostname:8080.
Skapa användare och projekt i Gerrit
Starta en webbrowser och gå till http://hostname:8080. Klicka på Become uppe till höger. Klicka på New Account under Register. Ange namn och epost-adress och ett unikt användarnamn. 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 första kontot du skapar när man kör med development_become_any_account blir även administratör i Gerrit.
Skapa ett HelloWorld projekt i Gerrit genom att klicka på Projects => Create New Project. Ange sedan följande:
Klicka sen på Create Project. Om man vill skapa flera projekt med samma rättigheter, utnyttjar man med fördel Gerrits stöd att projekt kan baseras på andra projekt. För att få möjlighet att skapa brancher och pusha direkt till master branchen m.m. gå till All-Projects och Access. Klicka på Edit och ändra så du har följande:
Klona projekt och pusha ändring
Logga in som en användare som har ett konto i Gerrit och som har laddat upp sin publika nyckel. Klona sedan HelloWorld projektet:
Gå till repot och kör:
Pusha nu tillbaka ändringarna till Gerrit och master branchen:
Pusha en branch
Klona HelloWorld projektet och committa en ändring till en lokal branch som vi kallar test:
Gå till repot och kör:
Pusha nu ändringen och branchen till Gerrit:
Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 250 bytes, done. Total 2 (delta 0), reused 0 (delta 0) remote: Processing changes: refs: 1, done To ssh://user@host:29418/HelloWorld.git * [new branch] test -> test Branch test set up to track remote branch test from origin.
Tack vare Create Reference rättigheten på refs/* får vi pusha upp brancher till Gerrit.
Pusha en tag
Klona HelloWorld projektet:
Gå till repot och kör:
Total 0 (delta 0), reused 0 (delta 0) remote: Processing changes: refs: 1, done To ssh://peter@192.168.0.115:29418/HelloWorld.git * [new tag] v1 -> v1