2015-07-31 12 views
13

Sto utilizzando Git Flow con più progetti, ciascuno con il proprio repository, con successo.Rilasci strutturati (flusso Git) per più progetti in un singolo repository (monorepo)

Sto cercando di unire questi repository in un unico monorepo. Il motivo principale è la condivisione di progetti dipendenti su più progetti, il che significa che attualmente è necessario eseguire correzioni su più repository (vedere: modifiche cross-project nel link sopra).

Facebook e Google sembrano utilizzare correttamente questo modello (vedere: this fb talk e this google talk).

Come posso continuare a utilizzare qualcosa di simile a Git Flow utilizzando un singolo repository per più progetti?

Sebbene utili, i dialoghi a cui ho collegato non entrano nei dettagli come ramificazioni e tagging e come organizzano diverse versioni di progetto da un singolo trunk/master.

Non sono sposato con Git Flow. Sto cercando come strutturare i rilasci in un monorepo.

+2

Seriamente no. Basta usare i sottomoduli se hai bisogno di legare versioni specifiche. – o11c

+2

Sinceramente non userei un monorepo se stai lavorando con Git. I motivi per cui Google e Facebook lo usano sono una combinazione di "è sempre stato fatto in quel modo" (Google), "abbiamo molti utenti Perforce" (Google) e "è stato più facile migrare il nostro repository SVN" (Facebook) . Ovviamente, nella tipica moda di Google/Facebook, danno lunghi discorsi sui presunti benefici per giustificare le loro decisioni. Ma per essere onesti, i monotepos non si adattano al modello Git e agli strumenti progettati per funzionare con Git. – mipadi

+0

Le tue pubblicazioni sono sincronizzate su tutti i progetti? Significa che hanno lo stesso numero di versione e vengono rilasciati insieme? In caso contrario, immagino che il numero di filiali possa sfuggire al controllo. –

risposta

1

Che dire dell'utilizzo di un ramo per ogni progetto e l'utilizzo di rami figlio come rami di git-flusso con namespaces corretto? Per esempio; c'è un ramo chiamato project#1 per un progetto, che è analogo al master, e ha filiali figlio chiamate project#1-develop, project#1-hotfix#11 e così via. Inoltre è possibile avere il ramo singolo master in cui si uniscono i rami del progetto alle versioni.

+0

nonostante il fatto che questa domanda non sia probabilmente adatta a SO per le sue linee guida, sono interessato a vedere come si svolge. Siamo diretti verso monorepo e ho pensato a come farlo funzionare con git e gitflow. Attualmente abbiamo l'inferno di PR e il nostro team è piccolo. Temo che cosa accadrà mentre la squadra cresce. – Nick

Problemi correlati