Enterprise Architect includes tools to help you manage and review changes to your models over time. These tools apply the concepts of Baselines, Differencing and Merges.
You use Baselines, Differencing and Merges essentially to compare two snapshots of a specific part of your project, to capture the differences between them and either roll back or incorporate selected changes or all changes.
Enterprise Architect provides a facility to create a Baseline or 'snapshot' of the contents of a selected Package and its child Packages at a particular point in time; this enables you to later compare that branch of the model at that time with the current state of the branch.
Baselines are stored in the same XML format as is used for version control, but are stored within the project in compressed format.
You can also have parallel copies of parts of your model for team development, and create Baselines within each copy to merge changes into the project master.
Differencing (Diff, or Compare) helps you to explore the differences between:
- The current state of a specific part of your project, and
- Previous or parallel versions captured in a Baseline or an XMI 1.1 file on disk
Once Differencing is complete, you can merge information from the Baseline into the current project; it is not possible to go the other way.
- Merge information manually, change by change
- Merge information automatically by electing to merge in all changes in one batch procedure
- Revert completely to the original Baseline by importing the stored XMI directly
- Merge information and elements from a Baseline in a different project, making it possible to keep multiple versions of a single model in synch
The merge options are available through the toolbar, context menus and the keyboard on the 'Compare Utility' tab, which shows the results of a comparison.
Visual differences in diagrams
Changes to a model might include:
- Adding or removing elements and connectors on a diagram, or
- Changing the position of elements or the overall layout of a diagram
You might believe that a diagram has changed, and select to compare it with a baseline using a context menu option from the Project Browser. Alternatively, you might perform a baseline comparison on a Package or a model and select from the comparison output any diagrams that are flagged as changed.