[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Sparse Externals

From: Branko Čibej <brane_at_wandisco.com>
Date: Fri, 19 Oct 2012 10:00:26 +0200

On 18.10.2012 23:30, Ben Reser wrote:
> Regarding this issue: http://subversion.tigris.org/issues/show_bug.cgi?id=3311
> We don't support using --depth options other than infinity with
> externals. Bert mentions that wc-ng should make it easier to
> implement this.
> However, given the way svn:externals can be defined I think that it's
> really hard to implement this without a performance hit or without
> having users frustrated by the way it works. In particular you can
> define svn:externals at a different level than where you're putting
> them. If we wanted this to work the way most people I think would
> expect them to work you'd end up needing to walk all the way up to the
> repo root looking for externals on every checkout/update. Which
> stinks.
> We could punt on that but I'm not sure I like the idea of just
> continuing to apply hacks upon a poor design. So I'm wondering if it
> wouldn't be better to just replace externals with something that
> resolves a lot of other issues and gives us a more consistent
> behavior. While leaving the existing externals implementation alone.
> What does everyone else think? Anyone have put any thought into
> replacing externals?

Oh yes. Eventually I'd like to see something like this:

  * The functionality of repo-relative externals replaced with some
    flavour of in-repo links, so that the client doesn't even have to
    know about them.
      o ... though quite likely the client will have to have /some/ way
        to know about the fact that it can see the same file twice under
        different paths in the WC
  * Most of the current uses of externals to other repositories replaced
    by better handling of remote branches (including support for remote
    merges) -- Julian and I have talked on and off about how to
    implement this.

This only leaves the case where you really want to pull the WC together
from different repositories, and that would require new UI to exploit
the potential of WC-NG. I'd recomment starting by:

  * deprecating the svn:externals property
  * completely deprecating file externals (in the sense that,
    eventually, we'd stop supporting including files from external
    repositories in the working copy).

I know this will seem like a step backward, but really, I can't think of
a good argument for continuing to indefinitely support a feature that we
knew was broken from day one.

-- Brane

Certified & Supported Apache Subversion Downloads:
Received on 2012-10-19 10:01:06 CEST

This is an archived mail posted to the Subversion Dev mailing list.