Two KOffice and Calligra change tracking development branches in KDE's SVN and Git repositories have seen much development over the past ca. three months, mainly by the KOffice and Calligra developer Ganesh Paramasivam. These development branches were dedicated to the implementation of the proposed ODF Change Tracking format. While the Git transition has temporarily made browsing Calligra's history difficult, the KOffice SVN history of this project can easily be viewed at http://websvn.kde.org/branches/work/koffice-change-tracking/. Read on for Ganesh's description of these feature branches:
Historically the specification for tracking changes in ODF documents has had a lot of short-comings. Some of the use-cases that could not be supported by the ODF specification are:
- Changes in Tables
- Row deletions
- Column Deletions
- Horizontal and vertical cell merges
- Horizontal and vertical cell splits
- Detailed Format changes: Even though the spec marks the start and end of format change regions, it could not exactly specify what the changes were. If a text was changed from italic to bold, the spec could identify the region which was changed, but could not say that the text was changed from italic to bold.
- Complicated delete merge scenarios (e.g. deletion of a part of a paragraph and a part of a succeeding list)
Since the spec was lacking and unclear for these scenarios, implementations differed in the way they handled these scenarios, making interoperability impossible for documents containing change tracking information. Previous versions of KOffice had solved this problem by storing some of the change tracking information as RDF metadata. Using RDF, KWord could handle a lot of use-cases that were not supported by the spec. But this came at the cost of interoperability with other ODF implementations (such as OpenOffice).
To overcome these problems, DeltaXML (sponsored by NLNet) worked on a new format for storing change-tracking information that addresses the above-mentioned problems. This new format was formally proposed to the Technical Committee for incorporation into the ODF specification.
The "koffice/change-tracking" branch in the KOffice Git repository and the "words-change_tracking-ganeshp" branch in the Calligra repository are the primary development branches for the implementation of this proposed change tracking specification. The work on its implementation is also being sponsored by NLNet Foundation. The purposes of this work are:
- To test the implementation feasibility of the specification
- To have a working implementation that could be used as a reference for other implementors
- To have an interoperable and a robust change tracking feature in KWord and Calligra Words
Since both KOffice's KWord and Calligra Words originated from the same project, it has been possible to simultaneously implement this feature for both forks of the application. The list of use-cases that will be supported by this implementation can be found here.
Currently a new sub-committee has been formed to discuss these proposals and to finalize a separate specification for Change Tracking.