jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-536) Implement rebase for branches in Microkernel
Date Wed, 16 Jan 2013 14:00:13 GMT

    [ 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

Mime
View raw message