SlideShare a Scribd company logo
1 of 23
Download to read offline
Octavian Nadolu
octavian_nadolu@oxygenxml.com
@OctavianNadolu
How to integrate
<oXygen/> XML compare
and merge tools
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Overview
● XML documents comparison
● Integrate <oXygen/> XML Diff as external tool
● Merging directories or a set of files
● Using the merge support form a plugin
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
XML Comparison
● More and more XML-based documents are
used for technical documentation
● Documents stored on versioning systems or
CSMs
● Contributors can work in the same time on the
same files
● Integrating the modifications can be a challenge
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Comparison Challenges
● Most built-in applications are using text
comparison
● It is important to use an XML comparison tool
● Compare against a base to determine the
changes
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Documents Workflow
Modify
Commit
Modify
Commit
Two-way
compare
Three-way
compare
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Three-way Compare
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Diff and Merge Tools
Oxygen provides tools to visualize and merge
the changes
– Diff Directories (2-Way)
– Diff Files (2-Way and 3-Way)
– Compare Directories Against a Base (3-Way)
– Automatic file merge tool (3-Way)
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Integrating Diff Files Tool
Diff Files tool can be integrated as an external application
Command line parameters:
diffFiles.bat [-ext] [leftFile] [rightFile] [ancestorFile] [mergeOutputFile]
[-leftRO=true | false] [-rightRO=true | false]
-ext – instructs the application that it is used as an external comparison tool for
another application
leftFile – the file that will be displayed on the left side
rightFile – the file that will be displayed on the right side
ancestorFile – the base (ancestor) file
mergeOutputFile – the merge output/result file. Will be displayed in the left side and its initial
content will be the left file content
-leftRO – enables (true) or disables (false) editing of the left-side file
-rightRO – enables (true) or disables (false) editing of the right-side file
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
SourceTree Compare
SourceTree Compare View
Oxygen XML Diff
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Integrate with SourceTree
Configure the External Diff tool in SourceTree Options
dialog, in the Diff tab.
"Diff Command"
[Oxygen install dir]/diffFiles.exe, and for
"Arguments" -ext $REMOTE $LOCAL $LOCAL
"Merge Tool"
[Oxygen install dir]/diffFiles.exe, and for the
"Arguments" -ext $LOCAL $REMOTE $BASE $MERGED
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Integrate with Command Line Git
To configure git to use a <oXygen/> Diff Files for comparison you need to
add the following lines in the ".gitconfig" file:
[diff]
tool = oxygendiff
[merge]
tool = oxygendiff
[difftool "oxygendiff"]
cmd = '[Oxygen install dir]/diffFiles.exe' -ext $REMOTE $LOCAL $LOCAL
[mergetool "oxygendiff"]
cmd = '[Oxygen install dir]/diffFiles.exe' -ext $LOCAL $REMOTE $BASE $MERGED
trustExitCode = true
[difftool]
prompt = false
For MacOSX you need to specify the path to the "diffFilesMac.sh", for Linux "diffFiles.sh"
Run Oxygen Diff Files from command line using: "git difftool file.xml".
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Integrate with Command Line Git
Or you can run the following commands from the command line:
git config --global diff.tool oxygendiff
git config --global difftool.oxygendiff.cmd '[Oxygen install dir]/diffFiles.exe -ext
$REMOTE $LOCAL $LOCAL'
git config --global merge.tool oxygendiff
git config --global mergetool.oxygendiff.cmd '[Oxygen install dir]/diffFiles.exe
-ext $LOCAL $REMOTE $BASE $MERGED'
git config --global mergetool.oxygendiff.trustExitCode true
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Compare Dirs Against a Base
● Identify and merge changes between multiple
modifications of the same directory structure
● Helpful for teams that have multiple authors
contributing documents to the same directory
system
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Compare Dirs Against a Base
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Compare Dirs Against a Base
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Compare Dirs Against a Base
Offers information about conflicts and changes, and includes
actions to easily merge, accept, overwrite, or ignore changes
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Integrate Merge Tool from Plugins
API to start 3-Way Directory Comparison Merge Tool
List<MergedFileState> DiffAndMergeTools.openMergeApplication(
baseDir,
personalModifiedFilesDir,
externalModifiedFilesDir,
mergeOptions)
baseDir – The directory containing initial, unaltered files.
personalModifiedFilesDir – The directory containing the files modified by you. These files are
modified during the merging.
externalModifiedFilesDir – The directory containing the files modified by others.
mergeOptions – The options used in the merge operation. The keys that can be used in
this map are found in MergeFilesOptionsConstants.
Obtain the list with the modified files and there status (deleted, added, modified).
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Merge Options
● Constants defined in MergeFilesOptionsConstants:
– FILTER_MODES_KEY - default state of the filter buttons
– MERGE_DIALOG_TITLE - title of the merge dialog
– VIRTUAL_PATH_FOR_PERSONAL_MODIFIED_FILES_DIRECTORY
● It can be useful if you plan to do the merging in a temporary directory
● The dialog can use this option to hide the real temporary directory path from
the user
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Merge Dialog Use Cases
● Integrate changes on a CMS
● Integrate changes on your local system
● Preview some modifications
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Automatic Merge in Web Author
https://www.oxygenxml.com/doc/versions/18.1.0/ug-webauthor/topics/using-webapp-github.html
Allows the user to automatically merge his changes
with the changes made by other people
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Automatic Merge File Content
API to automatically merge files content:
MergeResult XMLUtilAccess.threeWayAutoMerge(ancestor, left, right,
conflictResMeth)
ancestor – The original file string which has been modified into left
and right.
left – The left version of the file string, the one with "our"
changes.
right – The right version of the file string, the one with "others"
changes.
conflictResMeth – The conflict resolution method to use.
Returns a merged file string where conflicts are resolved by using the left
version of the file
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Delta XML Plugin for <oXygen/>
https://www.deltaxml.com/products/plugins/oxygen-plugin
Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff
Copyright @ Syncro Soft, 2017. All rights reserved.
Thank you!
Questions?
<oXygen/> XML Editor
http://www.oxygenxml.com
octavian_nadolu@oxygenxml.com
@OctavianNadolu

