In many cases, when consolidating a distribution file, it is useful to know the changes that it will perform on the KB before the consolidation takes place.
incorporates an Export Compare Tool that you can use it to compare differences between a distribution file with the current state of the Knowledge Base or two distribution files (xml or xpz extensions).
In the Consolidation Dialog, the button "Compare" was included. When pressing it GX calls this utility that makes a comparison between the distribution file objects and the state of the same objects in the KB.
The tool has a simple interface showing two panels. In the left panel KB objects (current objects) are showed and in the right panel the distribution file objects (newer objects). By default, the tool only shows the objects that have any difference.
Each node in the left tree has an associated node in the right tree. Each node has a status (different: red icon, equal: black icon, new: blue icon, deleted: blue icon).
Object Comparer Tool
Differences are shown in the "Value" column. For simple items like properties, the two values are presented, for complex items, like forms or rules, a link is included invoking the corresponding comparison in another form.
Object rules differences
For comparing code, like Rules, Events or Source, a configurable source comparison is used.
By default, a free comparer tool called DiffDotNet
is used. It is possible to change this setting if you have another source comparison tools (for example Beyond Compare
), modifying the "TextComparer" key in the xmlnodecomparer.exe.config file located under "Comparer" directory in GX installation.
When doing Form comparisons (either web or win), both forms are presented in order to let the developer sees the difference, as it can see in the following image:
HTML Viewer showing Web Form differences
You can configure the default html comparer on xmlnodecomparer.exe.config, changing the "WebForm.DiffTool" key.
You can also call the Comparer Tool from the command line, as follows:
XmlModelComparer <export file 1> <export file 2>
In case differences exist in Tables, you will see an attribute name instead of the table name as the Component key (first column). This is the expected behavior since a table is defined (and identified) by its primary key, so the first primary key attribute is considered as Table Component Key. The table name is a value that could change (it could appear in the second column)
Comments & Collaboration
Some source comparison tools:
If you know any other, please add it to the list.