On Mon, Oct 10, 2011 at 3:25 PM, Bert Huijben <b...@qqmail.nl> wrote: > > >> -----Original Message----- >> From: Neels J Hofmeyr [mailto:ne...@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