On 12.09.2013 12:14, Julian Foad wrote:
> Branko Čibej wrote:
>> On 11.09.2013 17:21, Julian Foad wrote:
>>> One issue that may be harder than it sounds at first is the concept of
>>> 'node-line-id' rather than (node-id, copy-id) as the basis of the
>>> definition.  The point is that when we copy (ordinary copy, not move)
>>> a directory, we lazy-copy the children,
>> No we do not. I pointed out this fallacy before. We lazy-copy a child of
>> a copied directory *when* and *if* that child is itself modified through
>> the copied parent.
> Here you simply misunderstood me.  As you know, a lazy copy consists of 
> two parts: first we just refer to the old id, and (later, or never) we 
> copy the content and assign a new id.  When I said "we lazy-copy the 
> children" I meant the former; you're using the same verb phrase to mean 
> the latter.  I'm sorry you found that confusing.  Perhaps we can both 
> try to be more explicit in future.
>
> FWIW it seems to me that the first part is the lazy part of the whole 
> operation; the second part is where we pay for the earlier laziness.  I 
> searched in Subversion's source tree, in the book, and in the World-Wide
> Web, and couldn't find any precedent for "lazy copy" referring to just 
> one half of the procedure.

Right. A possibly less confusing term would be "shared representation"
and "copy on write" because that's what we actually do, depending on the
path to which the write applies.

That said, I still do not understand why a different ID would be needed
before the copy-on-write happens. Is it because the client doesn't have
the full history available? If that's the case, I suggest we explore
this on a case-by-case basis, including determining how the initial
state of a working copy for each case can actually occur.

-- Brane


-- 
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. br...@wandisco.com

Reply via email to