On 3/12/06, Simon Kitching <[EMAIL PROTECTED]> wrote:
> On Sun, 2006-03-12 at 11:36 -0800, Henri Yandell wrote:
> > On 3/12/06, Niall Pemberton <[EMAIL PROTECTED]> 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.
> > >
> > > +1 to Sandy's suggestion from me.
> >
> > Biggest problem with svn externals is that they're not hooked into svn
> > moves. So have to be kept up to date when we move a component from one
> > place to another, or just change the svn url structure.
>
> Fair point.
>
> To give an example, a path "svn.apache.org/repos/asf/foo/bar" will break
> if foo is renamed to baz.
>
> Externals can take a revision#, eg
>  "bar -r1000 http://svn.apache.org/repos/asf/foo/bar";
> however this still doesn't handle renames, as this syntax *first* causes
> svn to look for the path in the current revision of the repo, then track
> backwards on that object to find revision 1000.
>
> This should be fixable, though, by using "peg" syntax in the externals
> url. According to the svn book,
>  http://svn.apache.org/repos/asf/foo/[EMAIL PROTECTED]
> should look into version 1000 of the repository to find the specified
> directory. This would make the externals URL safe against renames.

>From what I can see this means we would be tieing the svn:external to
a specified revision - which means if something in commons-build
changed then it wouldn't get picked up without re-doing the
svn:external - have  got that right?

If that is the case, looks like a nightmare to me - we'll be forever
updating externals. I think if we created something like a
"shared-build" directory in commons-build then we could just link
svn:externals to that - anything that gets dropped into it, gets
picked up. Maybe we should do it through a versioned branch so that if
someone wants to change something that would break older versions
working, then they create a new versioned branch.

I think the "things getting renamed" if we used a directory wouldn't
be a big issue.

Niall


> http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html
>
> Unfortunately I can't get "peg revisions" to work for me using svn 1.1.4
> on debian, though the documentation does say the functionality was added
> in release 1.1.
>
> Can anyone else get peg revisions to work? eg:
>   svn cat
> http://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk/[EMAIL 
> PROTECTED]
>
> Cheers,
>
> Simon

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to