On Thu, 10 Nov 2005, Alan Barrett wrote:
> On Wed, 09 Nov 2005, Jim Blandy wrote:
>>> If several branches are each declared
>>> as parallel to the trunk, how do we know that the branches are also
>>> parallel to each other?
>>
>> You could set an svn:parallel:branch property on some parent of the
>> branches, as well as on (a parent of?) the trunk; then +branch would work
>> everywhere.
>
> What I meant was, if I have the following structure:
>
> trunk/ [svn:parallel:foo = ../branches/foobranch]
> [svn:parallel:bar = ../branches/barbranch]
> branches/
> foobranch/ [svn:parallel:trunk = ../../trunk]
> barbranch/ [svn:parallel:trunk = ../../trunk]
>
> and I have a working copy somewhere in foobranch,
> and I try to refer to "+bar", it doesn't work.
>
> Hmm, what if there was a mechanism for indirection through
> the properties on a different directory?
>
> trunk/ [svn:parallel:foo = ../branches/foobranch]
> [svn:parallel:bar = ../branches/barbranch]
> [svn:parallel:trunk = .]
> branches/
> foobranch/ [svn:parallel:* = ../../trunk]
> barbranch/ [svn:parallel:* = ../../trunk]
>
> Now if I have 100 branches, then I need to set 100 dirprops on the
> "trunk", but the other 99 branches just need the indirection specifier
> to tell them "look at the trunk's dirprops for information about other
> branches".
>
>>> And how do we know how many directory
>>> components are part of the branch specifier, as opposed to part of the
>>> directory within the branch?
>>
>> Right, that's another question that I was trying to get at here:
>>
>> # ... But how do you eliminate branch names in
>> # 'branches/branchname/subdirs'? If there's deep hierarchy under
>> # 'branches', you don't know how many components to drop to find the
>> # trunk, but keep subdirs.
>
> Perhaps make the property value look like a structured data type with
> multiple subvalues, one of which says how many directory levels to chop
> off?
>
> trunk/ [svn:parallel:branches = (dir="../branches/*",chop=1)]
> branches/ [svn:parallel:trunk = (dir="../trunk",chop=2)]
> [svn:parallel:branches = (dir="./*",chop=2)]
> foobranch/
> barbranch/
>
> Now "+trunk", "+branches/foobranch" and "+branches/barbranch" should
> work from anywhere.
But there's a problem when creating a new branch:
svn cp $REPOSURL/trunk $REPOSURL/branches/bazbranch
Now I have:
trunk/ [svn:parallel:branches = (dir="../branches/*",chop=1)]
branches/ [svn:parallel:trunk = (dir="../trunk",chop=2)]
[svn:parallel:branches = (dir="./*",chop=2)]
foobranch/
barbranch/
bazbranch/ [svn:parallel:branches = (dir="../branches/*",chop=1)]
My new branch has no info about where trunk is and wrong info about the
branches.
Why not specify absolute path and set only one property containing
multiple lines like that:
svn propset svn:parallel "trunk project1/trunk
branches project1/branches/*
tags project1/tags/*" .
Then branching and tagging will neither lose properties nor inherit
properties with wrong values.
-Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 10 00:40:10 2005