More Related Content

Similar to How to integrate oXygen XML diff and merge tools

Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlModule 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlIBM Rational software
 
Maximize Your oXygen Usage - oXygen XML, Syncro Soft
Maximize Your oXygen Usage - oXygen XML, Syncro SoftMaximize Your oXygen Usage - oXygen XML, Syncro Soft
Maximize Your oXygen Usage - oXygen XML, Syncro SoftIXIASOFT
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Edureka!
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngineGreen Egg Media
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09Bastian Feder
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Suite Solutions
 
ownCloud overview and tutorial
ownCloud overview and tutorialownCloud overview and tutorial
ownCloud overview and tutorialwskoczen
 
oXygen Content Fusion
oXygen Content FusionoXygen Content Fusion
oXygen Content Fusiongeorgebina
 
CICON2010: Adam Griffiths - CodeIgniter 2
CICON2010: Adam Griffiths - CodeIgniter 2CICON2010: Adam Griffiths - CodeIgniter 2
CICON2010: Adam Griffiths - CodeIgniter 2CodeIgniter Conference
 
Jmorrow rtv den_auto_config_rapidclone
Jmorrow rtv den_auto_config_rapidcloneJmorrow rtv den_auto_config_rapidclone
Jmorrow rtv den_auto_config_rapidcloneMlx Le
 
Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the AutotoolsScott Garman
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and GitAlec Clews
 
CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsSuite Solutions
 
dylibencapsulation
dylibencapsulationdylibencapsulation
dylibencapsulationCole Herzog
 

Similar to How to integrate oXygen XML diff and merge tools (20)

Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source ControlModule 3: Working with Jazz Source Control
Module 3: Working with Jazz Source Control
 
Maximize Your oXygen Usage - oXygen XML, Syncro Soft
Maximize Your oXygen Usage - oXygen XML, Syncro SoftMaximize Your oXygen Usage - oXygen XML, Syncro Soft
Maximize Your oXygen Usage - oXygen XML, Syncro Soft
 
Drupal 8 Configuration Management
Drupal 8 Configuration ManagementDrupal 8 Configuration Management
Drupal 8 Configuration Management
 
Git and github
Git and githubGit and github
Git and github
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
 
The Galaxy toolshed
The Galaxy toolshedThe Galaxy toolshed
The Galaxy toolshed
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
 
ownCloud overview and tutorial
ownCloud overview and tutorialownCloud overview and tutorial
ownCloud overview and tutorial
 
oXygen Content Fusion
oXygen Content FusionoXygen Content Fusion
oXygen Content Fusion
 
