Nie można ustawić recenzentów per-commit, są one stosowane za naciśnięciem przycisku (patrz gerrit's git-receive-pack manual). Zamiast wykonywania git push origin HEAD
lub git review
(zakładając origin
być zdalny Gerrit i HEAD
gałąź, którą chcesz przesunąć), można uruchomić następujące dodanie dwóch recenzentów dla wszystkich nowych zatwierdzeń:
git push origin HEAD:refs/for/master%[email protected],[email protected]
że dostaje stosowane do wszystkie zatwierdzenia, które nie jest to, co chcesz. Ze względu na powyższe ograniczenia zmienmy przepływ pracy, aby najpierw wprowadzić zmiany, a następnie ustawić niektórych recenzentów.
Od Gerrit rozróżnia Cc
(wystarczy wysłać zgłoszenie mailem) i recenzenci (wyślij e-mail, ale również oznaczyć użytkownika jako recenzenta), będę modyfikować wiadomość popełnienia następująco:
component: make foo more bar
Foo was not bar enough, this change adds more bar to make foo fit better
in baz.
[email protected]
[email protected]
Change-Id: I4724e283214e0bfbb85a8e3d8db4971618e2609a
Biorąc pod uwagę szereg zatwierdzeń, można wykonać następujące czynności, aby dodać recenzentów oddzielne dla każdego popełnić:
- Zbierz listę identyfikatorów (lub zobowiązuje
Change-Id
s). Przykład, który zakłada gałąź główną jako bazę: git rev-list --reverse origin/master..
- Dla każdego identyfikatora zatwierdzenia, skanuj dla
R=...
(recenzentów) w komunikacie zatwierdzenia. Komunikat popełnić za dany popełnić można znaleźć z git show --no-patch --format=%b COMMIT_ID
- Jeśli recenzenci istnieć na komunikat zatwierdzenia, dodaj je za pomocą polecenia
ssh -p 29418 [email protected] 'gerrit set-reviewers -a [email protected] COMMIT_ID'
(zamiast COMMIT_ID
, można również użyć Change-Id
który jest I4724e283214e0bfbb85a8e3d8db4971618e2609a
na przykład).
Aby wykonać powyższe czynności (wraz z automatycznego wykrywania użytkownika, hosta i ustawienia portu), napisałem skrypt bash https://git.lekensteyn.nl/scripts/tree/git/gerrit-add-reviewers
zaleca się, aby mieć plik .gitreview
w repo z remote, który wskazuje na instancję Gerrit. Następnie wykonaj ~/scripts/gerrit-add-reviews origin/master..
z repozytorium git, aby skanować wiadomości zatwierdzenia i dodawać recenzentów.
myślę, że można stworzyć hak pre-push do tego, aby stworzyć specjalny specyfikator gałęzi z zatwierdzenia msg – HiB
@jthill został dodany znacznik git, ponieważ mogą tu również działać hooki commit, co wymaga znajomości git. Wycofuję się, jeśli nie masz nic przeciwko? – Lekensteyn
Nie mam nic przeciwko. Powiedziałem swój kawałek, nie musiałeś nawet mówić swojego, to twoja poczta. Mógłbym się mylić, by sądzić, że duża liczba użytkowników gerrit również zna git na tyle dobrze, by odpowiedzieć, na tyle, że przeszkadza to znacznie większej liczbie użytkowników git-only śledzących ten tag, ale nie wiedzą, że gerrit nie był tego wart. – jthill