Come gestiamo il Branching in azienda

Per gestire le branch per i progetti in azienda abbiamo, in base alla nostra esperienza e ai possibili requisiti, definito 3 modelli possibili (Basic, Standard, Advanced).
Questi modelli si basano sulla esaustiva guida stilata dai Rangers di Tfs che è pubblicata su codeplex a questo indirizzo.

Basic Release Plan

imgLa base release plan è la più semplice strategia per il versioning che utilizziamo.
Il vantaggio principale è di gestire bug fix concorrente in produzione mentre lo sviluppo procede.
Deve essere scelta nel caso in cui si ha una sola release concorrente.
Ogni rilascio include tutte le funzionalità precedentemente sviluppate.
In caso di necessità può essere estesa per supportare lo sviluppo concorrente creando una nuova branch che parte dalla main.

 

Standard Release Plan

Permette di gestire bug fix concorrenti con lo sviluppo.
Aggiunge il vantaggio di avere un ambiente di test dove stabilizzare la release prima di portala in produzione.
Deve essere scelta nel caso in cui si ha una sola release concorrente.
Ogni rilascio include tutte le funzionalità precedentemente sviluppate.
In caso di necessità può essere estesa per supportare lo sviluppo concorrente creando una nuova branch che parte dalla main.

 

Advanced Release Plan

La advanced release plan è strategia complessa ma estremamente flessibile per il rilascio adatta in caso esistano release concorrenti tra di loro. (Una applicazione installata in più stabilimenti diversi o un framework aziendale utilizzato in più progetti indipendenti).
Permette di gestire bug fix concorrenti e indipendenti dallo sviluppo ma, indipendenti anche da versioni di produzione.
In caso di necessità può essere estesa per supportare lo sviluppo concorrente creando una nuova branch che parte dalla main. (Come mostrato in figura)
Eventuali bug fix in produzione non creano nuove branch ma vengono segnalati attraverso delle label.

 

Cose da ricordare

Bisogna sempre ricordare che ogni branch ha un costo di gestione.
Il ramo di main è molto importante perché mantiene la history di tutte le modifiche e fa da ponte per le forward e reverse integration.
In oltre la main non deve essere usata per lo sviluppo perché rappresenta la versione stabile più aggiornata.

Tag di Technorati: ,

posted @ mercoledì 26 maggio 2010 23:24

Print
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011