[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

setting explicit revision for relative externals fails during tag

From: <btfritz_at_rockwellcollins.com>
Date: Wed, 15 May 2013 07:48:51 -0500

I've attached a .bat file (renamed as a .txt file to bypass email filters
where I work) which will create a pair of repositories to demonstrate
multiple (possibly related) issues I'm having with relative-path
svn:externals definitions. Some of these issues may have been discussed at
but I could not easily tell if the situation was the same (descriptions
were a little vague in my eyes) nor do I see any action taken.

Open the attachment in your favorite text editor and examine it to make
sure it's not doing anything you don't expect. Then, rename the file to
have a .bat extension and run it from some temp directory. It will create
two repositories and working copies for each in whichever directory you
run it from.

After the .bat script runs, open the "trunk" folder of the testrepo_wc
working copy and use TortoiseSVN to open the "create tag" dialog. Now you
can see the first problem. The "other_subdir" external is shown at
revision 1, which is in fact the last time the contents being pulled in
were changed directly. However, at revision 2, there was a svn mv command
that renamed the parent directory of sub3 in the externrepo, so the
current working copy is ACTUALLY pulling in revision 2, not revision 1.

Now select all the external items to set the explicit revisions, and
create the tag. Tag creation should appear to succeed. Now go to the
"tags" directory in the working copy and do an svn update. Both externals
will fail.

The first external (for subdir inside testrepo) fails because it tries to
access the relative external path at revision 1. But the tag did not exist
at revision 1. This external should have been translated to a less
relative path on trunk (probably using ^/trunk/subdir instead of
../subdir) or should have been updated to the revision resulting from tag
creation. This is problem 2.

The second external fails because it tries to use revision 1, when as
discussed above it ought to be using revision 2 due to the parent
directory move. Problem 3.

A fourth problem can be seen by bringing up the svn:externals editor on
/trunk/externals. Try doing a "show log" for the testrepo external. When I
do this, I see a message: "File not found, revision 4, path
'/trunk/externals/../subdir/../subdir'" and no log.

Both problematic use cases follow patterns documented at

Normally I'd post separately for these issues but I thought they might be
related since they all have to do with relative externals paths, and my
test repositories can easily reproduce each of them. Let me know if you'd
rather discuss them separately.

Ben Fritz
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].

Received on 2013-05-15 14:56:50 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.