.Net assembly
.Net assembly.Net assembly
.Net assembly
 
CICON2010: Adam Griffiths - CodeIgniter 2
CICON2010: Adam Griffiths - CodeIgniter 2CICON2010: Adam Griffiths - CodeIgniter 2
CICON2010: Adam Griffiths - CodeIgniter 2
 
Jmorrow rtv den_auto_config_rapidclone
Jmorrow rtv den_auto_config_rapidcloneJmorrow rtv den_auto_config_rapidclone
Jmorrow rtv den_auto_config_rapidclone
 
Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the Autotools
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 
CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputs
 
dylibencapsulation
dylibencapsulationdylibencapsulation
dylibencapsulation
 
Ab initio training Ab-initio Architecture
Ab initio training Ab-initio ArchitectureAb initio training Ab-initio Architecture
Ab initio training Ab-initio Architecture
 

More from Octavian Nadolu

YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenOctavian Nadolu
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Octavian Nadolu
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOctavian Nadolu
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen ScriptingOctavian Nadolu
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOctavian Nadolu
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIOctavian Nadolu
 
Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON SchemaOctavian Nadolu
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge ScriptsOctavian Nadolu
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML LanguagesOctavian Nadolu
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenOctavian Nadolu
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing ValidationOctavian Nadolu
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronOctavian Nadolu
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to SchematronOctavian Nadolu
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertOctavian Nadolu
 
The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019Octavian Nadolu
 
Collaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation ProcessCollaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation ProcessOctavian Nadolu
 

More from Octavian Nadolu (20)

YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In Oxygen
 
Oxygen JSON Editor
Oxygen JSON EditorOxygen JSON Editor
Oxygen JSON Editor
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in Oxygen
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen Scripting
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and Documenting
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPI
 
Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON Schema
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
 
JSON Schema Design
JSON Schema DesignJSON Schema Design
JSON Schema Design
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML Languages
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in Oxygen
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing Validation
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO Schematron
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to Schematron
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and Convert
 
The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019The Power Of Schematron Quick Fixes - XML Prague 2019
The Power Of Schematron Quick Fixes - XML Prague 2019
 
Collaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation ProcessCollaboration Tools to Help Improve Documentation Process
Collaboration Tools to Help Improve Documentation Process
 
Schematron step-by-step
Schematron step-by-stepSchematron step-by-step
Schematron step-by-step
 

Recently uploaded

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 

