2015-07-31 12 views
13

Używam Git Flow z wieloma projektami, każdy z własnym repozytorium, z powodzeniem.Wydania strukturalne (przepływ Git) dla wielu projektów w jednym repozytorium (monorepo)

Czekam na scalenie tych repozytoriów w jeden monorepo. Głównym powodem jest współdzielenie projektów zależnych od wielu projektów, co oznacza, że ​​musimy teraz zatwierdzać poprawki w wielu repozytoriach (zobacz: zmiany między projektami w powyższym linku).

Facebook i Google wydają się z powodzeniem korzystać z tego modelu (patrz: this fb talk i this google talk).

Jak mogę dalej używać czegoś podobnego do Git Flow, korzystając z jednego repozytorium dla wielu projektów?

Chociaż przydatne, rozmowy, z którymi się łączyłem, nie obejmują szczegółów takich jak rozgałęzianie i oznaczanie oraz w jaki sposób organizują różne wydania projektu z jednego pnia/wzorca.

Nie jestem żonaty z Git Flow. Szukam sposobu na ułożenie wydawnictw w monorepo.

+2

Poważnie, nie rób tego. Po prostu użyj submodułów, jeśli chcesz powiązać określone wersje. – o11c

+2

Szczerze mówiąc nie użyłbym monorepo, jeśli pracujesz z Git. Powodem, dla którego Google i Facebook go używają są kombinacje "zawsze tak robiono" (Google), "mamy wielu użytkowników Perforce" (Google) i "łatwiej było przenieść nasze SVN repo" (Facebook) . Oczywiście, w typowym stylu Google/Facebook, prowadzą długie rozmowy na temat rzekomych korzyści, aby uzasadnić swoje decyzje. Ale szczerze mówiąc monorepos nie pasują do modelu Git i narzędzi zaprojektowanych do pracy z Git. – mipadi

+0

Czy Twoje wersje zostały zsynchronizowane ze wszystkimi projektami? Czy mają ten sam numer wersji i są wydawane razem? Jeśli nie, to wyobrażam sobie, że liczba oddziałów może wymknąć się spod kontroli. –

Odpowiedz

1

A co z wykorzystaniem gałęzi dla każdego projektu i używanie gałęzi podrzędnych jako gałęzi git-flow z odpowiednim ustawieniem nazw? Na przykład; istnieje gałąź o nazwie project#1 dla projektu, który jest analogiczny do wzorca i ma gałęzie podrzędne o nazwach project#1-develop, project#1-hotfix#11 i tak dalej. Możesz także mieć pojedynczy oddział master, w którym scalasz gałęzie projektu w wydaniach.

+0

pomimo fakt, że to pytanie prawdopodobnie nie jest odpowiednie dla SO zgodnie z wytycznymi, jestem zainteresowany, aby zobaczyć, jak to się dzieje. Kierujemy się w stronę Monorepo, a ja wymyśliłem tę samą myśl o tym, jak sprawić, by działała z git i gitflow. Obecnie mamy piekło PR, a nasz zespół jest mały. Boję się, co się stanie, gdy drużyna się powiększy. – Nick

Powiązane problemy