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

> 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

View raw message