Boost logo

Boost :

From: David A. Greene (greened_at_[hidden])
Date: 2007-09-18 15:46:34


On Tuesday 18 September 2007 09:31, David Abrahams wrote:

> > But note that svn externals are broken in a lot of ways. It is not
> > possible to do a commit across externals, for example. Ditto for
> > diffs.
>
> What do you mean "a commit across externals?"
> I certainly have had no trouble with them.

Let's say I have repository foo with some externals that looks like this:

foo/
  bar/ (external)
  baz/ (external)
  src/
    module1/
    module2/

If I make changes to files in module1 and files in baz and want to commit
them, I must do two different commits, one for module1 and one for baz.
This can become troublesome if these commits are dependent as there will
be a window where the repository is not buildable/runnable/whatever.

I also cannot get a single diff file of all the changes. I have to run two
separate diffs.

These aren't necessarily showstoppers, but it's very inconvenient at times.

> > Just a caution that svn externals are not the panacea they are made
> > out to be.
>
> We've had plenty of those warnings already, but I'm not claiming
> they're a panacea. I'm only claiming that if you want a directory in
> your SVN working development copy that has the exact structure of a
> Boost installation's include directory, svn:externals makes it
> possible.

I know that you didn't claim externals are a panacea, but many, many
people do. They seem to think externals works like CVS did when you did
a checkout of a repository under a working copy of a different repository
and could do diffs, commits, etc. and have CVS "do the right thing."
Externals does not work that way.

Curiously, emacs svn mode allows you to do diffs across externals (presumably
running separate diffs and aggregating the results), but isn't smart enough to
do commits across externals.

                                             -Dave


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk