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

Jukka Zitting commented on OAK-464:
-----------------------------------

bq. I don't know what a rebase does exactly, could you describe this in more 
detail?

Consider for example:

{code}
String base = mk.getHeadRevision();
mk.commit("/", ">/a:/b", base, null);
mk.commit("/", "+/a/x:0", base, null);
{code}

Given the move in the first commit, the second commit in this case should be 
interpreted as {{"+/b/x:0"}} since the property change refers to the original 
/a node in the base revision that was meanwhile moved to /b.

Basically the rebase operation takes a given commit and reapplies the contained 
changes on top of another base revision (typically the head revision).

                
> 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