2010-09-16 13 views
54

Rozważam użycie narzędzia GitHub jako podstawowego narzędzia do przeglądania kodu. Dzięki funkcjom, takim jak komentowanie w trybie in-line i porównywanie, ma wiele funkcji dostępnych w takich narzędziach, jak Gerrit.Przepływ pracy dla recenzji kodu opartej na GitHub

Czy ktoś inny użył GitHub do tego? Jeśli tak, jaki jest twój przepływ pracy? I jakie są twoje doświadczenia, zarówno pozytywne, jak i negatywne?

Gdy mam kilka przemyśleń na ten temat i ustalę, co będzie dla nas najlepsze, zmienię moje pytanie, aby udostępnić mój własny proponowany przepływ pracy.

EDITED z proponowanymi workflow

Krok 0. Set up a post-receive hook pomocą niesamowite reviewth.is.

Następnie:

  1. Commit jak zwykle z commit -a -s, ale w komunikacie popełnienia dołączyć #reviewthis @username.

  2. Jeśli kompilacja się nie powiedzie, przegląd zostanie pominięty, dopóki kompilacja nie zostanie przywrócona.

  3. Komentarze recenzenta na temat commit line-by-line lub na poziomie pliku.

  4. GitHub automagicznie powiadamia recenzenta o komentarzach.

  5. Recenzent powiadamia recenzenta pocztą elektroniczną, gdy komentarze zostaną uzupełnione o podsumowanie opinii.

  6. Recenzent odpowiada na komentarze recenzentów w GitHub, umożliwiając projektowi dostęp do historii recenzji kodu.

Moje największe problemy dotyczą kroku 2 i kroków 4/5. Gerrit działa przyjemnie, nie pytając o recenzje, chyba że kompilacja się powiedzie; Chciałbym zrobić to w GitHub. Kroki 4/5 mogą również powodować irytujące (wielokrotne wiadomości e-mail) i ograniczać automatyczny charakter procesu sprawdzania (wymagającego streszczenia w wiadomości e-mail).

Używamy Hudsona jako naszego serwera kompilacji, jeśli to pomaga.

Wszelkie uwagi dotyczące tych problemów również byłyby pomocne.

+0

Recenzje jeszcze się poprawiły (wrzesień 2016): http://stackoverflow.com/a/14480087/6309 – VonC

Odpowiedz

27

Użyłem go do tego. Przepływ pracy, którego używam, polega na wykonaniu pracy w gałęzi tematu i wysłaniu żądania pobrania w tej gałęzi. Recenzenci sprawdzają kod i zatwierdzenia, używając komentarzy w linii (i przez-commit). Koder przyjmuje tę informację zwrotną i wykonuje destrukcyjny rebase w tej gałęzi tematu, ponownie ją przesyła (przepisując historię na repozytorium github), a następnie cykl recenzji powtarza się, aż do akceptacji połączenia.

Edytuj: Githubber opublikował na swoim blogu opis metody, której używają do rozwoju github, i jest bardzo podobny do tego, co zaproponowałem. link

Aktualizacja: Teraz używam tego przepływu pracy zarówno w moich projektach open source, jak iw mojej pracy zawodowej wciąż świetnie się rozwija.

+0

czy kiedykolwiek napotkaliście nieprzyjemne konflikty lub inne błędy z innymi twórcami, którzy rozwinęli to repo? Czy projektanci w porządku z tym przepływem pracy? Zastanawiam się nad przeniesieniem mojego sklepu do czegoś podobnego. – brycemcd

+0

@Bryce: Nie używałem tego przepływu pracy z więcej niż jednym poleceniem pull jeszcze w tym samym czasie, i tylko dla niektórych rzeczy open source, więc naprawdę nie każdy projektant zaangażowany .. Nie wiem jak lub jeśli to skaluje. – Daenyth

+1

Użyłem tego przepływu pracy w projekcie z kilkoma innymi, w których mieliśmy wiele gałęzi funkcjonalnych i przełączaliśmy się między gałęziami i łączeniem różnych rzeczy. Nie miałem dużego problemy. Git wykonuje niesamowitą pracę polegającą na automatycznym łączeniu. Nie musieliśmy robić tak wiele ręcznie. – klaustopher

2

W mojej pracy podążamy za procesem opisanym pod numerem "Using pull requests" w celu sprawdzenia kodu i jesteśmy z niego bardzo zadowoleni.

Powiązane problemy