2009-05-12 9 views
32

W mojej firmie staramy się dodać praktyki recenzowania kodu do naszego procesu rozwoju iw tym celu zdecydowaliśmy się użyć Review Board.Praca z recenzjami dla repozytorium Mercurial

Podczas gdy zespół recenzentów powinien pracować po wyjęciu z pudełka dla Subversion, przepływ pracy dla Mercurial wygląda trochę zaangażowany. Po pierwsze wydaje się, że tylko przeglądanie postów (za pomocą skryptu post-review) jest obsługiwane dla tego typu repozytorium. Po drugie, dokumentacja nie jest jasna, czy post-review faktycznie wspiera Mercurial (wspomina tylko git).

Czy moglibyście opisać szczegółowo swój przebieg pracy?

Mam rację w moim myśleniu powinno być coś takiego:

Developer:

  1. mistrz klon repo
  2. klon funkcja repo od lokalnego mistrza repo
  3. hack hack, w funkcji repo
  4. commit na repozytorium funkcji
  5. jakoś uruchomić post-recenzję z funkcji repo przeciwko ent mistrz repo

recenzent:

  1. ocena diff
  2. jeśli następnie OK pociągnąć do repo Master z repo fabularnego

Odpowiedz

11

Właśnie zaczęliśmy używać zarówno Mercurial, jak i ReviewBoard w mojej firmie. Robimy coś podobnego do twojego sugerowanego przepływu pracy, z tym że zwykle nie przejmujemy się repozytoriami operacji i zawsze dążymy do mistrza, zamiast wyciągać od mistrza.

Głównym problemem, który napotykasz przy korzystaniu z tablicy rejestracyjnej z DVCS, jest miejsce, w którym chcesz, aby ktoś przejrzał zmianę z, powiedzmy, rewizji 2 do wersji 3, z których oba znajdują się w lokalnym repo, ale nie we wzorcu, który ma dostęp do panelu przeglądu na przykład, ponieważ wciąż czeka na przegląd zmian od wersji 1 do wersji 2.

Rozwiązanie tego rozwiązania przez BookBoard nazywa się "parent diffs"; Oznacza to, że zamiast przesłać łatkę, którą chcesz przejrzeć, musisz również załadować różnicę między najnowszą wersją w głównym repozytorium a wersją macierzystą poprawki. Dzięki temu ReviewBoard może zrekonstruować pliki początkowe po lewej stronie swojej przeglądarki różnicowej.

Aktualna wersja aplikacji ReviewBoard nie obsługuje wersji macierzystej dla Mercurial, ale dostarczyłem poprawkę, która sprawi, że będą działać; Uważam, że powinno to dotyczyć RC3.

Dodałem również poprawkę do rozszerzenia ReviewBoard wspomnianego w poprzednim poście, aby umożliwić obsługę różnic nadrzędnych. Będę je udostępniał po wydaniu RC3.

+0

Dziękuję za odpowiedź, wypróbuję RC3 w najbliższym czasie. Nawiasem mówiąc, jakiś czas temu natknąłem się na jakiś projekt OpenSource (nie pamiętam nazwy), w którym ludzie używają aplikacji ReviewBoard z Mercurial jako narzędzia do wcześniejszej recenzji tylko do dyskusji na temat skomplikowanych łatek. Po zatwierdzeniu poprawki jest ona wciągana do repozytorium. Trywialne są zwykle wyciągane bez jakiejkolwiek biurokracji. – pachanga

+2

FYI Rozwinąłem rozszerzenie ReviewBoard (dotychczas nie mogłem skontaktować się z właścicielem projektu) na http://bitbucket.org/ccaughie/mercurial-reviewboard/. To ma wszystkie moje zmiany, w tym wsparcie dla rodziców. – ccaughie

+0

Rozszerzenia Mercurial ReviewBoard są teraz dostępne tutaj http://code.google.com/p/mercurial-reviewboard/ – yanjost

6

Jest to rozszerzenie dla mercurial o co chcesz do wykonania:

http://blogma.de/projects/mercurial-reviewboard.html
https://www.mercurial-scm.org/wiki/ReviewboardExtension

Przedstawiony przez ciebie przepływ pracy wydaje się łatwy, więc myślę, że jesteś na dobrej drodze. Sposób usługi DVCS (tj bitbucket lub github) obsługiwać to faktycznie taka sama:

commiter:
kroki 1 ... 4 takie same
5. Wyślij wniosek ściągania do opiekuna (to były twoje Przegląd kod pasuje)

Recenzent:
1. Liczba wniosek wyciągnąć
2. ciągnie

Ponieważ takie podejście działa idealnie dla wyżej wymienionych usług nie sądzę, że powinien on przedstawić żadnych problemów.

0

Istnieje teraz nazwa rozszerzenia FileReview, która jest zintegrowana z TortoiseHg (od TortoiseHg> = 0.9). Wydaje się, że recenzje są zintegrowane z repozytorium.

Nie udało się sprawić, aby działało w systemie Windows, ale mam nadzieję, że zostanie poprawiony!

3

Nie wiem, jak duży jest Twój zespół, ale recenzje postów szybko stają się niemożliwe do kontrolowania, zwłaszcza w dużych zespołach, projektach krytycznych dla bezpieczeństwa i gdy recenzenci są zajęci.

GitHub i Bitbucket rozwiązują ten problem z podejściem, które nie było wykonalne w erze poprzedzającej DVCS, przy użyciu tak zwanych żądań pobrania.

Koncepcja w pigułce: Deweloper zobowiązuje się do swojego własnego klona, ​​a następnie prosi właściciela repozytorium o przekazanie rzeczy do głównego repo. Właściciel sprawdza i może przyjąć lub odrzucić wyciągnięcie go do mistrza. To takie proste.

Możesz obejrzeć film na YouTube w wersji Git Workflows Demo: What is the Integrator Workflow?. Dotyczy to również Mercurial.

Powiązane problemy