[
https://issues.apache.org/jira/browse/OAK-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526207#comment-13526207
]
Jukka Zitting commented on OAK-464:
-----------------------------------
bq. It might be implemented in one MicroKernel implementation in some specific
way. But if we add rebase to the MicroKernel API, would need to be implemented
it in multiple MicroKernel implementations.
This functionality is present in one way or another in *all* MicroKernel
implementations. It's nothing more or less than what the MK does for handling
the second commit in the example I included above:
{code}
String base = mk.getHeadRevision();
mk.commit("/", ">/a:/b", base, null);
mk.commit("/", "+/a/x:0", base, null);
{code}
As said, different MKs will likely implement that operation differently (some
just by throwing an exception, some by doing more complex rebasing).
The point here is that since *all* MKs already have this functionality, it
doesn't seem like a good idea to also do the same thing in another way in
oak-core.
> 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