Gerrit - Szybki przewodnik

Gerrit to internetowe narzędzie do przeglądania kodu, które jest zintegrowane z Git i zbudowane na bazie systemu kontroli wersji Git (pomaga programistom współpracować i utrzymywać historię ich pracy). Pozwala na scalanie zmian w repozytorium Git po zakończeniu przeglądu kodu.

Gerrit został opracowany przez Shawna Pearce'a w Google i jest napisany w Javie, Servlet, GWT (Google Web Toolkit). Stabilne wydanie Gerrit to 2.12.2 i opublikowane 11 marca 2016 na licencji Apache License v2 .

Dlaczego warto korzystać z Gerrit?

Oto kilka powodów, dla których warto używać Gerrit.

  • Możesz łatwo znaleźć błąd w kodzie źródłowym za pomocą Gerrit.

  • Możesz pracować z Gerrit, jeśli masz zwykłego klienta Git; nie ma potrzeby instalowania żadnego klienta Gerrit.

  • Gerrit może być używany jako pośrednik między programistami a repozytoriami git.

Funkcje Gerrit

  • Gerrit to darmowy i otwarty system kontroli wersji Git.

  • Interfejs użytkownika Gerrit jest tworzony w Google Web Toolkit .

  • Jest to lekki framework do przeglądania każdego zatwierdzenia.

  • Gerrit działa jako repozytorium, które umożliwia wypychanie kodu i tworzy recenzję dla twojego zatwierdzenia.

Zalety Gerrit

  • Gerrit zapewnia kontrolę dostępu do repozytoriów Git i interfejsu WWW do przeglądu kodu.

  • Możesz przekazać kod bez używania dodatkowych narzędzi wiersza poleceń.

  • Gerrit może zezwolić lub odmówić pozwolenia na poziomie repozytorium i do poziomu oddziału.

  • Gerrit jest obsługiwany przez Eclipse.

Wady Gerrita

  • Przeglądanie, weryfikacja i ponowne przesyłanie zatwierdzeń kodu spowalnia czas wprowadzenia na rynek.

  • Gerrit może działać tylko z Git.

  • Gerrit działa wolno i nie można zmienić kolejności sortowania, w której wyświetlane są zmiany.

  • Potrzebujesz uprawnień administratora, aby dodać repozytorium na Gerrit.

Zanim będziesz mógł używać Gerrit, musisz zainstalować Gita i dokonać podstawowych zmian w konfiguracji. Poniżej przedstawiono kroki instalacji klienta Git na różnych platformach.

Instalacja klienta Git

Linux

Możesz zainstalować Git w systemie Linux za pomocą narzędzia do zarządzania pakietami oprogramowania. Na przykład, jeśli używasz Fedory, możesz użyć jako -

sudo yum install git

Jeśli używasz dystrybucji opartej na Debianie, takiej jak Ubuntu, użyj następującego polecenia -

sudo apt-get install git

Windows

Możesz zainstalować Git w systemie Windows, pobierając go ze strony internetowej Git. Po prostu przejdź do linku msysgit.github.io i kliknij przycisk pobierania.

Prochowiec

Git można zainstalować na komputerze Mac za pomocą następującego polecenia -

brew install git

Innym sposobem instalacji Gita jest pobranie go ze strony internetowej Git. Po prostu przejdź do linku Git install on Mac , który zainstaluje Git for Mac.

Po zainstalowaniu Git musisz dostosować zmienne konfiguracyjne, aby dodać swoje dane osobowe. Możesz pobrać i ustawić zmienne konfiguracyjne za pomocą narzędzia Git o nazwie git config wraz z opcją -l (ta opcja zapewnia bieżącą konfigurację).

git config -l

Po uruchomieniu powyższego polecenia otrzymasz zmienne konfiguracyjne, jak pokazano na poniższym obrazku

Możesz zmienić dostosowane informacje w dowolnym momencie, używając ponownie poleceń. W następnym rozdziale dowiesz się, jak skonfigurować nazwę użytkownika i adres e-mail użytkownika za pomocą polecenia git config .

Możesz śledzić każde zatwierdzenie, ustawiając zmienne nazwy i adresu e - mail . Zmienna name określa nazwę, podczas gdy zmienna email identyfikuje adres e-mail powiązany z zatwierdzeniami Git. Możesz je ustawić za pomocą następujących poleceń -

git config --global user.email "[email protected]"
git config --global user.name "your_name"

Po uruchomieniu powyższych poleceń otrzymasz nazwę użytkownika i adres e-mail, jak pokazano na poniższym obrazku.

