Boost logo

Boost :

From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2007-06-18 10:34:40


troy d straszheim wrote:
> On Mon, Jun 18, 2007 at 12:26:50AM -0500, Rene Rivera wrote:
>> The abstract structure that is equivalent is something like:
>>
>> /trunk
>> /project1
>> /project2
>> /branches
>> /project1
>> /one (branch copy here)
>> /two (branch copy here)
>> /project2
>> /breaking_changes
>> /int_to_double (branch copy here)
>> /nonbreaking_changes
>> /int_to_long (branch copy here)
>> /tags
>> /project1
>> /1_0
>> /1_1
>> /project2
>> /prerelease
>> /0_1
>> /0_2
>> /release
>> /1_0
>>
> [various snips]
>>> The proposed structure facilitates such fundamental operations as:
>>>
>>> * renaming a project (all the branches come with you)
>>> * deleting a project (same)
>>> * finding out what branches exist for a project (they're right there)
>>> * controlling commit access to individual projects (it's only one directory)
>>> * giving descriptive names to branches (there are separate branch namespaces)
>>> ** you can easily see what projects exist
>>> ** you can easily locate all the branches of a project
>>> ** you can easily rename/delete a project and all of its branches.
>>> ** you have more namespace for your own pet branch, so you can give
>>> your branches more succint and descriptive names.
>
> Oh man. I was trying to interpret noise the whole time? Egh.

Yea, the discussions can get confusing around here sometimes :-)

> Ok so looking at the above I agree, of course they're essentially the
> same thing. This arrangement also does not preclude the use of
> externals or other piecewise-checkout mechanism, and it is easy to
> change should there be a need. End.

Indeed, externals are a separate question. But reducing the need for
them is also a goal since using them is more work for developers. With
your mention of attaching the version number to the external itself I
think we can use them in that form (assuming we fix the http vs https
issue). So for externals we want:

* To always use version specific externals (-rNNN). Unless we have some
special uses, and are very careful.

* Only use them for historical collections.

>> And as I've mentioned before the disadvantage to bottom-up:
>>
>> You don't have a single directory you can check out to see the current
>> set of projects. If you check out the root you get every version of
>> every library filling up your drive with stuff most people don't care about.
>>
>
> Ah, so the 'common use case' is that you want to check out the entire
> sandbox. Of course you're right, you can't do this when
> tags/branches/trunk are together. So what happens when somebody
> checks a garbage project in to /sandbox/trunk/garbage? Does this ruin
> your day, or do you have some way to mark it as unwanted?

So you mean if someone checks in a project that has tags/branches below
it? Or the general someone checks in a project that I'm not interested
in? The former is what I'm trying to avoid, and the latter is by
definition not applicable. If I'm checking out the sandbox root, I'm
interested in all sandbox projects. If I wasn't interested in the whole
sandbox I would check out only parts of it. As for ignoring, I tried
using the svn:ignore facility but that doesn't work for directories,
only for files. So there's no way to ignore something at any one level
of check out.

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

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