subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johan Corveleyn <jcor...@gmail.com>
Subject Re: Parallel branches/tags/trunk directories
Date Mon, 15 Aug 2011 22:49:44 GMT
On Fri, Aug 12, 2011 at 3:12 AM, Mike Cepek <mikecepek@yahoo.com> wrote:
>> I'll bite...
>> Why do you need to checkout everything from the "proj" level of the
>> tree? If it is common to checkout from the project level of the tree,
>> how do you branch or tag if you have to branch and tag each and every
>> directory?
>
>
> Sorry, I missed this earlier reply.  You identify good issues, David, and I've raised
them.  I think it's one of those things where I can see the issues before others do, and
until the pain becomes theirs personally, there's no point in trying.
>
>> proj/trunk|tags|branches/*
>
> I've used that project layout in all my past projects with SVN, CVS, ... sccs (yes, way
back).  In this particular project, the sets of deploy/ directories will be managed separately
by another team.
>
> My attempt at anonymization unfortunately obfuscated the layout a bit.  I can see reasons
for a layout like this in our case:
>
> proj/common/trunk|tags|branches
> proj/top[1|2]/trunk|tags|branchesproj/deploy/common/trunk|tags|branches
>
> proj/deploy/top[1|2]/trunk|tags|branches/env[1-9]
> The codebase resides in the first trees, and runtime configuration (deploy) stuff in
the latter ones.  The top1/ and top2/ projects evolve independently, but share the common/
stuff.
>
> I agree that SVN makes adjusting this pretty simple.  I hope we have that opportunity
before the concrete hardens too much more.  Thanks.
>

A bit late perhaps, but nevertheless: maybe you should take a look at
the script 'svn-viewspec.py' [1]. It can automate the building up of a
sparse working copy, based on a simple configuration file specifying
which part of the tree is needed. You could create such a config file
for your team, which allows anyone to quickly set up the required
sparse working copy (provided they have python, or can easily install
it).

In your case the config file might look like this:

-------- 8< --------
Format: 1
Url: https://url.to.your/repository/proj

top1/trunk/**
top2/common/trunk/**
top2/thingA/trunk/**
top2/thingB/trunk/**
top2/deploy/common/trunk/**
top2/deploy/thingA/env1/trunk/**
top2/deploy/thingA/env2/trunk/**
top2/deploy/thingB/env1/trunk/**
...
-------- 8< --------

Of course this is still a 'static' solution, it doesn't determine the
'trunks' dynamically. But it those things/envs/... are relatively
stable, it could help. Otherwise, you'll have to put in some process
or procedure to keep the config file in sync with reality.

-- 
Johan

[1] http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/svn-viewspec.py

Mime
View raw message