Management & Deployment

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.