[ 
https://issues.apache.org/jira/browse/OAK-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13511431#comment-13511431
 ] 

Thomas Mueller commented on OAK-464:
------------------------------------

> Making this available through the MicroKernel API as Jukka suggested wouldn't 
> increase complexity.

Well, it would increase complexity of the MicroKernel implementations. And 
given that we want to write one instance of oak-core, but multiple 
implementations of the MicroKernel, I would rather have the complexity in 
oak-core and not in the MicroKernel implementations.

Instead of pushing complexity down to the MicroKernel implementations, I 
suggest to solve the problem in the higher level, that is, in oak-core.

Instead of just remembering the current state, and doing a 3-way merge in 
oak-core, I suggest to keep the operations as list (move operation, add node 
operation, remove node operation, copy operation, set property operation). That 
way, a rebase within oak-core is trivial: simply re-apply the operation list. 
Also, the problem of move operations would be solved.


                
> RootImpl.rebase() doesn't handle move operations correctly
> ----------------------------------------------------------
>
>                 Key: OAK-464
>                 URL: https://issues.apache.org/jira/browse/OAK-464
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>            Reporter: Michael Dürig
>
> Doing {{RootImpl.rebase()}} causes moves to be changed to remove followed by 
> add. Which causes moves of large sub trees to become very expensive.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to