2012-03-12 17 views
5

Ho letto dello Integration Manager Workflow e sembra molto adatto per il nostro processo di sviluppo (uno sviluppatore principale del progetto, che rivede il lavoro degli altri sviluppatori prima che sia impegnato nel repository del progetto).Flusso di lavoro Git Integration Manager: uno o più repository?

Tuttavia, una cosa non mi è chiara. In questa visualizzazione dal libro Pro Git sembra come se ogni sviluppatore ha una propria repository (telecomando) per spingere a:

enter image description here

In this chapter (sezione "piccolo team privato"), però, sembrano utilizzare i rami per ottenere lo stesso tipo di flusso di lavoro.

È corretto? Quale tattica dovremmo usare; filiali o più repository? Suppongo che sia più difficile mantenere una sequenza temporale di commit se si estrae il lavoro da un altro repository?

risposta

2

È possibile utilizzare il flusso di lavoro a cui si è collegati ma aggiunge un po 'più di spese generali. Il più grande vantaggio è che puoi lavorare in modo asincrono e avere solo bisogno di accedere al server.

Tuttavia non è necessario utilizzare repository pubblici e privati. È ancora possibile avere un flusso di lavoro basato su pull se si ha accesso agli altri repository di devs, dove gli sviluppatori si impegnano nei loro repository locali e si estraggono da essi.

Ad esempio. Supponiamo che lo sviluppatore A stia lavorando sulla funzione di ramo A. Si impegna nella sua funzione di ramo localeA e ti fa sapere "la funzione A è pronta ora, puoi tirarmi fuori". Qui puoi configurare il suo repository come un remoto come "git remote add devA /path/to/devA/repo.git" e basta git pull devA featureA (o recupera prima, controlla il codice e poi unisci).

enter image description here

Questo ovviamente presuppone che l'accesso ai loro archivi tramite per esempio la rete, ssh o http.

+0

Ma è anche possibile avere un repository centrale, con gli sviluppatori non manutentori che spingono solo a rami aggiuntivi, che il maintainer si fonde quindi nel master? – Rijk

+0

Ah, il tuo esempio è molto chiaro, grazie. Questo flusso di lavoro presenta degli svantaggi rispetto al fare tutto questo in un unico repository (ad esempio, la cronologia dei commit persa, ecc.)? – Rijk

+0

La cosa è con git, non hai mai un solo repository :) Gli sviluppatori avranno sempre un repository per conto proprio. È solo una questione di come si desidera che il DAG del repository assomigli, cioè chi spinge cosa a quale repo, o chi tira cosa da quale repo ecc. Ha senso? – ralphtheninja

1

Questa domanda è in giro da un po 'ma l'approccio fornito nella domanda è valido. Si chiama Forking Workflow. Bene, è molto simile a quello sopra e sembra combaciare con l'intento e lo scopo ma almeno c'è una bella riscrittura che dovrebbe chiarire la strategia.

Problemi correlati