Git Branch Model per progetti iOS con uno sviluppatore [duplicato]

-1

Sto usando git per un progetto iOS, e finora ho il seguente modello di ramo:

 feature_brach(usually multiple) -> development -> testing -> master

I branch di caratteristiche hanno vita breve, sono usati solo per aggiungere una funzionalità o un bug, quindi uniti nuovamente allo sviluppo e cancellati. Lo sviluppo è abbastanza stabile, ma non è pronto per la produzione.
Il test è quando abbiamo una versione stabile con funzionalità sufficienti per un nuovo aggiornamento e spediamo ai beta tester. Una volta terminato il test, può essere spostato nello sviluppo o avanzato nel master.
Il problema, tuttavia, sta nel fatto che non possiamo schierare istantaneamente. Su iOS, possono trascorrere diverse settimane tra il momento in cui una build viene rilasciata e quando colpisce effettivamente gli utenti. Voglio sempre avere una versione del codice che è attualmente sul mercato nel mio repository, ma devo anche avere un posto dove mantenere il codice stabile corrente da inviare per il rilascio.
 Quindi:

  • dove dovrei mantenere il codice stabile
  • dove dovrei conservare il codice attualmente sul mercato
  • e dove dovrei conservare il codice che è in revisione con Apple e sarà (si spera) messo presto sul mercato?

Inoltre, questo è un team di sviluppatori, quindi la collaborazione non è del tutto necessaria, ma è preferibile perché potrebbero esserci più membri in futuro.

    
posta charleyh 25.05.2013 - 00:00
fonte

1 risposta

1

Penso che dovresti prendere in considerazione il tagging master, quando viene inviato per il rilascio. Se si tenta di associare un ramo a ciò che viene rilasciato, è probabile che sarà necessario monitorare la data di rilascio e quindi unire rapidamente il nuovo ramo. Dato che è molto manuale, un tag dovrebbe essere sufficiente.

Una cosa che mi piace fare è al momento del rilascio, eseguire un clone su un nuovo repository. Questo è il repository "release" e può essere configurato con autorizzazioni limitate. Il repository locale avrebbe quindi due repository remoti, quindi quando è il momento di rilasciare, si uniscono da un ramo all'altro, quindi si spinge il risultato nel repository di rilascio. Solo tu puoi fare questo ultimo passaggio e poi gli altri membri del team possono avere solo le autorizzazioni per una parte del flusso di lavoro.

    
risposta data 25.05.2013 - 06:05
fonte

Leggi altre domande sui tag