2011-01-06 23 views

Odpowiedz

3

Potrzebne będzie repozytorium dla każdej części. (każdy projekt i jeden lub więcej dla części wspólnych).

Aby uwzględnić te wspólne części, istnieją dwie możliwości.

Najpierw łatwa, tworzysz (prywatny) klejnot dla części wspólnych, co oznacza, że ​​nie musisz niczego łączyć, po prostu dodaj klejnot [gemname]do swojego Gemfile. Gdy zaktualizujesz klejnot, wszystkie projekty wykorzystają zmieniony kod.

Jeśli chcesz dołączyć kod zewnętrzny do projektu, potrzebujesz trochę organizacji. Tworzysz mapę główną, na której klonujesz zarówno udostępnione, jak i repozytorium projektu. Następnie tworzysz (względne) dowiązanie symboliczne do udostępnionego folderu kodu. Możesz po prostu dodać to dowiązanie symboliczne do repozytorium git i zatwierdzić je. Musisz zaktualizować i zatwierdzić oba repozytoria oddzielnie.

Przykładem drugiego sposobu:

- projectfolder 
--- shared code 
--- project code 
----- lib 
------- shared (link to shared code) 

Link do udostępnionego kodu tworzony jest przez komendę ln -s "../../../shared kodem" wspólnej

Oczywiście, działa to tylko w systemach obsługujących dowiązania symboliczne (mac i * nix).

2

Mimo że przyjąłem pierwszą odpowiedź, wybraliśmy zupełnie inne podejście.

Ponieważ zasadniczo wszystkie aplikacje są po prostu różnymi aspektami 1 projektu (frontend, backend i api), dzielą dużo, dlatego postanowiliśmy umieścić je wszystkie w 1 repozytorium i dowiązaniach symbolicznych współdzielonych (git może obsłużyć to).

Upraszcza to organizację repozytorium, ale nieco komplikuje skrypty wdrażania, co było dla nas korzystne.

Powiązane problemy