SSH oznacza Secure Shell lub czasami protokół Secure Socket Shell używany do bezpiecznego dostępu do usług sieciowych ze zdalnego komputera. Możesz ustawić klucze SSH, aby zapewnić niezawodne połączenie między komputerem a Gerrit.

Możesz sprawdzić istniejący klucz SSH na komputerze lokalnym za pomocą następującego polecenia w Git Bash -

$ ls ~/.ssh

Po kliknięciu przycisku Enter zobaczysz istniejący klucz SSH, jak pokazano na poniższym obrazku -

Jeśli nie znajdziesz żadnego istniejącego klucza SSH, musisz utworzyć nowy klucz SSH.

Generowanie nowego klucza SSH

Możesz wygenerować nowy klucz SSH do uwierzytelniania za pomocą następującego polecenia w Git Bash -

$ ssh-keygen -t rsa -C "[email protected]"

Jeśli masz już klucz SSH, nie generuj nowego klucza, ponieważ zostanie on nadpisany. Możesz użyć polecenia ssh-keygen , tylko jeśli zainstalowałeś Git z Git Bash.

Po uruchomieniu powyższego polecenia utworzy ono 2 pliki w katalogu ~ / .ssh .

  • ~/.ssh/id_rsa - Jest to klucz prywatny lub klucz identyfikacyjny.

  • ~/.ssh/id_rsa.pub - To jest telewizja publiczna.

Możesz dodać klucz SSH do ssh-agent na różnych platformach omówionych dalej.

Linux

Użyj następującego polecenia w systemie Linux, aby dodać klucz SSH

cat /home/<local-user>/.ssh/id_rsa.pub

Windows

Otwórz GUI GIT i przejdź do Help → Show SSH Key jak pokazano na poniższym obrazku.

Następnie kliknij Copy To Clipboard przycisk, aby skopiować klucz do schowka.

Prochowiec

W systemie Mac OS X można skopiować zawartość id_rsa.pub do schowka za pomocą następującego polecenia.

$ pbcopy < ~/.ssh/id_rsa.pub

Klucz SSH można dodać do konta Gerrit, wykonując następujące czynności -

  • Step 1- Najpierw utwórz konto w usługach wmflabs.org .

  • Step 2- Następnie zaloguj się do interfejsu internetowego Gerrit .

  • Step 3 - Następnie w prawym górnym rogu kliknij swoją nazwę użytkownika i wybierz opcję Ustawienia.

    Tutaj utworzyliśmy konto o imieniu John, aby korzystać z Gerrit

  • Step 4 - Kliknij opcję „Klucze publiczne SSH” w menu po lewej stronie i wklej klucz publiczny SSH w polu.

Możesz dodać klucz SSH do Git za pomocą następujących poleceń -

  • Step 1 - Otwórz Git Bash i pobierz ssh-agent za pomocą następującego polecenia.

$ eval 'ssh-agent'
  • Step 2 - Następnie dodaj klucz SSH do ssh-agent za pomocą następującego polecenia

$ ssh-add ~/.ssh/id_rsa
  • Step 3 - Teraz uruchom ssh za pomocą następującego polecenia, które pasuje do odcisku palca SSH używanego podczas pierwszego logowania.

$ ssh -p 29418 <user_name>@gerrit.wikimedia.org

Na powyższym zrzucie ekranu możesz to zobaczyć xyz123 to nazwa konta powłoki instancji, która jest używana podczas tworzenia konta Gerrit i Abc123 to nazwa użytkownika Twojego konta Gerrit.

Możesz pobrać przykład za pomocą Git wraz z kodem źródłowym dowolnego projektu zorganizowanego pod adresem gerrit.wikimedia.org za pomocą następującego polecenia Git Bash.

$ git clone 
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples

Polecenie git clone klonuje katalog do nowego katalogu; innymi słowy pobiera kopię istniejącego repozytorium . Po uruchomieniu powyższego polecenia otrzymasz zrzut ekranu podobny do poniższego.

Powyższe polecenie klonuje repozytorium „przykładów” i odbiera obiekty, pliki itp. Z tego repozytorium i przechowuje je w lokalnym oddziale.

Możesz pracować z Gerrit, instalując git-review na różnych platformach, jak omówiono w tym rozdziale.

Windows

W systemie Windows możesz zainstalować recenzję git zgodnie z poniższymi krokami.

Step 1- Najpierw zainstaluj Pythona do instalacji git-review.

Step 2 - Zachowaj instalację Pythona w domyślnym katalogu (np. C: \ Python27) zamiast instalować w jakimkolwiek innym katalogu.

