Inizieremo un nuovo progetto questo mese. Il progetto sarà di 1 anno e l'implementazione della produzione avverrà solo verso la fine del progetto.
Faremo lo sviluppo iterativo (1 mese per iterazione), quindi questo significa che lasceremo le funzionalità all'ambiente di test alla fine di ogni iterazione per il test del QA.
La nostra strategia di ramificazione è:
- Trunk - Tutto lo sviluppo avverrà sul trunk.
- Feature Branch - I branch off trunk verranno creati in base alle necessità per lo sviluppo di funzionalità di grandi dimensioni che potrebbero potenzialmente interrompere se eseguite sul trunk
- QA Release Branches - Alla fine di ogni iterazione, verrà creato un ramo di trunk. Questo ramo (che include un numero di versione) verrà rilasciato nell'ambiente di test. Tutti i bug critici e di blocco trovati in questa versione verranno corretti su questo ramo e le correzioni dovranno essere unite al tronco. Bug non critici / banali non verranno indirizzati sul ramo di rilascio QA e verranno risolti solo nel trunk poiché il ramo di rilascio QA verrà gettato via dopo la fine dell'iterazione successiva in cui un nuovo ramo di rilascio verrà creato fuori dal trunk. / li>
- Branch di produzione - questo sarà l'ultimo ramo di rilascio di QA alla fine del progetto. Questo verrà taggato e tutte le correzioni dei bug di produzione saranno su questo ramo e unite al trunk.
Questa è una corretta strategia di ramificazione? C'è qualcos'altro che abbiamo perso da considerare?
Stiamo utilizzando SVN.