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
trunk
ofRepo2
, I have no issue. That isRepo1
is checked-out with its singleFolder1
.When I'm checking out the tag
1.0.0
ofRepo2
, then svn complains that it cannot findhttp://server//Repo1//trunk//Folder2
atHEAD1
revision.
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.