dita branch and merge: a dream or a nightmare?

18
DITA branch and merge: A dream or a nightmare? Tristan Mitchell DeltaXML Jean-François Ameye IXIASOFT

Upload: deltaxml

Post on 17-Jul-2015

199 views

Category:

Software


1 download

TRANSCRIPT

Page 1: DITA branch and merge: a dream or a nightmare?

DITA branch and merge:

A dream or a nightmare?

Tristan MitchellDeltaXML

Jean-François AmeyeIXIASOFT

Page 2: DITA branch and merge: a dream or a nightmare?

Unrealistic dreams

The Perfect Document

Correct first time and never needs changing

Page 3: DITA branch and merge: a dream or a nightmare?

Reality kicks in

Simple updates

v1 v1.1 v1.3v1.2

Change tracking and version diffing suffice

Page 4: DITA branch and merge: a dream or a nightmare?

The nightmare begins

v1 v1.1 v1.2

v2 v2.1

v3

Managing multiple branches

Page 5: DITA branch and merge: a dream or a nightmare?

The nightmare begins

Original image: http://nvie.com/posts/a-successful-git-branching-model/

Page 6: DITA branch and merge: a dream or a nightmare?

Dreaming the dream

Page 7: DITA branch and merge: a dream or a nightmare?

Shared nightmares

Page 8: DITA branch and merge: a dream or a nightmare?

Banishing the nightmare

Well-formed Valid Fewer conflicts

Cherry pick Auto-resolve GranularityIcons made by Freepik from www.flaticon.com are licensed under CC BY 3.0

Page 9: DITA branch and merge: a dream or a nightmare?

The dream becomes reality

Overview of branch merging in IXIASOFT DITACMS

Page 10: DITA branch and merge: a dream or a nightmare?

Implementing

DeltaXML Merge

in

IXIASOFT DITA

CMSCMS/DITA North America 2015

Page 11: DITA branch and merge: a dream or a nightmare?

Four steps process

1. Find files that have changed between versions

2. Run DeltaXML Merge on changed files

3. Transform resulting merge document to let the

user select the changes to apply

4. Save merged file in the CMS

Page 12: DITA branch and merge: a dream or a nightmare?

Run DeltaXML Merge

• The DITA CMS provides three files to DeltaXML:

the common ancestor, the source and the target

• For now, we’ve only implemented the merge feature for two versions only

Page 13: DITA branch and merge: a dream or a nightmare?

Run DeltaXML Merge

• DeltaXML returns a “merged file”, which contains

additional XML markup to indicate the changes

The merged file contains non-DITA markup that indicate

the changes as well as their source

Page 14: DITA branch and merge: a dream or a nightmare?

DeltaXML merged file

Page 15: DITA branch and merge: a dream or a nightmare?

Transform merged file

• The merged file can be transformed back into

standard DITA by using XSLT

Whether to “accept” the changes automatically, or how

to present them to the user, is up to the application

• In the DITA CMS, we decided to transform the

changes into track changes information for the

XML editor, and let the user accept them

In this demo, we have transformed the changes into

oXygen track changes processing-instructions.

Page 16: DITA branch and merge: a dream or a nightmare?

Merged file presented to the user

Page 17: DITA branch and merge: a dream or a nightmare?

Dreaming new dreams

What other possibilities could merge provide?

Page 18: DITA branch and merge: a dream or a nightmare?

Summary

Simple workflowsUse change tracking and diffing to manage change

Complex branchingUse an XML specific merge tool to move changes between branches

Merge tool requirementsWell-formed results

Valid results

Minimize conflicts

Cherry-pick changes

Auto-resolve conflicts

Configurable granularity

Questions?