Ho due progetti strettamente correlati (A e B) che condividono alcuni codice sorgente (S). Entrambi saranno rilasciati contemporaneamente e la versione rilasciata dovrebbe sempre utilizzare la stessa versione di codice condiviso. Il codice condiviso S verrà cambiato ragionevolmente spesso.Condivisione di un codice tra due progetti in git
Quindi, apparirà a volte come questo:
- Una versione 1 utilizza la versione S 1
- B versione 1 utilizza la versione S 1
- Una versione 2 utilizza la versione S 2
- B versione 2 utilizza S versione 2
Qual è il modo migliore per gestirlo con git (e/o alcuni strumenti che utilizzano git)?
Qui sono le mie preoccupazioni:
- progetto A e progetto B dovrebbe essere in archivi separati (essi sono correlati, ma io non voglio avere libero flusso di codice tra loro)
- Se un codice condiviso aggiornato in un progetto, dovrebbe essere automaticamente aggiornato in un altro (non voglio avere una situazione in cui uno sviluppatore ha dimenticato di fare qualcosa e finisce per avere una versione obsoleta del codice condiviso).
Come ho capito una delle risposte canoniche è "utilizzare git submodule". Tuttavia, ho letto alcuni criticism su questo approccio. Mi sembrava che fosse più progettato per le librerie condivise che raramente cambiano.
Un altro approccio che ho letto è stato utilizzando git subtree
E ci sono un paio di approcci meno popolari: Repo, GitSlave
Quale sarebbe l'approccio migliore per gestire questo tipo di code sharing?
I collegamenti non sono quelli giusti, ho fissato la sottostruttura ma non riesco a indovinare gli altri (usa git submodule e critiche) – CharlesB
Grazie. Ho risolto tutti i collegamenti tranne uno. Se lo inserisco, per qualche motivo è stato collegato al link sbagliato. –
Puoi correggerlo direttamente nel codice di markdown – CharlesB