On Tue, Sep 1, 2009 at 3:18 PM, omega32 <omega32_at_gmail.com> wrote:
> This is the situation:
> I have an external folder defined in the trunk of a repository named
> "ProjectX" from a DIFFERENT Repository ("common") as follows:
> -r7 "^/../common/trunk/lib" "lib"
> As you can see, it's pointing to a specific revision (7). This works
> perfect. I've use this external in several repositories with no problem. As
> needed, I update the projects to use the latest version of this common
> library (external). Because the revision of the external is specified
> explicitly, I can checkout and compile old revisions of the projects that
> use old versions of the library without any issues. So far so good.
> Now, I move the folder "lib" as follows:
> trunk/lib --> trunk/source/lib
> Just to be clear: I move this on the repository that contains the folder to
> import, that's the repository named "common". Not in the repository that
> declares the svn:externals property.
> I then commit the changes creating, so a new revision (8). Now the problem!
> If I try to checkout or update any project that uses a revision prior to 8
> (therefore prior to moving the folder) an error is shown saying that the
> folder can't be found:
> External failed: D:\Repositories\ProjectX\trunk\lib
> Error: File not found: revision 8, path '/trunk/lib'
> It seems that TortoiseSVN is checking to see if the external exists in the
> HEAD revision rather than the one defined in the svn:externals property.
> Just as a test a move the folder back to where it was before:
> trunk/source/lib --> trunk/lib
> Then try again to checkout or update an old revision... It works again!
> TortoiseSVN checks the HEAD revision (9) and founds the folder, then
> proceeds to checkout/update the correct revision (7) (the one specified
> svn:externals property).
> - I tried with external folders and with external files and the same
> - Tested with versions 188.8.131.5213 and 184.108.40.20674 (I skipped 1.6.4 because
> a bug).
> - I'm using XP Professional.
> - The repositories are local (using file:/// protocol).
It isn't a bug - it's by design (but it can be confusing).
Basically, it comes down to the face that SVN has two types of revision
parameters: peg revisions and operative revisions.
These are explain in the book:
If a peg revision is not specified, then the default of @HEAD is applied -
SVN looks for the object named trunk/lib in the HEAD revision, then traces
back to find it in r7.
If you change your svn:externals definitions to be @7 rather than -r7, it
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-09-01 10:12:43 CEST