[oXygen-user] 3-way merge?
George Cristian Bina
Fri Aug 17 04:37:17 CDT 2007
Thanks for bringing up this issue.
Syncro SVN Client has 3way diff and merge support but provides that only
as text, that is no 3way XML diff support.
Now a little technical details.
When you have variant A, B and a common ancestor C a 3 way diff compares
both A and B against the common ancestor. Then it compares the result of
these two diff operations to decide if a change is incoming, outgoing or
What we get now from the diff is a set of mappings from one file to the
other. Let's take a simple case, a single change between A and C, an
addition and let's consider we have no changes between B and C. So what
we know is that something was added and we know the offset in C where
that was added. What we need to find is the offset in B. The problem
with XML is that in B that offset may be different, because although
there are no changes between B and C they can be represented in a
different form, see
In case of line based diff for instance the above problem is easily
solved as one can just count the lines in B and C to determine the
End technical details.
We plan to add 3way diff and merge XML aware support in oXygen in the
future, we know, as explained above, the problem and we have thought of
already of a couple of possible solutions. This is not scheduled however
for the very next release.
George Cristian Bina - http://aboutxml.blogspot.com/
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> The XML Diff/Merge tool that comes with Oxygen looks pretty nice. However
> there doesn't seem to be provision for a 3-way merge (using a common ancestor).
> This kind of merge is a common requirement when a repository of XML documents
> is continually modified by a distributed team or company; users need to keep
> merging others' changes to documents with their own changes before committing
> modified documents to the repository. This would tie in well with the Synchro
> SVN client, which allows you to perform merges in exactly this situation, but
> apparently without the benefit of common-ancestor-awareness (?), or at least
> without XML-awareness and common-ancestor-awareness at the same time.
> Are there any plans to incorporate 3-way (common ancestor) merge into Oxygen
> Diff/Merge tool?
> oXygen-user mailing list
More information about the oXygen-user