Actually, this already exists. Anytime we do a release, we tag SVN. So, you can always get a release by tag. We also create branches for previous releases when we split off development for the next release. Check out the tags and branches in SVN:
That just means that no changes were checked in to those tags or branches. You can still check them out and work with them. Basically, SVN is just being smart about when it makes copies of files – it remembers the version of a file associated with a tag or branch and it doesn’'t need to remember the whole file until you make a change.