Usually the version control happens in git. And the person who can push to production is also the person in charge of the master branch.
I always structure teams that way. So I cannot speak for other structures.
Usually the version control happens in git. And the person who can push to production is also the person in charge of the master branch.
I always structure teams that way. So I cannot speak for other structures.
Say ... Joe. Joe is good at looking at some mockup and turning it into html+css code.
So somewhere in the development process, Joe has an important role.
But why should Joe be able to push something to production?
Somebody else can take over the role of being responsible for pushing to production any time.
The purpose of the tool is to help developers share their config and keep sync with the rest of the team.
But I agree, if it's overkill if you don't need it!
If you do so, you have a system of tags. A config version can be tagged and the tag moved.
So, the integration environment can retrieve the config with the tag 'integration', say. And you can retrieve the latest.
Local: comfy get development Integration: comfy get development -t integration
Change the integration tag to the latest version : 1. Get the latest config hash with `comfy log development` 2. Set the tag integration to the latest `comfy tag move development integration <hash>`
Two days after, developer B deploys its version, but isn't aware that A deployed with the new feature enabled, so the feature is disabled with its deployment on integration.
Ideally, developers should use a centralized configuration management to no suppress each other configs. That's why we use Jenkins or the Atlassian suite for example. But it's heavy to install and maintain sometimes.