As said we handle this a little different.
One branch for development, staging and live.
Development of the puppet code base is done using in puppet
environments, which can be used to test a change across systems in any
of the environments.
Once people consider the change working it is committed and pushed. At
which point we check for lint or syntax errors as a precaution.
Bigger changes are ussually hidden in if/else constructs that allows
us to roll them out gradually.
this works for us, because:
- The development/staging and live environment have a big overlap.
- We accept that there might be a few mistakes.
It is a tradeoff between rigorous testing and development speed.
Jos