Abbiamo qualcuno (chiamiamolo Ted) che è responsabile per testare nuove funzionalità e correzioni di bug.
Stiamo utilizzando Git e GitHub . master
deve essere / è sempre distribuibile e development
è il punto in cui vengono commesse / unite nuove funzionalità o correzioni di errori, ma solo dopo che sono state testate da Ted.
Il progetto è in PHP.
Mi piacerebbe che il processo di test si svolgesse in questo modo:
- Uno sviluppatore vuole lavorare su una nuova funzione (diciamo la funzione / bug # 123 come Ted documentata nel tracker del problema), quindi tira
origin/development
adevelopment
sul suo repository locale e crea un nuovo ramo ( diciamoissue-123
) da lì. - Una volta che è contento del suo lavoro, commette e spinge il suo nuovo ramo a
origin
. - Ted si connette a
test.ourproject.com/choose-branch
e vede un elenco dei rami suorigin
e sceglie di attivareissue-123
(dovrebbe essere fattibile attraverso la pagina web). Poi va sutest.ourproject.com
, mette alla prova l'applicazione web (è davvero spietato) e dopo un po 'avanti e indietro con lo sviluppatore, è contento della funzionalità. - Ted dice allo sviluppatore che può unire
issue-123
indevelopment
inorigin
. - Risciacqua e ripeti.
Per il terzo passaggio, potrei hackerare qualcosa che fa il lavoro (mostrare e cambiare rami da una pagina specifica), ma sento che quello che ho descritto è un modello molto comune.
Quindi la mia domanda è: Si tratta di un flusso di lavoro buono / sostenibile / gestibile per la ramificazione? Puoi eseguire il backup della tua risposta citando alcuni esempi di altri progetti che seguono questo flusso di lavoro?