Za pomocą zwykłych git i github mogę dokonać przeglądu kodu, po prostu tworząc żądanie ściągnięcia gałęzi funkcji, nad którą pracuję, do gałęzi master. Jak mam napisać recenzję kodu za pomocą git-flow? Jeśli chodzi o przepływ pracy, taki jak „zakończenie funkcji git flow”, jestem zdezorientowany co do tego, gdzie faktycznie ma miejsce przegląd kodu i jak git-flow lub git może ułatwić tę recenzję.
43
Odpowiedzi:
Niedawno natknęliśmy się na ten dokładnie problem. Naprawdę lubimy git flow, ponieważ używa dobrego poziomu semantycznego (używając tego samego poziomu, którego używasz w dyskusji zespołowej: „Zacznę cechę A” bardziej niż „Stworzę gałąź, kasę”), podczas gdy git to poziom „implementacyjny” (co jest dobre i użyteczne, ale inne).
Problem, z jakim mamy do czynienia
git feature finish
, gdy scala gałąź w fazie rozwoju, podczas gdy chcemy, aby prośba o ściągnięcie została wysłana i (jest to ważne) scalona przez recenzenta , a nie komisarza, aby podkreślić własność zespołu.Nasze obecne rozwiązanie:
Jest to zgodne z naszą praktyką, ponieważ wadą jest konieczność samodzielnego usuwania gałęzi (ponieważ nie kończymy przepływu). Naszym kolejnym krokiem będzie prawdopodobnie ponowne zaimplementowanie niektórych części przepływu git (ponieważ dotyczy to głównie łączenia łańcuchów poleceń git), aby wziąć to pod uwagę (mając część „czyszczenia” zakończenia bez scalania).
źródło
Proces, w którym pracuje z tym zespół, jest następujący:
git flow feature start module_1
develop
i gałąź funkcjimodule_1
git flow feature finish module_1
develop
Oddział jest popychany do GitHub (GitHub automatycznie oznaczyć żądanie rozwijane jako zamknięty / połączyły kiedy to nastąpi)Zwykle cały ten proces jest wykonywany przez oryginalnego autora, ale nie jest to wymagane. Każdy członek naszego zespołu może w dowolnym momencie wziąć udział w tym procesie. Wszystko, co muszą zrobić, to przejrzeć gałąź funkcji i kontynuować proces.
git flow feature finish module_1
Każdy, kto kiedykolwiek uruchomi, będzie mógł usunąć luksus swojej lokalnej gałęzi funkcji, ale każdy, kto sprawdził gałąź, musi to zrobić ręcznie, jeśli chce użyć czegoś takiegogit branch -D feature/module_1
.W przypadku poprawek używamy podobnego podejścia i tworzymy żądanie ściągnięcia w GitHub przed zakończeniem poprawki.
źródło
Jeśli robisz recenzje kodu, zakładam, że masz centralne repozytorium zawierające „oficjalny” kod. Programiści pobierają i przesyłają dane do tego centralnego repozytorium.
Gdy korzystasz z Gerrit , sam Gerrit staje się centralnym repozytorium (ma wbudowane serwery SSH i HTTP, które pozwalają użytkownikom na interakcję z nim w zasadniczo taki sam sposób, w jaki już są). Podczas korzystania z Gerrit przepływ pracy staje się:
Podczas korzystania z centralnego repozytorium inni programiści mogą zobaczyć przesłane zmiany po kroku 2. Gerrit wprowadza przepływ pracy przeglądania kodu, więc inni programiści widzą przesłane zmiany dopiero po kroku 5.
Działa to dobrze z git-flow (lub dowolnym innym schematem rozgałęziania), ponieważ Gerrit obsługuje sprawdzanie zmian dokonanych w dowolnej gałęzi.
źródło
Oto kolejna sugestia.
źródło