[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Parallel branches/tags/trunk directories

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 16 Aug 2011 00:49:44 +0200

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

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.