On Fri, Aug 12, 2011 at 3:12 AM, Mike Cepek <mikecepek_at_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
Received on 2011-08-16 00:50:34 CEST