The Compare Utility (Diff)
Enterprise Architect has a comprehensive and powerful differencing utility built in. This utility enables you to compare a model branch in Enterprise Architect with:
- A Baseline created using the Baseline functionality (Corporate, Business and Software Engineering, System Engineering and Ultimate editions)
- A Baseline stored in a different model
- An XML 1.1 file on disk created previously using the Enterprise Architect XML export facility (user selects file), or
- The current version-controlled XMI 1.1 file on disk as created when using Version Control in Enterprise Architect (file automatically selected).
Compare (diff) lets you explore what has changed within a model over time and how previous versions of a model branch differ from what is currently in the model. It is even possible to do a full model comparison by exporting all of Model A to XMI, then using Compare Model to File from within the current model (Model B).
Comparing and checking model development at various points in the process is an important aspect of managing change and development, keeping track of what is being modified and ensuring the development and design process is on track.
Access to the Compare utility is available from:
- The Baseline dialog; from the Project Browser context menu, select the Package Control | Manage Baselines option.
- The Project Browser context menu; select Package Control | Compare with XMI File (for a package not under version control).
- The Project Browser context menu; select Package Control | Compare with Controlled Version (for a package under version control).
Differencing With Baselines
As a Baseline is stored within a model and contains all the information, elements and connections for a package at a point in time, it can be used within Enterprise Architect to track changes to model elements over time. The Differencing engine first builds a representation of the current package in memory, based on what is currently in the model. It then compares this with the stored Baseline, highlighting changes, new elements, missing elements and elements that have been moved to other packages. It is possible to filter the resultant output to display only one particular kind of change: for example, additions to the model.
If a Baseline has been created to ignore child package content, a comparison between that Baseline and the model does not include any child package content in the model.
See Example Comparison for an example of a model comparison.