OK, I've got myself into a bit of muddle here.
Following some advice I found online, I started with: cd ~/mylib/v1 svn mkdir <svnrepo>/branches svn mkdir <svnrepo>/tags svn copy . <svnrepo>/branches/v1 svn copy . <svnrepo>/tags/v1.0.0
cp -a ~/mylib/v1 ~/mylib/v2 cd ~/mylib/v2 svn switch <svnrepo>/HEAD svn update
At this point my branches and tags directories got downloaded into my v2 directory (creating ~/mylib/v2/branches/v1 and ~/mylib/v2/tags/v1.0.0). That's not what I was expecting at all!
If I explain what I'm trying to achieve a bit better maybe someone will make sense of this. I will have two or three servers where I will want the full svn repo, and I'll want to be able to edit and commit files in either the v1 or v2 branches and keep the the servers synchronised. I don't mind whether this is done independently from my v1/v2 dirs, or whether those v1/v2 dirs are just symlinks into the main repo.
I also need, on those same servers, for different apps to be "pointed" at the version of the library they're going to use, which in essence means being able to add the correct directory to my PHP config for the site as an include path.
And then, I need to be able to create new servers which checkout only the version of the library they need, because they'll be single purpose servers that won't need all the development versions and will be "fixed" onto the latest copy of one or other branch (or maybe even fixed on a specific tag, although that's less likely).
Is that possible, or am I looking at things completely wrong here?