2014-04-22 18 views
8

Aby usprawnić proces rozwoju, nasza organizacja zdecydowała się wprowadzić Gerrit w przepływie pracy nad rozwojem. Jestem osobą odpowiedzialną za wdrożenie serwera Gerrit. Podręczniki użytkownika dostępne w Internecie były bardzo pomocne w implementacji Gerrit do naszego istniejącego przepływu pracy. Używamy Jenkins i Sonar jako nieinteraktywnych użytkowników do weryfikacji kompilacji. Ale w przypadku repozytoriów jedno pytanie się podnosi. Większość otwartych źródeł wykorzystuje plugin gerrit-replication do replikacji ostatniego kodu do ich publicznego repozytorium kodu. Te publiczne repozytorium są ujawniane za pomocą GitLab, dzięki czemu użytkownicy mogą sklonować kod. Tutaj nie potrzebujemy publicznego repozytorium, ponieważ kod jest utrzymywany w domu.Gerrit - Integracja Gitlab

Czy to dobry wybór, aby wskazać zarówno GitLab, jak i Gerrit do wspólnej lokalizacji repozytorium git?

Każda pomoc doceniona.

+0

nie jestem pewien , jeśli mam to całkowicie w porządku. Jeśli wystawisz repozytorium Git wewnątrz instalacji Gerrita również przez Gitlab, nie będzie to problemem ze strony Gerrit, przynajmniej tak długo, jak Gitlab jest tylko do odczytu (nie masz pewności co do wpisania do repozytorium). – StephenKing

+0

Dzięki za odpowiedź @StephenKing Zrobiłem prototyp, konfigurując istniejące repozytorium git (_, które już jest eksponowane za pomocą github_) z gerrit. I działa dobrze. Wątpię, czy to dobry wybór? – dasrohith

+0

tak, to działa dla mnie jakiś czas temu: – kikicarbonell

Odpowiedz

7

Możesz użyć gerrit przed gitlab poprzez funkcję replikacji. Funkcja replikacji nie wykonuje komendy git/fetch, tylko przesyła (zatwierdza) zmiany do zdalnego repozytorium.

  • musisz zaimportować repozytoria przez np. "git push origin master", który wymaga dodatkowych uprawnień (lub musisz być administratorem). To nie jest wielka sprawa, chyba że zapomnisz usunąć te uprawnienia. Jeśli zapomnisz usunąć te uprawnienia lub jesteś administratorem (kto ma takie uprawnienia): domyślne "git push" spowoduje przejście do bez sprawdzania.
  • musisz się upewnić, że nikt nie może zatwierdzić instancji gitlab. Inna jest duża szansa na wystąpienie konfliktów scalających (gerrit jest nieświadomy tych nowych zatwierdzeń). Możesz chronić gałęzie w gitlab - ale administratorzy (i jeśli dobrze pamiętam, także twórca/właściciel repozytorium ) zawsze będą mieli to prawo.
  • Musisz nadać uprawnienia główne użytkownika gerrit, aby umożliwić mu przesyłanie do repozytorium gitlab.
  • Wszystkie projekty muszą być stworzony w gitlab, inaczej nie będą zsynchronizowane (chyba, że ​​znajdzie sposób, że repo zostanie automatycznie utworzony w gitlab na pierwszym naciśnięciem git)
+0

Czy możesz jeszcze bardziej rozwinąć funkcję replikacji? Jak próbuję zrobić to samo, ale nie mogę zrozumieć, jakie są polecenia używane do replikacji? Dziękuję Ci – 1218GG