Applying line based diff algorithms for detecting the changes in XML documents when a versioning system is used is not ideal, as these algorithms ignore the XML structure and thus they present a lot more changes than the actual XML changes. A three-way XML-aware comparison of documents solves this problem. This is one of the core functionality we have been working on during the last months and which we hope to make generally available in the next oXygen version. Another interesting aspect is the possibility to compare documents in the Author visual editing mode instead of the Text editing mode - this is another area that we explored and we want to share the results with you.
2. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Overview
● Three-way documents comparison
● Using an XML algorithm for three-way
comparison
● Visualize and merge modifications in the Author
mode
3. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Three-way Diff
● Used when commit/reintegrate changes in a
document
● Visualize and merge the modified content
4. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Documents Workflow
Modify
Modify
Commit
Commit
Two-way
compare
Two-way
compare
5. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Documents Workflow
Modify
Commit
Modify
Commit
Two-way
compare
Three-way
compare
6. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Three-way Compare
Both Local and Remote
Modifications
Three-way compare
Remote modifications
Two-way compare
Local Modifications
Two-way compare
7. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Three-way Diff
● Used by versioning systems (such as GIT, SVN,
Mercurial)
– Review modified content
– Solve conflicts
8. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Three-way Diff in <oXygen/>
● Available in Syncro SVN Client
● Based on the “Lines” algorithm
● Limitation if parts of the documents are rearranged
or when you want to ignore nodes
9. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Three-way XML Diff
● Marks the differences correctly also when the
document structure is rearranged
● Merge only XML-relevant modifications
10. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
XML Diff Ignore Options
● Processing instructions
● Comments
● CData
● DOCTYPE
● Text
● Attributes order
● Namespace and prefixe
11. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Second-Level Diff
● Easily spot the differences in text content
● Merge the exact modification
12. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Visual Diff
● Visualize modifications in the Author page
● Merge modifications in the Author page
13. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Visual Diff Ignore Options
● Processing instructions
● Comments
● CData
● DOCTYPE
● Text
● Attributes order
● Namespace and prefix
14. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Visual Diff Second-Level
● Simultaneously highlight of text block
modifications and word-level differences
● Merge only the modified words
15. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Visual Diff Merge
● Copy all non-conflicting modifications
● Manage each difference
● In-place widget for quicker access
● Navigate through block of differences and
word-level differences
16. Three-way XML DiffThree-way XML Diff
Copyright @ Syncro Soft, 2016. All rights reserved.
Thank you!
Questions?
<oXygen/> XML Editor
http://www.oxygenxml.com
octavian_nadolu@oxygenxml.com
@OctavianNadolu