On Tue, Oct 11, 2011 at 12:03 PM, Julian Foad <julian.foad_at_wandisco.com> wrote:
> On Tue, 2011-10-11 at 10:20 +0200, Johan Corveleyn wrote:
>> 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...
>
> Can we *please* add some such description to the source code? I'd
> suggest at the definition of the table in wc-metadata.sql.
+1
But I don't feel expert enough on the subject to do that myself :-).
I'm not even sure if my understanding, as laid out above, is correct.
Maybe one of the experts (Bert?) can add the necessary documentation?
--
Johan
Received on 2011-10-11 13:30:07 CEST