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 "Michael Dürig (JIRA)" <ji...@apache.org> on 2017/05/23 10:16:04 UTC

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

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

Michael Dürig commented on OAK-3381:
------------------------------------

Looks good from a POC point of view. That is, AFAICS the patch touches the right points in order to pass the common ancestor up the chain. However there are a couple of loose ends:

* I wouldn't prefix the common base with {{:base:}} but rather introduce respective subnodes on the conflict marker node. One for "theirs" and one for "base". 
* Not sure whether we should add {{ThreeWayConflictHandler}} into the current implementation. I figure the complicates the implementation a lot and makes it more difficult further down the line to deprecate and eventually remove the old implementation. I don't think we need both of them in parallel in the long run. Maybe a better way would be to switch to the new implementation and for a while still support the old conflict handlers? After all the new implementation subsumes the old one. 

bq. I only focused on the "property change change" scenario. not sure we need to expand to a bigger focus right away.
I think we should implement this for all conflict types in the scope of this issue. Only implementing this for one conflict type lacks uniformity and will cause confusion and divergence later on.


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