On Mon, Mar 22, 2010 at 17:59, Philip Martin <philip.martin_at_wandisco.com> wrote:
> Greg Stein <gstein_at_gmail.com> writes:
>
>> The tree at copied-here should only have WORKING nodes. No BASE nodes.
>>
>> If it has BASE nodes, then that is a bug.
>>
>> The tree is distinguished as a copy because of the copyfrom_*
>> information at the operation root. All the children have empty
>> copyfrom_* data. If you make a second copy into that tree, then that
>> new subtree will have copyfrom_* at its root.
>
> My question was about an add rather than a second copy. Consider
>
> $ svn cp $url/A wc
> $ svn add wc/A/Y
>
> Suppose $url/A contains $url/A/X. How do I distinguish between a
> copied child, like wc/A/X, and an added node like wc/A/Y? Neither has
> copyfrom set. How do I know that A/X inherits from it's parent A
> while A/Y does not?
Yes, you brought up this hole in the design a while back, and we've
had some discussion on ways to solve it. As Bert points out, you can
use changed_* to detect the local-add, rather than local-copies.
We may introduce a special copyfrom_* value to indicate "local-add"
rather than "copy-from". Or maybe rely on changed_*. It is unclear on
what is the best approach right now.
Cheers,
-g
Received on 2010-03-23 09:12:09 CET