Jedną z rzeczy, które lubię w sposobie skonfigurowania Subversion jest to, że mogę mieć jedno główne repozytorium z wieloma projektami. Kiedy chcę pracować nad projektem, mogę sprawdzić tylko ten projekt. Lubię to
\main
\ProductA
\ProductB
\Shared
następnie
svn checkout http://.../main/ProductA
Jako nowy użytkownik git chcę zapoznać się z najlepszymi praktykami w tej dziedzinie, zanim zdecyduję się na określony przepływ pracy. Z tego, co przeczytałem do tej pory, git przechowuje wszystko w jednym folderze .git w katalogu głównym drzewa projektu. Mogłem więc zrobić jedną z dwóch rzeczy.
- Skonfiguruj osobny projekt dla każdego produktu.
- Skonfiguruj jeden ogromny projekt i przechowuj produkty w podfolderach.
Istnieją zależności między produktami, więc pojedynczy ogromny projekt wydaje się odpowiedni. Będziemy używać serwera, na którym wszyscy programiści będą mogli udostępniać swój kod. Mam już to działające przez SSH i HTTP i tę część, którą kocham. Jednak repozytoria w SVN mają już wiele GB, więc przeciąganie po całym repozytorium na każdym komputerze wydaje się złym pomysłem - zwłaszcza, że płacimy za nadmierną przepustowość sieci.
Wyobrażam sobie, że repozytoria projektów jądra Linuksa są równie duże, więc musi istnieć właściwy sposób radzenia sobie z tym za pomocą Gita, ale jeszcze tego nie rozgryzłem.
Czy istnieją wskazówki lub najlepsze praktyki dotyczące pracy z bardzo dużymi repozytoriami obejmującymi wiele projektów?