Una delle cose che mi piace del modo in cui ho configurato Subversion è che posso avere un unico repository principale con più progetti. Quando voglio lavorare su un progetto posso controllare solo quel progetto. Come questo
\main
\ProductA
\ProductB
\Shared
poi
svn checkout http://.../main/ProductA
Come nuovo utente di git, voglio esplorare un po 'di best practice sul campo prima di impegnarmi in un flusso di lavoro specifico. Da quello che ho letto finora, git memorizza tutto in una singola cartella .git nella radice dell'albero del progetto. Quindi potrei fare una delle due cose.
- Imposta un progetto separato per ogni prodotto.
- Crea un unico grande progetto e archivia i prodotti in sottocartelle.
Ci sono dipendenze tra i prodotti, quindi il singolo grande progetto sembra appropriato. Useremo un server in cui tutti gli sviluppatori possono condividere il loro codice. Ho già funzionato su SSH e HTTP e quella parte che amo. Tuttavia, i repository in SVN hanno già una dimensione di molti GB, quindi trascinare l'intero repository su ogni macchina sembra una cattiva idea, soprattutto perché ci viene addebitata un'eccessiva larghezza di banda di rete.
Immagino che i repository del progetto del kernel Linux siano ugualmente grandi, quindi deve esserci un modo corretto di gestirlo con Git, ma non l'ho ancora capito.
Esistono linee guida o best practice per lavorare con repository multi-progetto di grandi dimensioni?