Step 3 - Następnie ustaw zmienne środowiskowe dla katalogu skryptów języka Python, używając ścieżki jako C:\Python27\;C:\Python27\Scripts\;

git_review_install

Step 4- W wersji 2.7 Python zainstaluje pip automatycznie. W przypadku starszej wersji Pythona 2.7 możesz zainstalować pip zgodnie z opisem w tym linku .

Step 5 - Uruchom otwórz Git Bash i zainstaluj przeglądarkę git za pomocą następującego polecenia.

$ pip install git-review

Linux

W systemie Linux możesz zainstalować przeglądarkę git zgodnie z opisem w następujących krokach -

Step 1Użytkownicy platformy Linux nie mają uprawnień administratora na współdzielonym hoście. Dlatego bez uprawnień administratora możesz zainstalować git-review lokalnie w katalogu użytkownika za pomocą następujących poleceń -

virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21

Step 2 - Możesz rozszerzyć ścieżkę do lokalnych plików binarnych na dwa sposoby -

PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH

Step 3 - Teraz użyj następującego polecenia, aby skonfigurować pracę z Gerritem.

git review -s
 or
~/virtualenv/bin/git-review -s

Step 4 - Z dostępem roota, git-review można zainstalować za pomocą następującego polecenia.

sudo apt-get install git-review

Step 5- Jeśli po zainstalowaniu Pythona nie ma apt-get , użyj następujących poleceń.

$ sudo easy_install pip
$ sudo pip install git-review==1.21

Step 6 - Uruchom następujące polecenie, aby pracować z Gerrit.

git review -s

Mac OS X

Na komputerze Mac możesz zainstalować przeglądarkę git, wykonując następujące czynności.

Step 1- Zainstaluj Homebrew z tego linku.

Step 2 - Następnie zainstaluj przeglądarkę git-review za pomocą następującego polecenia.

brew install git-review

Gerrit jest zbudowany na bazie systemu kontroli wersji Git, który wyodrębnia kod z innego hosta, wypycha zmiany w kodzie, przesyła kod do przeglądu itp. Domyślna zdalna nazwa Git to origin i mówimy git-review, aby to wykorzystała nazwa „pochodzenie” za pomocą następującego polecenia.

$ git config --global gitreview.remote origin

Git-review może służyć do wysyłania gałęzi git do Gerrit do recenzji. Możesz skonfigurować gitreview za pomocą następującego polecenia w katalogu projektu.

$ git review -s

Git-review może być używane jako narzędzie wiersza poleceń do konfigurowania klonu Gita, przesyłania gałęzi do Gerrit, pobierania istniejących plików itp. Git-review domyślnie szuka zdalnego o nazwie gerrit do pracy z Gerritem.

Jeśli git-review znajdzie pilota Gerrit, prześle gałąź do HEAD:refs/for/masterw zdalnej lokalizacji i jeśli nie ma zdalnego dostępu Gerrit, git-review szuka pliku .gitreview plik w katalogu głównym repozytorium wraz ze zdalnymi informacjami Gerrit.

Przegląd Git wewnętrznie przetwarza następujące elementy -

  • Sprawdza, czy zdalne repozytorium działa, czy nie, do przesyłania oddziałów.

  • Jeśli nie ma zdalnego dostępu Gerrit, zapyta o nazwę użytkownika i spróbuje ponownie uzyskać dostęp do repozytorium.

  • Utworzy zdalny dostęp o nazwie gerrit, który wskazuje na Gerrit.

  • Zainstaluje hook commit-msg.

Możesz zaktualizować gałąź główną za pomocą następującego polecenia. Polecenie git-pull pobiera z innego lokalnego oddziału lub integruje się z innym repozytorium.

git pull origin master
  • Polecenie pobierze zmiany ze źródła zdalnego (adres URL zdalnego do pobrania), gałęzi głównej i połączy zmiany z lokalną wyewidencjonowaną gałęzią.

  • Wzorzec pochodzenia jest zapisaną w pamięci podręcznej kopią ostatnio pobraną ze źródła.

  • Git pull to połączenie git fetch (pobiera nowe zatwierdzenia ze zdalnego repozytorium) i git merge (integruje nowe zatwierdzenia z lokalnym oddziałem).

  • Git pull domyślnie scala gałąź lokalną z gałęzią zdalną.

Możesz utworzyć gałąź na komputerze lokalnym za pomocą następującego polecenia.

$ git checkout -b name_of_branch origin/master

