Subversion Deployment Strategies

I’m wondering how people like to handle deployment of projects maintained in subversion.

After MUCH testing, I’ve developed the following method that seems to work well for me:

– Trunk is managed in /trunk
– Tags are in /tags; When I tag something, I ‘svn cp /trunk /tags/version-date’ like most people
– I maintain a special tag at ‘/tags/-current-deployed’ – I merge trunk into that whenever I deploy, then ‘svn up’ that tag on the server.

This methods does a few things:

– it allows me to make changes on the ‘current deployed’ on the server if something needs to be fixed there ASAP, then merge into trunk — without breaking the ‘sanctity’ of a tag
– I really just ‘svn up’ and ‘svn merge’ — i never have to ‘svn swtich’ then ‘svn up’ the project. i find that easier.

I’m sure others have good strategies. What’s yours?