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

Thomas Mueller commented on OAK-536:
------------------------------------

> This will not be a problem for oak-core since oak-core applies changes to 
> private branches and will merge these on Session.save

I know I repeat myself but I don't think this is the best solution, because if 
the MicroKernel is remoted, then you end up with 3 remote calls (branch, 
commit, merge) instead of just one (commit).

> Before merging, branches are rebased and that's the place where the more 
> complicated conflict handling should go

I think conflict handling should be used if the merge fails, or of the commit 
fails.

> Due to rebasing the subsequent merge will not conflict any more.

The merge can still conflict: if another change was committed in a different 
cluster node (a different oak-core installation) between the getHeadRevision 
and merge.

> I chose annotations because this matches the current code in oak-core most 
> closely

Yes, but this solution can't be used when you want to do conflict handing in 
commit (at least I don't know how it could be used)


                
> Implement rebase for branches in Microkernel
> --------------------------------------------
>
>                 Key: OAK-536
>                 URL: https://issues.apache.org/jira/browse/OAK-536
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mk, mongomk
>            Reporter: Michael Dürig
>         Attachments: OAK-536.patch, OAK-536.patch
>
>
> As discussed at length in OAK-464 and on the 
> [list|http://markmail.org/message/4xwfwbax3kpoysbp], having the ability to 
> rebase Microkernel branches on top of a different revision than the one the 
> branch was originally branched from, helps for resolving conflicts. Both in 
> the distributed cluster case and for concurrent commits from user sessions. 
> Since we didn't come to a conclusion where this functionality should be best 
> implemented, I did a [POC 
> implementation|https://github.com/mduerig/jackrabbit-oak/commit/42e8d60132ca2207c03fa79fd1ddca22406fc58a]
>  for oak-core in OAK-464. In order to make an informed decision on how to 
> proceed we should also POC this functionality for the Microkernel.

--
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