On Sun, 2006-03-12 at 19:31 +0000, Niall Pemberton wrote: > On 3/12/06, Stephen Colebourne <[EMAIL PROTECTED]> wrote: > > IIRC, we've been advised against overuse of svn:externals before. The > > mechanism I've described is simple enough - just use the Internet for > > what it was supposed to be used for. And no duplicated files at all. > > I agree that lots of svn:externals for each component would be a PITA > - but if we put everything in a single directory in commons-build then > that would be one per component, which once added shouldn't need to > ever change. One svn:external per component isn't overuse IMO and is > exactly what its designed for.
If svn:external is used, it must not point to the *trunk* branch of the project, as that could undergo changes that would break checkouts of old versions of projects. svn:external links should only point to *tag* directories. Of course that then makes life difficult on the trunk of a project. Example: commons-lang/trunk has an svn:externals link to commons-build/tags/r1. This works nicely when commons-lang is tagged for release; the tagdir has an external that points to a nice stable version of commons-build. However obviously the *trunk* of commons-lang will never see updates to commons-build/trunk. The alternate approach of having commons-lang/trunk have an externals link to commons-build/trunk. This is a REALLY bad idea, as when commons-lang is tagged for release it is very easy to forget to change the svn:externals link. And if commons-lang/tags/... contains an svn:external link to commons-build/trunk then when someone checks it out later and tries to build the site rebuild might fail (or just be different) due to changes in commons-build/trunk. I would prefer to avoid svn:externals *completely*, but if they must be used then I suggest *never* linking to a trunk or branch, only a tag. Cheers, Simon --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]