On Fri, May 18, 2012 at 1:57 AM, Greg Stein <gstein_at_gmail.com> wrote:
> On Fri, May 18, 2012 at 1:34 AM, Bert Huijben <bert_at_vmoo.com> wrote:
>>
>> Editor v1 only requires the revision for base node replacements and I
>> don't see why we need to change that for v2.
>>
>> If we copied a subtree from a revision we know that that revision
>> didn't change. How could it be out of date?
>
> The FS does not remember where changes came from, without some deep
> inspection. If we see "/some/path", then we don't know how it got
> there. Whether it started there, or whether it was copied there.
>
> Now... that said, I just realized that passing the parent revision
> will not work, because the path will not be found in that target
> revision.
>
> So, yeah: we need to somehow enable passing SVN_INVALID_REVNUM for the
> children of copies. That is equivalent to the Ev1 behavior: "I'm
> replacing an uncommitted item". It looks like we can use
> svn_fs_closest_copy() to determine if a txn node (or an ancestor) has
> been copied to that target location.
Some more thinking...
But we do need some sort of check in here. We should not allow add_*()
to overwrite a copied-child. But a copy() can do so IFF it is part of
a mixed-rev copy. But what about a secondary copy operation over a
child?
At some point, we just assume the client is working properly. Maybe we
just omit all OOD checks under copies. But that doesn't really manager
improper overwrites...
Hrm...
Received on 2012-05-18 08:07:08 CEST