So we're working a REAL corporate website here... Proudly using Drupal 6 with a shipload of modules + some custom code.
The big puzzle at some point became how to deploy it all without killing each other's work and without losing anything in the process. The solution to which eventually became creating a second set of remote servers hosting a full copy of the site with code copied from local dev (a backup server of all local code and DB)
I don't know if this is the right way to do it. But it does't seem quite wrong at all...
The Puzzle of Releasing code and transferring backend changes from Dev to Production in a Drupal Environemnt.. Solved... sort of.
Handling PHP code revisions, we have SVN hosted by unfuddle.com - A project management site that works great for Developers and teams needing time, issue, document, and contact management all in one. A great tool... but out of scope for this document and something I don't intend to write about any time soon. Perhaps when I'm using it as an admin.
SVN (Subversion)is also a great tool.. but also out of scope here.
What I do want to discuss are the backend processes and Drupal tools we used to accomplish getting Drupal "features" off of our local environments and onto the live server.
I'm sure I'm missing some steps here... anyone with further insight can correct me in comments
Your live server needs to be set up to be an SVN client just like all the other servers. I'm not an SVN admin so I can't tell you exactly how to do that. That's definitely the easiest way to get your code out to the server in the most clean and direct way possible.
Each feature should have a single point of responsibility ( a developer who builds and knows everything about the feature if it's custom ). Each one should be rebuildable following a written procedure on any other server that doesn't currently have it enabled.
Install, configure, and use the Features module (next):