Tenemos a alguien (llamémoslo Ted) que es responsable de probar nuevas funciones y correcciones de errores.
Estamos usando Git y GitHub . master
debe / siempre se puede implementar y development
es donde comprometemos / fusionamos nuevas características o correcciones de errores, pero solo después de que Ted las haya probado.
El proyecto está en PHP.
Me gustaría que el proceso de prueba sea así:
- Un desarrollador quiere trabajar en una nueva característica (digamos que la característica / error # 123 como Ted documentó en el rastreador de problemas), por lo que recurre
origin/development
adevelopment
su repositorio local y crea una nueva rama (digamosissue-123
) a partir de ahí. - Una vez que está contento con su trabajo, se compromete y empuja a su nueva sucursal
origin
. - Ted se conecta
test.ourproject.com/choose-branch
y ve una lista de las ramas encendidasorigin
y elige encenderlasissue-123
(debería ser posible a través de la página web). Luego continúatest.ourproject.com
, pone a prueba la aplicación web (es realmente despiadado) y después de un rato con el desarrollador, está contento con la función. - Ted le dice al desarrollador que puede fusionar
issue-123
endevelopment
elorigin
. - Enjuague y repita.
Para el tercer paso, podría hackear algo que hace el trabajo (mostrar y cambiar ramas de una página específica), pero siento que lo que he descrito es un patrón muy común.
Entonces mi pregunta es: ¿Es este un flujo de trabajo bueno / sostenible / mantenible para la ramificación? ¿Puede respaldar su respuesta citando algunos ejemplos de otros proyectos que siguen este flujo de trabajo?
issue-123
referencias al error / función # 123 ya que Ted documenta cada error / nueva función en nuestro rastreador de problemas.