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

Re: SVN Externals 1.6 to 1.7 migration issue

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Thu, 2 May 2013 09:55:08 +0200

On Wed, May 1, 2013 at 5:01 PM, BRM <bm_witness_at_yahoo.com> wrote:
> While I have not had the issue you are having, assuming the externals are in
> the same repository I would highly recommend changing from using the syntax
> you have to using the carrot (^) operator as it will save you many headaches
> if your original svn location changes.
>
> I.e. use:
>
> ^/FOLDER_A FOLDER_C
> ^/FOLDER_B FOLDER_D

Indeed, that's far better than using an absolute url with scheme etc.

> Also, I think the specific issue you are having (looking more closely at the
> error message below) is that AFAIK, SVN does not let you import specific
> files via externals - you have to do name spaces (aka folders) instead.

That's not correct. File externals are supported (since 1.6 I think).
They have a couple of specific problems though (a lot of which have
been fixed in 1.7), because their implementation is entirely different
from directory externals (file externals use the "switch" mechanism
underneath, while dir externals are essentially an embedded checkout
with some sugar on top).

So, concerning to the problem of the OP:

> From: "Hutchinson, Steve (UK)" <steven.hutchinson_at_mbda-systems.com>
> To: "users_at_subversion.apache.org" <users_at_subversion.apache.org>
> Sent: Wednesday, May 1, 2013 7:01 AM
> Subject: SVN Externals 1.6 to 1.7 migration issue
>
> Hi,
>
> We're been using 1.6 svn externals to manage a FW task.
>
> In the repository we have a folder structure (which is pretty much defined
> by the tools we are using) as below :-
>
> FOLDER A -> file_a1.txt, file_a2.txt, file_a3.txt
> FOLDER B -> file_b1.txt, file_b2.txt, file_b3.txt
>
> Then using externals we link to those folder to create a WC PROJECT
> structure that looks like :-
>
> PROJECT -> FOLDER C -> file_a1.txt, file_a2.txt, file_a3.txt AND
> file_b1.txt
> PROJECT -> FOLDER D -> file_b1.txt, file_b2.txt, file_b3.txt
>
> The externals on PROJECT FOLDER we used looked like (not actually using file
> protocol, just created for example purposes) :-
>
> file:///D:/FPGA/SVN_ISSUE/repo/FOLDER_A FOLDER_C
> file:///D:/FPGA/SVN_ISSUE/repo/FOLDER_B FOLDER_D
> file:///D:/FPGA/SVN_ISSUE/repo/FOLDER_B/file_b1.txt FOLDER_C/file_b1.txt
>
> Worked ok with 1.6. We get the below error in 1.7 when updating of :-
>
> External failed: D:\FPGA\SVN_ISSUE\PROJECT\FOLDER_C\file_b1.txt
> Error: Cannot insert a file external defined on
> 'D:\FPGA\SVN_ISSUE\PROJECT' into the
> Error: working copy 'D:\FPGA\SVN_ISSUE\PROJECT\FOLDER_C'.
>
> We have tried a few things (will not share all at this point due to info
> overload), but wondered if there were any others that achieve something like
> this with 1.7 or could offer some advise ?

So essentially you are "injecting" a file external (file_b1.txt)
inside a directory external (FOLDER_C (an external of FOLDER_A)).

Hm, I remember some past discussions about edge cases like these
(during the working copy rewrite of 1.7), but I don't remember exactly
if this is actually a supported use case, or if it just happened to
work by accident in 1.6.

Perhaps someone else on this list can shed some light on this?

--
Johan
Received on 2013-05-02 09:56:02 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.