Powyższe polecenie tworzy nową gałąź, jak pokazano na poniższym zrzucie ekranu.

Tutaj użyliśmy branch123jako nowy oddział lokalny. Możesz pokazać nową gałąź z „wzorca” za pomocą następującego polecenia.

$ git branch

Powyższe polecenie daje wynik, jak pokazano na poniższym zrzucie ekranu.

Git checkout nawiguje między gałęziami, aktualizuje pliki w katalogu roboczym i informuje Git o zapisaniu zatwierdzeń w tej gałęzi.

Podczas modyfikowania kodu w lokalnym systemie plików można sprawdzić zmiany w katalogu za pomocą następującego polecenia.

$ git diff

W katalogu projektu zmodyfikujemy niektóre zmiany w pliku o nazwie Example/Example.hooks.phpi uruchom powyższe polecenie. Otrzymamy wynik, jak pokazano na poniższym zrzucie ekranu.

Możesz sprawdzić zmiany wprowadzone w plikach lub katalogu za pomocą następującego polecenia.

$ git status

Powyższe polecenie pozwala zobaczyć, które zmiany zostały wprowadzone, a które nie oraz które pliki nie są śledzone przez Git.

Następnie możesz dodać zmiany w katalogu roboczym i zaktualizować plik w następnym zatwierdzeniu za pomocą następującego polecenia.

$ git add Example/Example.hooks.php

Po dodaniu pliku ponownie uruchom polecenie git status, aby przejrzeć zmiany dodane do obszaru przemieszczania, jak pokazano na poniższym zrzucie ekranu.

Możesz zobaczyć różnicę między indeksem a ostatnim zatwierdzeniem oraz jaka zawartość została przygotowana, używając następującego polecenia.

$ git diff --cached

Możesz wypchnąć zmiany do zdalnego katalogu z lokalnego repozytorium za pomocą następującego polecenia.

$ git commit

Kiedy uruchomisz powyższe polecenie, poprosi o dodanie komunikatu o zatwierdzeniu zmian. Ta wiadomość będzie widoczna dla innych osób, gdy prześlesz zatwierdzenie do innego repozytorium.

Dodaj komunikat o zatwierdzeniu i uruchom ponownie polecenie jako git commit , co spowoduje wyświetlenie komunikatu o zatwierdzeniu, jak pokazano na poniższym zrzucie ekranu.

Musisz przejrzeć zmiany w Gerrit przed scaleniem ich ze wzorcem. Zmiany można zsynchronizować, które wystąpiły w module głównym. Użyj następującego polecenia w gałęzi, nad którą pracowałeś.

$ git pull --rebase origin master
  • Powyższe polecenie pobierze zmiany lub zatwierdzenia ze zdalnej gałęzi i ponownie utworzy bazę zatwierdzeń na górze głównej.

  • Kiedy skończysz ze zmianami i zmienisz bazę zatwierdzeń, możesz przesłać swój zestaw zmian do Gerrit w celu przeglądu.

  • Git pull --rebase jest często używane, gdy zmiany nie zasługują na osobną gałąź.

  • Git pull to połączenie git fetch i git merge; gdzie jako git pull --rebase jest połączeniem git fetch i git rebase.

Najpierw uruchom polecenie jako wzorzec pochodzenia git pull, jak pokazano na poniższym zrzucie ekranu.

Teraz użyj polecenia jako git rebase master, aby zmienić bazę zatwierdzeń, jak pokazano na poniższym zrzucie ekranu.

Możesz przesłać poprawki do recenzji, korzystając z pliku git-reviewKomenda. Zestaw zmian można przesłać do Gerrit, uruchamiając plikgit review -R polecenie, jak pokazano na poniższym zrzucie ekranu.

Plik -R Opcja informuje git-review, aby nie ukończyć rebase przed przesłaniem zmian git do Gerrit.

Możesz przesłać kod do innej gałęzi, a nie do głównej, za pomocą następującego polecenia.

git review name_of_branch

Możliwe jest również przesłanie kodu do innego pilota za pomocą następującego polecenia.

git review -r name_of_remote

Zmiany można wyświetlić na pulpicie nawigacyjnym Gerrit, klikając ten link .

Kliknij link do zmodyfikowanej nazwy autora , a otrzymasz następujący zrzut ekranu.

Kliknij łącze rozpowszechniania, aby zobaczyć zmienione pliki z innymi szczegółami, jak pokazano na poniższym zrzucie ekranu.

Możesz edytować projekt za pośrednictwem interfejsu internetowego po zalogowaniu się na konto Gerrit, jak pokazano w poniższych krokach.

