On 07.09.2013 12:47, Greg Stein wrote:
> On Thu, Sep 5, 2013 at 6:51 AM, Branko Čibej <[email protected]> wrote:
>> ...
>> For the server->client-mixed-revision
>> scenario, I now believe this is not the case.
> I'm curious why a move() would be sent to a client.
Off the top of my head:
* It would help find better solutions to a category of tree conflicts
that we currently do not handle very well.
* It allows the client to optimize working copy changes, issueing
filesystem-level moves of files and directories instead of rewriting
and deleting them. In large working copies, a rename of a directory
can be very expensive in the current copy+delete implementation.
But I'm astounded that you'd even consider having an asymmetric editor
API. After all, it's not constrained to client<->server communication.
It seems obvious to me in hindsight that Ev2 was designed mostly with
the client->server direction in mind, and kind of ignored the issues on
the working-copy side. I don't mean implementation details such as the
NODES table; those can't be used as valid arguments for defining API
semantics. But high-level features such as mixed-revision working
copies, switched subtrees, sparse trees etc. do have a non-trivial impact.
-- Brane
--
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. [email protected]