You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

Introduction

 

diff-config-app-mockup.pdf

Download the CLICKABLE MOCKUP!

A Configuration Diff App trees to allow users to compare configuration, model new configuration based on existing configuration, and easily see what has changed in configuration. Have features that help compare and model Magnolia trees specifically including the ability to compare trees in the JCR with trees loaded from file, the ability to ignore order, and the ability to equate nodes of different names so that their subtrees can be compared with each other.

 

Use Cases

Model configuration based on existing configuration

  • The Problem: 
    • The user would like to create a business object such as a content app by basing it off of an existing content app
    • When the configuration is large, it is difficult to tell what one configuration has that the other may still need
    • It is tedious to create properties in the new business object to match the existing business object by hand or using duplicate/move
    • It is tedious to compare either by scrolling or by placing two windows next to each other
  • The Solution:
    • In the Compare Config App, select the root node for the baseline business object on the left of the split view and the root for the new business object on the right
    • Use the colored rows which highlight the differences to easily tell what nodes and properties the baseline business object has that the new business object does not
    • Use actions supplied by the Compare Config App to quickly migrate these differences from the baseline business object to the new business object
    • Use the colored rows to review the differences between the baseline and new business objects to make sure all differences are on purpose
    • Use sample business objects supplied by Magnolia to get started quickly

Know what to export and write version handlers for

  • The Problem:
    • After doing many edits in the configuration tree while working on a higher level goal, one is unsure what bootstrap files and/or version handlers need to be updated
  • The Solution:
    • Before starting on the higher level goal, one exports a snapshot of the configuration tree
    • After working on the higher level goal, in the Compare Config App, one loads the snapshot of the tree in the left of the split view and the current tree on the right of the split view
    • Use the colored rows which highlight the differences to easily tell what configuration has changed and needs to be updated in bootstrap files/version handlers
    • Use export actions supplied by the Compare Config App to quickly create new bootstrap files

Check bootstrap files and version handlers create the correct tree

  • The Problem:
    • After creating bootstrap files and version handlers, it is hard to tell if they faithfully recreate the configuration tree created by hand
  • The Solution:
    • One exports a snapshot of the configuration tree configured by hand
    • One deletes the repository and uses the bootstrap files and/or version handlers to recreate it
    • In the Compare Config App, load the snapshot of the hand-crafted tree in the left of the split view and the recreated tree on the right
    • Use the colored rows which highlight the differences to easily tell whether the configurations are the same, or whether any differences are intentional
    • If there are any mistakes, use export actions to quickly correct the bootstrap files

Analyze and merge changes from other developers

  • The Problem:
    • Several developers may make changes to bootstrap files at the same time and it is not clear how to merge these changes
  • The Solution:
    • In the Compare Config App, load one bootstrap file on the left and one on the right
    • Use the colored rows which highlight the differences to easily tell what one has that the other doesn't
    • Use actions supplied by the Compare Config App to quickly merge differences from one to the other
    • Use export actions supplied by the Compare Config App to quickly update the bootstrap files

Feature Overview

  • An app to compare and diff two different parts of the configuration tree, or two different configuration trees that can be loaded from file or the JCR
  • Uses either a split view or a collated view to display the trees being compared
  • Uses row colors to highlight differences between the trees
  • Can use the existing configuration tree in the JCR or load a tree from a previously exported to XML
  • Can pick the root for each tree to begin comparison from
  • Can define equivalences between nodes with different names in the two trees to treat them as if they have the same name
  • Can quickly create a node or property in one tree that the other tree has but this tree does not using actions
  • Can quickly navigate the differences one by one using actions
  • Can export modified trees to new XML files or update the original XML files
  • Can choose which order (left or right) to go by or to highlight differences in order
  • No labels