[
https://issues.apache.org/jira/browse/OAK-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13511456#comment-13511456
]
Thomas Mueller commented on OAK-464:
------------------------------------
> Please go back to
> https://issues.apache.org/jira/browse/OAK-464?focusedCommentId=13511308
Sorry, what should I read again? As far as I see, this is my own comment.
Instead of linking to a previous comment, I suggest to quote instead.
> That particular functionality is already there in the Microkernel.
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. As I said, I would prefer it it is only
implemented once in oak-core. Having multiple implementations (which would be
needed if implemented in the MicroKernel API) would lead to (a) unnecessarily
complexity and (b) easily gets into bugs and incompatibilities.
> Making it more explicit will by no means increase complexity but rather to
> the contrary
It would increase complexity because it would need to be implemented multiple
times instead of just once.
> It will help clarifying a rather obscure part of the current Microkernel
> implementation: namely how conflicts are handled.
How conflicts are handled in the MicroKernel implementation should be
documented in detail, that is true. This doesn't mean that we need to add a new
method to the MicroKernel API and to each MicroKernel implementation however.
Instead of adding moving complexity into the MicroKernel implementations, I
suggest to implement it in oak-core. One solution is to use a "list of
operations" in oak-core instead of doing a 3-way-merge.
Another solution is to implement what Jukka described above ("The
implementation would be equivalent to something like this:") in oak-core, and
only extend the MicroKernel API specification to support getting the commit for
a commit in a branch (so that Jukkas "getBranchCommitsUntil" can be implemented
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