Ho cercato un po 'e non ho trovato risposta (forse non so cosa guardare).Repository multipli con sottomodulo singolo
Abbiamo una libreria principale che è un repository (chiamiamolo Lib) che contiene la maggior parte dei nostri moduli e sottomoduli. Diciamo anche che ha una dimensione di 2 GB ...
Ora abbiamo molti progetti come: ProjA, ProjB, ProjC ognuno usa il Lib come sottomodulo.
proja
- Lib (ramo: master, commettere #: 1)
ProjB
- Lib (ramo: altro, impegnarsi #: 2)
ProjA
- Lib (ramo: master, commettere #: 4)
Così, mentre io sono in grado di mantenere ogni progetto riferimento per correggere libreria (aka modulo) versione. Ora ho 3 * 2 GB = 6 GB di sottomodulo THE SAME.
C'è un modo per fare riferimento a un singolo sottomodulo pur mantenendo i file corretti/il controllo delle versioni di riferimento?
Es.
proja
Lib/base_lib.h (v1.0)
lib/file_only_in_this_commit
ProjB
- Lib/base_l ib.h (v1.0)
ProjC
- Lib/base_lib.h (v1.1)
Grazie!
Non che io sappia. Per repository, puoi avere solo un riferimento a uno SHA in un sottomodulo, quindi il motivo per cui lo hai aggiunto 3 volte. Immagino che tu abbia questa configurazione perché 'ProjA',' ProjB' e 'ProjC' sono tutti collegati e interagiscono insieme? Altrimenti, questo potrebbe essere 3 diversi repository. Oppure potresti avere 3 rami in un repository, nel qual caso potresti avere diversi riferimenti di sottomodulo su ciascun ramo con una sola versione del sottomodulo – houtanb
Se il tuo obiettivo è quello di risparmiare spazio, dopo il checkout iniziale sostituisci la directory degli oggetti con un clone hardlinked – basin
@basin C'è un modo per definire tali hard link in git? Effettuare manualmente il tuo suggerimento in realtà non risolve il problema, e preferirei evitare anche gli script se possibile. – Danra