My automated deployment system updates a latest version of my site trough subversion. Instead of having my live site point to the trunk (which is always almost a work in progress version), I have my live site point to a tag.
E.g. I work on trunk and when my v1.0 is finished I create a tag called 1.0 and do a checkout of that tag which is then my live site. Now, I keep working on trunk and after a while there is a v2.0. I create a tag called 2.0 and I want my live site to resemble this 2.0 tag.
I could wipe the current live site and do a checkout of this 2.0 tag. Which sounds easy enough, however. My site is about 1GB is size because it has all kinds of PDF documents and video in it. I can safely say that most of the time I do updates it will be copy changes or bug fixes. This means that maybe only 1% of my site changes per update. And since my version control is only accessable to my webserver through on off site http connection it would mean that I need to download that whole site over and over again.
Is there an easy way to switch between tags and have subversion only update the differences between those tags?
There actually is a switch function that does just that. I use TortiseSVN which is a windows shell/gui for Subversion, so I’m not familiar with how to do it manually, but this looks like it should help:
http://svnbook.red-bean.com/en/1.1/ch04s05.html