[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: coolie <pcoulson_at_senscient.com>
Date: Thu, 29 Mar 2012 02:33:38 -0700 (PDT)

I have exactly the same issue - I want to inhibit checkout of all tags (and
branches) folders, but still be able to do an update from the root. I've
read the replies on this post and none seem to solve the problem. Did you
find a simple solution? Ideally this should be a property set on the root
folder a bit like svn:ignore so that it is registered at the server. Looks
like I'll just have to bite the bullet and write a co script that everyone
has to run to do the initial checkout (don't have Python or Perl). I don't
know where the depth information is held for each folder - maybe there is
some way of modifying this file?

As I understand it you would do the following:
- checkout root (immediate files and folders only, which includes the
script)
- run the script, which would do the remaining checkout (but only the
immediate children of tags or branches folders)
- updating the root hereafter will not update sub-folders of tags or
branches folders

Also need a script to modify the tree for existing checkouts. This would
delete the tags sub-folder contents from the local disk and set the co depth

On Thursday, 11 August 2011 15:27:42 UTC+1, Mike Cepek wrote:
>
> (I did some searching for an answer here and elsewhere, and didn't find
> it; sorry if I missed it.)
>
> The project I'm dealing with has the SVN repository arranged like so:
>
> proj/top1/branches/
> proj/top1/tags/
> proj/top1/trunk/
> proj/top2/common/branches/
> proj/top2/common/tags/
> proj/top2/common/trunk/
> proj/top2/thingA/branches/
> proj/top2/thingA/tags/
> proj/top2/thingA/trunk/
> proj/top2/thingB/branches/
> proj/top2/thingB/tags/
> proj/top2/thingB/trunk/
> proj/top2/deploy/common/branches/
> proj/top2/deploy/common/tags/
> proj/top2/deploy/common/trunk/
> proj/top2/deploy/thingA/env1/branches/
> proj/top2/deploy/thingA/env1/tags/
> proj/top2/deploy/thingA/env1/trunk/
> proj/top2/deploy/thingA/env2/branches/
> proj/top2/deploy/thingA/env2/tags/
> proj/top2/deploy/thingA/env2/trunk/
> proj/top2/deploy/thingB/env1/branches/
> proj/top2/deploy/thingB/env1/tags/
> proj/top2/deploy/thingB/env1/trunk/
> (etc)
>
> First, I completely agree that this organization has issues. Changing is
> isn't an option. I'll spare you the details. :-/
>
> My question is: how to checkout and update at the proj/ level without
> getting the content of all the tags/ and branches/ directories?
>
> The "Sparse Directories" features of SVN (--depth and --set-depth) sounded
> good:
> http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html
>
> But those features are not sufficient. In order to do a fresh checkout of
> the above and avoid the massive on-disk redundancy that would occur due to
> the content of tags/ and branches/, each trunk/ directory must be checked
> out individually. Other than creating a brittle script that lists each
> trunk/ directory, I don't see a solution. Even then, each branches/ and
> tags/ directory needs to be marked with --set-depth as well.
>
> I also discovered that "svn co URL/proj/top1 --depth immediates" can take
> a very long time for a tree with tons of content. Seems like a bug (using
> SlikSvn 1.6.15). Similarly, something like "svn update URL/proj/top1/tags
> -depth immediates" would be handy at times to get just the empty
> subdirectories, named after each branch or tag. Updating just one of those
> subdirectories would allow mass-diffs between the trunk or another
> branch/tag. I don't see why a depth-limited operation like that should
> take so much time.
>
> I though about using 'svn list http://.../proj/' and grep'ing the result
> for "/trunk", but that one command takes over 10 minutes - not feasible. A
> checkout of all the trunk/ directory contents only takes 2.5 minutes.
>
> So: has anyone found a clean way to handle checkouts and updates when
> branches/tags/trunk directories are strewn all over a tree? Thanks.
>

On Thursday, 11 August 2011 15:27:42 UTC+1, Mike Cepek wrote:
>
> (I did some searching for an answer here and elsewhere, and didn't find
> it; sorry if I missed it.)
>
> The project I'm dealing with has the SVN repository arranged like so:
>
> proj/top1/branches/
> proj/top1/tags/
> proj/top1/trunk/
> proj/top2/common/branches/
> proj/top2/common/tags/
> proj/top2/common/trunk/
> proj/top2/thingA/branches/
> proj/top2/thingA/tags/
> proj/top2/thingA/trunk/
> proj/top2/thingB/branches/
> proj/top2/thingB/tags/
> proj/top2/thingB/trunk/
> proj/top2/deploy/common/branches/
> proj/top2/deploy/common/tags/
> proj/top2/deploy/common/trunk/
> proj/top2/deploy/thingA/env1/branches/
> proj/top2/deploy/thingA/env1/tags/
> proj/top2/deploy/thingA/env1/trunk/
> proj/top2/deploy/thingA/env2/branches/
> proj/top2/deploy/thingA/env2/tags/
> proj/top2/deploy/thingA/env2/trunk/
> proj/top2/deploy/thingB/env1/branches/
> proj/top2/deploy/thingB/env1/tags/
> proj/top2/deploy/thingB/env1/trunk/
> (etc)
>
> First, I completely agree that this organization has issues. Changing is
> isn't an option. I'll spare you the details. :-/
>
> My question is: how to checkout and update at the proj/ level without
> getting the content of all the tags/ and branches/ directories?
>
> The "Sparse Directories" features of SVN (--depth and --set-depth) sounded
> good:
> http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html
>
> But those features are not sufficient. In order to do a fresh checkout of
> the above and avoid the massive on-disk redundancy that would occur due to
> the content of tags/ and branches/, each trunk/ directory must be checked
> out individually. Other than creating a brittle script that lists each
> trunk/ directory, I don't see a solution. Even then, each branches/ and
> tags/ directory needs to be marked with --set-depth as well.
>
> I also discovered that "svn co URL/proj/top1 --depth immediates" can take
> a very long time for a tree with tons of content. Seems like a bug (using
> SlikSvn 1.6.15). Similarly, something like "svn update URL/proj/top1/tags
> -depth immediates" would be handy at times to get just the empty
> subdirectories, named after each branch or tag. Updating just one of those
> subdirectories would allow mass-diffs between the trunk or another
> branch/tag. I don't see why a depth-limited operation like that should
> take so much time.
>
> I though about using 'svn list http://.../proj/' and grep'ing the result
> for "/trunk", but that one command takes over 10 minutes - not feasible. A
> checkout of all the trunk/ directory contents only takes 2.5 minutes.
>
> So: has anyone found a clean way to handle checkouts and updates when
> branches/tags/trunk directories are strewn all over a tree? Thanks.
>
Received on 2012-03-29 11:34:17 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.