I need advice from deployment gurus.
I'm working on setting up a "permanent" stable deployment environment for a large app that is going live. The application will be undergoing significant new feature development after deployment, so we will be keeping svn branches to separate stable from new features.
Right now, code is deployed by hand (svn up && mongrel_cluster restart) from trunk. I will be setting up Capistrano for deployment and misc. tasks. We aim to have 3 environments on the production server: development (features branch), staging, and production.
My primary question is: should I deploy from trunk or a "release" branch? Cal Henderson's "Building Scalable Web Sites" suggests deploying from a branch for larger projects and/or teams. This is a large project, but not a large team (2 developers). If I deploy from a branch, would that limit my ability to concurrently develop multiple features in other branches? What would be the purpose of trunk, then?