Structured Diff Viewer Screenshots: C# and Delphi difference viewer
The screenshots show Pascal and C# examples.
Structured Difference - navigation overview
ModelMaker Structured Difference Viewer does not care about white space or locations. This helps you focus on actual changes. The navigation tree (left) shows modified entities such as classes, methods and properties. The difference editors (right) show the change details for the selected entity - in this screenshot the module. The change details contain everything except the ripped out classes.
Structured Difference - Method change Details
The change details for method TFoo.Bar that was moved to a different location in source. Structured Difference allows focusing on the actual changes because it ignores location. Compare this for example with the regular file based difference that reports the entire method as new and deleted and therefore making the actual changes untraceable.
Class Difference - compare any two classes in any two files
Class Difference builds a structured difference for any two classes from any two files. This allows you for example to
- Compare renamed classes and methods in different files.
- Trace detailed changes for classes that are similar but not identical.
- See structured differences for classes where methods have been reorganized (moved) into several other classes.
The screenshot shows the class difference for two similar Eco framework classes named ChildClass and ParentClass. Note that identical members are hidden by default.
Method Difference - compare any two methods in any two classes
Method difference is similar to Class difference except that it also allows comparing methods with different names.
The screenshot shows the detailed changes for similar constructors in different classes having different method names.
File based Difference
Regular file based difference viewers report lots of changes - even if nothing relevant changed - if entities such as methods are just moved to a different location in the same file.
Check for example method TFoo.Bar. This was moved to another position and is reported as entirely new on the right and deleted on the left. The actual changes inside this method are no longer traceable.
Also changing white space lets file based differences report unnecessary changes. Check for example property Identical that spans multiple lines on the right.