I have some troubles in checking out a tagged version in my svn repository and most likely because of an inner 'svn:externals' that is not referring to the correct revision. Lets consider simplified situation:
I have a first svn repository which looked like this at revision XXX1:
Repo1 (@ Rev XXX1)
tags
...
trunk
Folder1
ExternalRefToFolder2 (svn:externals '../Folder2')
Folder2
SomeFile1.txt
SomeFile2.txt
And which has been refactored to (at head revision):
Repo1 (@ HEAD1)
tags
...
trunk
Folder1
SomeFile1.txt
SomeFile2.txt
I.E: For the good or for the bad, the external reference to Folder2 has been removed and replaced by file copy between revisions XXX1 and HEAD1.
I also have a second repository on the same server which looks like this:
Repo2 (@ HEAD2)
tags
1.0.0
ExternalToRepo1 (svn:externals -rXXX1 ^/../Repo1/trunk)
trunk
ExternalToRepo1 (svn:externals ^/../Repo1/trunk)
I.E.: Again, for the good or for the bad, the second repository is referencing first one using an external reference (revision HEAD1 in trunk and revision XXX1 in tagged version so as to freeze everything at correct revision).
The issue
When I'm checking-out the
trunkofRepo2, I have no issue. That isRepo1is checked-out with its singleFolder1.When I'm checking out the tag
1.0.0ofRepo2, then svn complains that it cannot findhttp://server//Repo1//trunk//Folder2atHEAD1revision.
So it all looks like that even if the tag 1.0.0 is referring to Repo1/trunk in its correct XXX1 revision; the inner external svn:externals '../Folder2' is interpreted as if based from HEAD1 (instead of revision XXX1 as I would have had expected).
Is this behavior normal, and how may I work around the issue ?
NB: Svn version I have is 1.7.8 (r1419671) compiled december 12th, 2012
Edit
Another way to reproduce the issue is to check-out or simply browse Repo1 at revision XXX1. svn:externals '../Folder2' will then still be relative to HEAD1 so guess there's no much solution.