I'm working on an intranet website for my company and currently am using SVN as version control mainly using the 'trunk' for all development. Big new features are developed in branches and merged to trunk later on.
However recently we decided to first make all and any changes available on a designated test server, give everyone a week time to test/validate these changes, and then make them available on the production server if there are no objections/bugs found.
Leaving the branches and development model out of scope for now, this gives me 3 different 'environments' that have to coexist:
- Development
- Test
- Production
The problem is that I'm contiously developing in trunk, when a chunk is finished, I want to activate this on the test server, then after a week when it's validated, I want to activate it on production as well.
This is the idea I've come up with, but I'd like to get some feedback on whether this is the right way to go.
The idea is to keep doing 'regular' development in the trunk, and use feature branches for big changes which will then later on be merged into the trunk, no changes here.
Then I'll make 2 copies of the trunk, one to branches/test
and one to branches/production
. Then everytime I commit something to the trunk, I can cherry-pick-merk it first to test and later to production.
This allows me to merge some changes to production while holding of other which might not be approved yet on test.
Is this a good way forward? Thanks in advance!