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

Re: EXTERNALS table -- good or bad?

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 11 Oct 2011 10:20:30 +0200

On Mon, Oct 10, 2011 at 3:25 PM, Bert Huijben <bert_at_qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Neels J Hofmeyr [mailto:neels_at_elego.de]
>> Sent: zaterdag 8 oktober 2011 7:58
>> To: Bert Huijben
>> Cc: 'Subversion Development'
>> Subject: Re: EXTERNALS table -- good or bad?
>>
>> On 10/07/2011 02:18 PM, Bert Huijben wrote:
>> > I think you were the one that enabled processing svn:externals on local
>> > additions?
>>
>> Can't say that I did :)
>>
>> > (Impossible without EXTERNALS)
>>
>> "Impossible" is such a strong word. Brief explanation?
>>
>> > And file externals would be impossible to delete, except when using
>> > EXTERNALS.
>>
>> Not sure about that, we do have that update_root column...
>>
>> > (etc.)
>> (/me greps svn:log,dev@)
>>
>> So in short, we are going to rely on the EXTERNALS table as the no.1
> source
>> for information about svn:externals definitions, i.e. keep the table
>> up-to-date at all times. It's more than just a cache. Right?
>
> ^/subversion/trunk/notes/wc-ng/externals contains more on the reasoning of
> why 'EXTERNALS'.
>
> (It was áwritten before it was decided not to move the real actual data from
> BASE, so it could use some updates)

AFAIUI, the EXTERNALS table is indeed not a cache, but it notes the
externals "as rolled out by the last svn update", i.e. the externals
"as currently expanded in the WC" (at least, that's what I understood
from the dev@ discussions a while ago, and from the notes doc). This
is a criticial piece of information, which can be different from what
the externals prop says (in either their BASE or ACTUAL forms).

And it's needed in a couple of scenario's which Bert noted. For
instance, there is the scenario (as described in the notes file),
where you change an external from pointing to A, to B, and then to C,
without committing in between (but updating, i.e. applying the
externals each time). In that case, you really need the information of
what the "actually applied externals" were, to do a correct
"migration" from B to C.

At least, that's how I understood the need for the EXTERNALS table...

-- 
Johan
Received on 2011-10-11 10:21:21 CEST

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