Step 1- Przejdź do pulpitu nawigacyjnego Gerrit, klikając ten link . Otrzymasz następujący zrzut ekranu.

Step 2 - Następnie kliknij mediawiki/extensions/examplesłącze określone w kolumnie Projekt .

Step 3- Kliknij łącze Ogólne na pasku narzędzi, jak pokazano na poniższym zrzucie ekranu.

Step 4- Po otwarciu łącza Ogólne wyświetli się poniższy zrzut ekranu.

Step 5- Kliknij przycisk Utwórz zmianę , aby otworzyć wyskakujące okienko z niektórymi szczegółami, jak pokazano na poniższym zrzucie ekranu.

Step 6- Wprowadź informacje i kliknij przycisk Utwórz .

Po utworzeniu zmiany wyświetli informacje, jak pokazano na poniższym zrzucie ekranu.

Step 7- Kliknij Edytuj, a następnie kliknij Dodaj . Teraz wybierz plik, który chcesz edytować. Tutaj wybraliśmy plikExample/i18n/en.json.

Po otwarciu pliku zostaną wyświetlone dane json, jak określono na poniższym zrzucie ekranu.

Step 8- Kliknij przycisk Zapisz, a następnie kliknij przycisk Zamknij .

Step 9- Na koniec kliknij przycisk Publikuj , aby opublikować edytowany plik

Step 10- Możesz zmienić wiadomość dotyczącą zatwierdzenia, klikając łącze Commit Message, jak pokazano na poniższym zrzucie ekranu.

Step 11- Naciśnij e na klawiaturze i dodaj dodatkowe informacje, jeśli chcesz kliknąć Zapisz, a następnie kliknij przycisk Zamknij .

Przegląd kodu jest ważną częścią przepływu pracy w Gerrit. Podstawowa koncepcja polega na tym, że kod należy przejrzeć przed scaleniem.

Przepływ pracy kodu MediaWiki można przejrzeć przed scaleniem go, a także można przejrzeć rozszerzenia, które dostosowują wygląd i działanie MediaWiki. Istnieje jeden specjalny przypadek, w którym można przesuwać zatwierdzanie internacjonalizacji i lokalizacji .

Po zakończeniu tworzenia możesz wypchnąć wszystkie zatwierdzenia do gałęzi zdalnej. Ktoś pobierze zmiany do lokalnego i połączy te pobrane zmiany z lokalnym wzorcem, tworząc zatwierdzenie merge. Możesz przesłać te zmiany dorefs/for/master.

Właściciel projektu oznacza, że ​​projekt należy do wymienionej osoby. Właściciele projektów to grupa wirtualna, do której nie można dodawać członków ani innych grup. Właściciel projektu przyznaje prawa dostępu, aby nadać uprawnienia do projektu różnym grupom.

Możesz wyświetlić prawa dostępu do swojego projektu, wykonując następujące kroki.

Step 1- Otwórz pulpit nawigacyjny Gerrit, klikając ten link .

Step 2- Kliknij opcję Projekty → Lista . Przeszukaj projekt na liście projektów i kliknij go, jak pokazano na poniższym zrzucie ekranu.

Step 3- Po otwarciu projektu kliknij opcję Dostęp , jak pokazano na poniższym zrzucie ekranu.

Step 4- Kliknij opcję edycji . Możesz zmienić prawa dostępu, klikając menu rozwijane. Kliknij przycisk Zapisz zmiany , jak pokazano na poniższym zrzucie ekranu.

Każdy może przejrzeć kod i skomentować go w Gerrit. Rozważ następujące kroki -

Step 1 - Zaloguj się do Gerrit, aby otworzyć pulpit nawigacyjny Gerrit, jak określono w poprzednim rozdziale.

Step 2 - Teraz kliknij dowolny temat, który zawiera projekt Gerrit, gałąź, datę aktualizacji itp., Jak pokazano na poniższym zrzucie ekranu.

Step 3- Następnie wyświetli ekran. Kliknij opcję Commit Message , jak pokazano na poniższym zrzucie ekranu.

Ważnymi polami zestawu zmian są Recenzenci, Dodaj recenzenta, Obok siebie wyłączone itd. Porównywanie zestawów poprawek obejmuje wybór listy historii starej wersji, rozwijanie szczegółów nowszego zestawu poprawek itp. Przeglądanie i scalanie lub odrzucanie kodu. zawiera przycisk porzuć zmianę, przycisk przesyłania poprawki itp., których nie ma w aktualnej wersji Gerrit.