File external into directory external's directory broken in 1.7

2012-08-17 Thread btfritz
I have one repository with two projects. Project A externals in a couple 
directories from Project B (a library). But the tag I need to pull in from 
Project B did not have a Windows build, only a target (Linux derivative) 
build, so I have a third external defined to pull in a Windows build of 
the Project B library to the place it would go if it were there in the 
first place. This worked in version 1.6, but now gives an error in 1.7 and 
does not pull in the file.

Specifically, I did the following from the directory in Project A which 
contains most of our svn:externals definitions (here CommonElements is 
Project B):

*** BEGIN *
scarecrow_SunOS_btfritz> svn --version
svn, version 1.7.5 (r1336830)
   compiled Jun 14 2012, 11:00:46

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the 
NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using 
Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network 
protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using 
serf.
  - handles 'http' scheme
  - handles 'https' scheme

scarecrow_SunOS_btfritz> svn propget svn:externals . | grep CommonElements
# CommonElements
^/Fusion/Shared/CommonElements/tags/815-6133-102A_11-11_Build_Updates/src 
CommonElements/src
^/Fusion/Shared/CommonElements/tags/815-6133-102A_11-11_Build_Updates/lib 
CommonElements/lib
^/Fusion/Shared/CommonElements/branches/815-6133-101_WindowsBuild/lib/libce.lib@126
 
CommonElements/lib/libce.lib
scarecrow_SunOS_btfritz> rm -Rf CommonElements/lib
scarecrow_SunOS_btfritz> svn update

[unrelated paths snipped]

Fetching external item into 'CommonElements/src':
External at revision 1042.


Fetching external item into 'CommonElements/lib':
ACommonElements/lib/libce.a
 U   CommonElements/lib
Updated external to revision 1042.


Fetching external item into 'CommonElements/lib/libce.lib':
svn: warning: W155022: Cannot insert a file external defined on 
'/accts/btfritz/temp/extern_test' into the working copy 
'/accts/btfritz/temp/extern_test/CommonElements/lib'.

[unrelated paths snipped]

At revision 1042.
svn: E205011: Failure occurred processing one or more externals 
definitions
*** END *

Repeat the experiment with version 1.6:

*** BEGIN *
scarecrow_SunOS_btfritz> svn --version
svn, version 1.6.17 (r1128011)
   compiled Oct 12 2011, 12:29:56

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using 
Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network 
protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using 
serf.
  - handles 'http' scheme
  - handles 'https' scheme

scarecrow_SunOS_btfritz> svn propget svn:externals . | grep CommonElements
# CommonElements
^/Fusion/Shared/CommonElements/tags/815-6133-102A_11-11_Build_Updates/src 
CommonElements/src
^/Fusion/Shared/CommonElements/tags/815-6133-102A_11-11_Build_Updates/lib 
CommonElements/lib
^/Fusion/Shared/CommonElements/branches/815-6133-101_WindowsBuild/lib/libce.lib@126
 
CommonElements/lib/libce.lib
scarecrow_SunOS_btfritz> rm -Rf CommonElements/lib
scarecrow_SunOS_btfritz> svn update

[unrelated paths snipped]

Fetching external item into 'CommonElements/src'
External at revision 1042.


Fetching external item into 'CommonElements/lib'
ACommonElements/lib/libce.a
 U   CommonElements/lib
Updated external to revision 1042.


Fetching external item into 'CommonElements/lib/libce.lib'
ECommonElements/lib/libce.lib
Updated external to revision 126.

[unrelated paths snipped]

Updated to revision 1042.
*** END *

I know from an earlier post to the list ( 
http://svn.haxx.se/users/archive-2012-07/0159.shtml ) that the 'E' status 
when pulling in the libce.lib file indicates that the file already exists, 
but this is not the case. As you can note 

Re: File external into directory external's directory broken in 1.7

2012-08-17 Thread btfritz
I wrote:
> I have one repository with two projects. Project A externals in a couple
> directories from Project B (a library). But the tag I need to pull in 
from
> Project B did not have a Windows build, only a target (Linux derivative)
> build, so I have a third external defined to pull in a Windows build of
> the Project B library to the place it would go if it were there in the
> first place. This worked in version 1.6, but now gives an error in 1.7 
and
> does not pull in the file.

I searched the archives (Sorry, I guess I should have done that sooner) 
and
came up with this:

  http://svn.haxx.se/dev/archive-2011-10/0377.shtml

Like the poster in that thread, this issue is preventing many on my team
from upgrading to SVN 1.7. In that thread, the claim was made in response
that this worked "by accident" in version 1.6, but I do not see any reason
why this might be the case. Is this actually the case? Is this something
that can be fixed, or will file externals always be limited to be placed
only within folders belonging directly to the current working copy?
Regardless of whether it was originally an intentional feature, it is very
useful when it works. And, directory externals do NOT have this 
limitation,
so it seems quite arbitrary to the end user, even if the underlying
implementation is very different between file and directory externals.