The organization I currently work for uses SVN for developing PHP applications. Our development cycle started out simple, doing a commit updates the web root using the post-commit hook in order to see changes right away. Than we ran into an issue with development features getting in the way of bug fixes and holding up the fixed files from being moved to production and sometimes causing issues on the prod server.
So I introduced a "release branching" schema that means all full releases are copied to their own branch, so all changes made to production needed to occur in this branch and "long term" development occurred on the trunk. The idea when this first started was to only do fixes and make the developer responsible for moving their own updates back to the trunk, but after five instances of developers blindly merging changes causing data loss, and constant development of "immediate release items" on the release branch this methodology was abandoned.
Know I am faced with a branch that is way out of sync (since some people did not "get" the trunk/branch concept and were developing on the trunk) with changes merged into the trunk from a private branch creating the potential of more lost code when merging all the changes from the past month back from the current release branch.
I have the chance to start over and enforce a proper development/release cycle of web development. SVN seems to be move geared toward "release" development (binary applications), where in this case we can go a full year without moving the full package to production.
With that background, here is my question: What Web Development SVN cycle and/or schema would you recommend for this situation? Does this require a complete methodology overhaul or am I just missing something simple?
Thanks for any ideas!