Boost logo

Boost :

From: Douglas Gregor (dgregor_at_[hidden])
Date: 2005-02-05 11:45:40


On Feb 4, 2005, at 1:10 AM, Rene Rivera wrote:
> My experience with SVN has not been all that pleasant but perhaps it's
> a result of only using the command line, maybe the GUIs out there fare
> better.
>
> 1. Obtaining information about the repository without doing a checkout
> of every branch, tag, etc. is horribly painful. The history/log
> facility is almost useless. For example I don't think theres way to
> find out in what branches/tags a particular file revision is part of,
> other than getting the complete repository and doing a file find..
> yuk.
> [snip]
> 3. The lack of in place branching makes many things harder, and the
> possible equivalent of "svn copy"+"svn switch" is very difficult to
> manage. This discourages the use of small short lived branches useful
> for experimental code changes.

Reading about Mono's switch to svn made me wonder if some of these
problems are because we're trying to use our cvs tricks with svn, when
those tricks have only become habit to get around cvs's limitations.

For instance, what do you mean by a "small" branch? It made me think of
the graph_devel branch, where I only branched the boost/graph and
libs/graph subdirectories [1]. I'd then test my branch be switching
over those two directories (only) within a full checkout of the trunk,
and develop that way. It's a bit of a strange model, because I never
had a full branch, just a few files, and I've weave the two together.
The "svn way" to do this would be to create a whole branch (a trivial
operation: copies are cheap), which would be entirely separate from the
main branch. Interestingly, I did find that I had to switch between the
two multiple times, such that it would have been nice to have two
separate branches [1].

[1] The reasons I tagged only those two directories are CVS
limitations. Branching, checkout, and update all take a really long
time with CVS (especially the first one), so I wanted to branch and
change as little as possible in my tree.

[2] I could have faked two separate, full branches by copying the
top-level "boost" directory, renaming one to include the branch name,
and updating with "-A" in the "head" branch but not the other.

Subversion's workflow is different from CVS's. Whenever we say that
Subversion can't do something well that CVS can, we should step back
from the task to determine if that's really what we want. We wouldn't
complain that C++ compiler X couldn't emulate "typeof" properly when it
gives us "decltype", I think Subversion is in some ways harmed because
it's touted as "a better cvs" and not "a version control system with a
similar interface to cvs". I'm sure it'll have plenty of failings
without us pushing it :)

        Doug


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