We have someone (let's call him Ted) that is responsible for testing new features and bug fixes.
We're using Git and GitHub.
master should be/is always deployable and
development is where we commit/merge new features or bug fixes, but only after they have been tested by Ted.
The project is in PHP.
I'd like the testing process to go like this:
- A developer wants to work on a new feature (let's say the feature/bug #123 as Ted documented in the issue tracker), so he pulls
developmenton his local repository and creates a new branch (let's say
issue-123) from there.
- Once he's happy with his work, he commits and pushes his new branch to
- Ted connects to
test.ourproject.com/choose-branchand sees a list of the branches on
originand chooses to switch on
issue-123(it should be doable through the webpage). He then goes on
test.ourproject.com, tests the hell out of the web application (he's really pitiless) and after some back and forth with the developer, he's happy with the feature.
- Ted tells the developer that he can merge
- Rinse and repeat.
For the third step, I could hack something that does the job (showing and switching branches from a specific page), but I feel that what I've described is a very common pattern.
So my question is: Is this a good / sustainable / maintainable workflow for branching? Can you back up your answer by citing some examples of other projects following this workflow?
issue-123refers to the bug/feature #123 as Ted documents every bug/new feature on our issue tracker.