You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Alex Parvulescu (JIRA)" <ji...@apache.org> on 2017/05/23 09:06:04 UTC

[jira] [Updated] (OAK-3381) Provide Common Ancestor To ConflictHandler

     [ https://issues.apache.org/jira/browse/OAK-3381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Parvulescu updated OAK-3381:
---------------------------------
    Attachment: OAK-3381-v0.patch

wanted to see how difficult this is to achieve with minimal API changes, and this is what I got. the patch also includes part of OAK-3374 as I also wanted to implement the changes for testing.

The tricky bits:
* I only focused on the "property change change" scenario. not sure we need to expand to a bigger focus right away.
* passing the property base state for the 3w merge was tricky. the idea was to add it to the conflict node but it makes for an awkward way of separating real properties from base properties. maybe I missed something here.
* I introduced the {{ThreeWayConflictHandler}} extension with the idea that those who need the extended features can implement this interface, and the apis can remain unchanged for now.

[~mduerig], [~anchela] feedback appreciated.



> Provide Common Ancestor To ConflictHandler
> ------------------------------------------
>
>                 Key: OAK-3381
>                 URL: https://issues.apache.org/jira/browse/OAK-3381
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.3.5
>            Reporter: Dominique Jäggi
>            Assignee: Michael Dürig
>             Fix For: 1.8
>
>         Attachments: OAK-3381-v0.patch
>
>
> currently _ConflictHandler_s are provided _ours_ and _theirs_, reflecting a memory state and persisted state of changes to the same root resulting in a conflict.
> unfortunately the information provided to _ConflictHandlers_ does not include the common ancestor, needed for meaningful change-change merges (three-way merge).
> the core should be enhanced to provide such information to _ConflictHandlers_.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)