Wir haben jemanden (nennen wir ihn Ted), der für das Testen neuer Funktionen und Fehlerbehebungen verantwortlich ist.
Wir verwenden Git und GitHub . master
sollte / ist immer bereit und development
ist der Ort, an dem wir neue Funktionen oder Fehlerbehebungen festschreiben / zusammenführen, jedoch erst, nachdem sie von Ted getestet wurden.
Das Projekt ist in PHP.
Ich möchte, dass der Testprozess so abläuft:
- Ein Entwickler möchte eine neue Funktion zu arbeiten (sagen wir mal die Funktion / Bug # 123 als Ted in der issue tracker dokumentiert), so zieht er
origin/development
andevelopment
auf seinem lokalen Repository und erzeugt einen neuen Zweig (sagen wir malissue-123
) von dort. - Sobald er mit seiner Arbeit zufrieden ist, verpflichtet er sich und schiebt seinen neuen Zweig zu
origin
. - Ted stellt
test.ourproject.com/choose-branch
eine Verbindung zu den Zweigen her und sieht eine Liste der eingeschalteten Zweige. Erorigin
schaltet sich einissue-123
(dies sollte über die Webseite möglich sein). Dann fährt er forttest.ourproject.com
, testet die Webanwendung zum Teufel (er ist wirklich erbarmungslos) und nach einigem Hin und Her mit dem Entwickler ist er mit der Funktion zufrieden. - Ted sagt dem Entwickler, dass er
issue-123
aufdevelopment
on zusammenführen kannorigin
. - Spülen und wiederholen.
Für den dritten Schritt könnte ich etwas hacken, das den Job erledigt (Zweige von einer bestimmten Seite anzeigen und wechseln), aber ich denke, dass das, was ich beschrieben habe, ein sehr häufiges Muster ist.
Meine Frage lautet also: Ist dies ein guter / nachhaltiger / wartbarer Workflow für die Verzweigung? Können Sie Ihre Antwort unter Berufung auf einige Beispiele anderer Projekte untermauern, die diesem Workflow folgen?
issue-123
auf den Fehler / die Funktion Nr. 123 verwiesen wird, da Ted jeden Fehler / jede neue Funktion in unserem Issue-Tracker dokumentiert.