Where should I start reading (in the codex or elsewhere) to find ways to deploy WordPress from a localhost development environment to a staging server and then to a production server?
I mean in such a way that a developer can specify exactly what should go live and what not. Usually, the developer commits code for custom plugins and the theme into source control, and can then apply the diff to the files on the server. This of course will not include content files, even if the developer needed to upload files into the local wp-admin to test the theme or plugins.
Also, the developer wants to commit any changes to the WordPress installation, which are usually in the database. For instance, he may have added a custom fields plugin and used it to configure a custom post type. This should also happen on the staging and live servers. Again, 'regular' content should NOT be part of the 'package', meaning that if the developer tested his new custom post type by creating some test posts, these should not end up in the database on the staging server or on the live server.
I can't seem to find a plugin or other way of doing this, seems like there should be a need for that sort of thing in any shop where more than 2 devevlopers work on a single site and where user acceptance tests are run before going live.
Please leave links or tips in the replies for anyone to follow, thanks!