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': A CommonElements/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' A CommonElements/lib/libce.a U CommonElements/lib Updated external to revision 1042. Fetching external item into 'CommonElements/lib/libce.lib' E CommonElements/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 above, I started my test by removing the entire CommonElements/lib directory and all contents, and it's not in the repository: scarecrow_SunOS_btfritz> svn ls http://asvn/ifis-dev/Fusion/Shared/CommonElements/tags/815-6133-102A_11-11_Build_Updates/lib libce.a Also, even though 'E' should indicate that the external failed, it does actually pull the file in with version 1.6 (but not in 1.7): scarecrow_SunOS_btfritz> ls CommonElements/lib libce.a libce.lib scarecrow_SunOS_btfritz> svn info CommonElements/lib/libce.lib Path: CommonElements/lib/libce.lib Name: libce.lib URL: http://asvn/ifis-dev/Fusion/Shared/CommonElements/branches/815-6133-101_WindowsBuild/lib/libce.lib Repository Root: http://asvn/ifis-dev Repository UUID: 3ba77836-1d5b-e042-a62f-cca4ba7af163 Revision: 126 Node Kind: file Schedule: normal Last Changed Author: ccanet\btfritz Last Changed Rev: 126 Last Changed Date: 2012-01-20 12:21:33 -0600 (Fri, 20 Jan 2012) Text Last Updated: 2012-08-17 12:13:26 -0500 (Fri, 17 Aug 2012) Checksum: 59b2b54d3d1f8f8736e390b124967e1f I'm not certain whether it's relevant, but the Repository UUID given above for the problematic file external matches the UUID for the directory external as well as the project's directory. I think the problem happens because I'm trying to insert a file external into what is for all intents and purposes a separate working copy. But I see nothing in http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html which mentions a requirement that the destination for a file external must be a "plain" directory. All it says is "While directory externals can place the external directory at any depth, and any missing intermediate directories will be created, file externals must be placed into a working copy that is already checked out," and this condition is met. I know I cannot use file externals from other repositories, and I would even expect a failure in placing a file external from a project's repository into a directory external from another repository, but in this case the file external and the directory external are both from the same repository as the project. Please CC me on any response; I'm not subscribed to get emails from the list. -- Ben Fritz