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]

Reply via email to