Recently uploaded (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 

How to integrate oXygen XML diff and merge tools

  • 1. Octavian Nadolu octavian_nadolu@oxygenxml.com @OctavianNadolu How to integrate <oXygen/> XML compare and merge tools
  • 2. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Overview ● XML documents comparison ● Integrate <oXygen/> XML Diff as external tool ● Merging directories or a set of files ● Using the merge support form a plugin
  • 3. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. XML Comparison ● More and more XML-based documents are used for technical documentation ● Documents stored on versioning systems or CSMs ● Contributors can work in the same time on the same files ● Integrating the modifications can be a challenge
  • 4. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Comparison Challenges ● Most built-in applications are using text comparison ● It is important to use an XML comparison tool ● Compare against a base to determine the changes
  • 5. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Documents Workflow Modify Commit Modify Commit Two-way compare Three-way compare
  • 6. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Three-way Compare
  • 7. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Diff and Merge Tools Oxygen provides tools to visualize and merge the changes – Diff Directories (2-Way) – Diff Files (2-Way and 3-Way) – Compare Directories Against a Base (3-Way) – Automatic file merge tool (3-Way)
  • 8. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Integrating Diff Files Tool Diff Files tool can be integrated as an external application Command line parameters: diffFiles.bat [-ext] [leftFile] [rightFile] [ancestorFile] [mergeOutputFile] [-leftRO=true | false] [-rightRO=true | false] -ext – instructs the application that it is used as an external comparison tool for another application leftFile – the file that will be displayed on the left side rightFile – the file that will be displayed on the right side ancestorFile – the base (ancestor) file mergeOutputFile – the merge output/result file. Will be displayed in the left side and its initial content will be the left file content -leftRO – enables (true) or disables (false) editing of the left-side file -rightRO – enables (true) or disables (false) editing of the right-side file
  • 9. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. SourceTree Compare SourceTree Compare View Oxygen XML Diff
  • 10. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Integrate with SourceTree Configure the External Diff tool in SourceTree Options dialog, in the Diff tab. "Diff Command" [Oxygen install dir]/diffFiles.exe, and for "Arguments" -ext $REMOTE $LOCAL $LOCAL "Merge Tool" [Oxygen install dir]/diffFiles.exe, and for the "Arguments" -ext $LOCAL $REMOTE $BASE $MERGED
  • 11. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Integrate with Command Line Git To configure git to use a <oXygen/> Diff Files for comparison you need to add the following lines in the ".gitconfig" file: [diff] tool = oxygendiff [merge] tool = oxygendiff [difftool "oxygendiff"] cmd = '[Oxygen install dir]/diffFiles.exe' -ext $REMOTE $LOCAL $LOCAL [mergetool "oxygendiff"] cmd = '[Oxygen install dir]/diffFiles.exe' -ext $LOCAL $REMOTE $BASE $MERGED trustExitCode = true [difftool] prompt = false For MacOSX you need to specify the path to the "diffFilesMac.sh", for Linux "diffFiles.sh" Run Oxygen Diff Files from command line using: "git difftool file.xml".
  • 12. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Integrate with Command Line Git Or you can run the following commands from the command line: git config --global diff.tool oxygendiff git config --global difftool.oxygendiff.cmd '[Oxygen install dir]/diffFiles.exe -ext $REMOTE $LOCAL $LOCAL' git config --global merge.tool oxygendiff git config --global mergetool.oxygendiff.cmd '[Oxygen install dir]/diffFiles.exe -ext $LOCAL $REMOTE $BASE $MERGED' git config --global mergetool.oxygendiff.trustExitCode true
  • 13. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Compare Dirs Against a Base ● Identify and merge changes between multiple modifications of the same directory structure ● Helpful for teams that have multiple authors contributing documents to the same directory system
  • 14. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Compare Dirs Against a Base
  • 15. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Compare Dirs Against a Base
  • 16. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Compare Dirs Against a Base Offers information about conflicts and changes, and includes actions to easily merge, accept, overwrite, or ignore changes
  • 17. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Integrate Merge Tool from Plugins API to start 3-Way Directory Comparison Merge Tool List<MergedFileState> DiffAndMergeTools.openMergeApplication( baseDir, personalModifiedFilesDir, externalModifiedFilesDir, mergeOptions) baseDir – The directory containing initial, unaltered files. personalModifiedFilesDir – The directory containing the files modified by you. These files are modified during the merging. externalModifiedFilesDir – The directory containing the files modified by others. mergeOptions – The options used in the merge operation. The keys that can be used in this map are found in MergeFilesOptionsConstants. Obtain the list with the modified files and there status (deleted, added, modified).
  • 18. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Merge Options ● Constants defined in MergeFilesOptionsConstants: – FILTER_MODES_KEY - default state of the filter buttons – MERGE_DIALOG_TITLE - title of the merge dialog – VIRTUAL_PATH_FOR_PERSONAL_MODIFIED_FILES_DIRECTORY ● It can be useful if you plan to do the merging in a temporary directory ● The dialog can use this option to hide the real temporary directory path from the user
  • 19. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Merge Dialog Use Cases ● Integrate changes on a CMS ● Integrate changes on your local system ● Preview some modifications
  • 20. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Automatic Merge in Web Author https://www.oxygenxml.com/doc/versions/18.1.0/ug-webauthor/topics/using-webapp-github.html Allows the user to automatically merge his changes with the changes made by other people
  • 21. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Automatic Merge File Content API to automatically merge files content: MergeResult XMLUtilAccess.threeWayAutoMerge(ancestor, left, right, conflictResMeth) ancestor – The original file string which has been modified into left and right. left – The left version of the file string, the one with "our" changes. right – The right version of the file string, the one with "others" changes. conflictResMeth – The conflict resolution method to use. Returns a merged file string where conflicts are resolved by using the left version of the file
  • 22. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Delta XML Plugin for <oXygen/> https://www.deltaxml.com/products/plugins/oxygen-plugin
  • 23. Integrate <oXygen/> XML DiffIntegrate <oXygen/> XML Diff Copyright @ Syncro Soft, 2017. All rights reserved. Thank you! Questions? <oXygen/> XML Editor http://www.oxygenxml.com octavian_nadolu@oxygenxml.com @OctavianNadolu