How to push changes from a dev environment to prod Our team of 10 developers would like to use Dev, Test, Staging and Production environments for our large site.  How can we streamline pushing our changes from one site to another, keeping them as identical as possible?

The difference between this question and How to migrate from test environment to production environment? is that we would like to push changes automatically/regularly so that the environments not very different.

We have been using a Dev and Production environment for the past few years, and each environment has its own SVN code repo.  The Features module has been used in a few places, but it does not work with Blocks or Content.

One proposal was to use Drush and use archive-dump and archive-restore to push the changes between the environments, but Production has content provided by visitors and users and pushing to Production would wipe out that content.

Has anybody answered this question before?
I use a custom script to automatically pull production to backup and update servers (an update server is a sanitized clone of production with updates applied via pm-update, standing by and ready for testing).  You might get some ideas looking at that.  However, I'd say that it would be a bad idea to automatically sync either prod to dev, or dev to prod.  Only publish to production after a human has tested and validated the release you'd like to bring live.  As for automating prod to dev updates, I'd think that the devs would find that very annoying.

One thing that you could pretty easily do is automate the updates of your staging server.  Just pull the database down from production, pull the latest code up from the dev branch of your repository, and run updatedb and your test suite.  A human could then validate the results and publish the code to production if it was ready.