I've seen pieces of this problem solved around the net, yet I'm still confused, so I thought I'd ask the smart folks at Stack Overflow about this.
We're a small startup and at the moment our workflow from development -> production involves ftp-ing in and just uploading the dev code.
The dev code IS under subversion control - although we haven't leveraged trunks/tags/branches since I don't have a good idea of how to best use this structure. I feel that there should be a seamless integration with the live site that doesn't require me copy-pasting folders and files.
Here's some details: - developing on CakePHP + MySQL - hosted at Media Temple (gs) - developers use both Mac OS (Coda) and Windows (Dreamweaver)
So my ask is: how do you setup a proper scalable workflow?
Your work-flow seems proper for a small organization which doesn't have QA. I would advice you to invest some resources into
1) Build production releases and have a version scheme so that you can track your production releases accurately. Tag every release so that you can track it.
2) Build an installer. Don't resort to manually copying folders because you could make a mistake. An installer also makes it easy to track when something goes wrong in production.
3) Do some QA on the production before deploying. Even a little QA goes a long way. Developers are not good testers since they might be biased towards the "features" of the program.
4) Don't bother with branches just yet until you actually have to use it. Only then will it become clear which structure you need. The subversion red-book has some ideas on how to structure your branches.