Prev Next

Brief Introduction

The Version Control feature allows you to check-out a Package, which then locks it so that no other user can modify it until you have checked it back in again. You can then modify the Package, adding new elements and diagrams, changing others and deleting still others.  When you have completed your changes and are ready for other modelers to see your work, you can check-in the Package. Other modelers would then need to do a Get Latest to pull the new changes down from the Version Control Server.

Enterprise Architect does not version the Packages internally; instead it integrates with industry standard Version Control servers, which an administrator must install and configure for use by Enterprise Architect. The files that Enterprise Architect uses are industry standard XMI files, which are best seen as 'binary' from the point of view of Version Control. This means that it is not possible for two modelers to be working on the same file, as it would not be possible to merge the files as is possible with source code or text files.

The basic steps to use Version Control are:

  1. Select and set up a Version Control Server and Client side Software.
  2. Place the required Packages under Version Control.
  3. Check Out a Package.
  4. Make modifications to the contents of the Checked Out Package.
  5. Check In the Package, entering comments that describe the changes.
  6. Compare the Repository Package with the Version Controlled Package.
  7. Retrieve (rollback to) a previous version.

Enterprise Architect's Version Control integration provides several key facilities, including:

  • Saving a history of changes made to your model's Packages
  • Retrieving previous revisions of Packages
  • Propagating model updates between team members
  • Coordinating the sharing of Packages between team members

Commissioning a Version Control System

You apply Version Control through a third-party source-code control application that manages access to and stores revisions of the controlled Packages. Once the Version Control software has been installed and configured, you or a librarian must define a Version Control Configuration within your project. You can then use Version Control to manage changes to the Packages of your model.

Configuring Packages

Before you can Check Out a package and begin making changes you or the librarian must first configure the package for Version Control. You simply select the Add Branch to Version Control option and choose an existing configuration. This to adds the package to the Version Control System and places the package in a Checked-In state.

Context menu showing the Add Branch to Version Control option.

Packages under Version Control are identified in the Browser window by icons that indicate the current status of the Package. When a package is initially added to the Version Control System it will have a locked icon as shown in the diagram below.

Browser Window showing the Design Package with a Lock icon after Check-In.

Checking Out Packages

Once Version Control has been set up and configured you can start checking out Packages. When you want to work on a Package that is Version Controlled, you need first to Check Out that Package. This will change the Package icon in the Browser window from locked to unlocked. While you have the Package checked-out no other user will be able to work on the Package and they will in turn see a locked Package icon.

Context menu showing the Check Out option.

Make Modifications to Package Content

Once a Package has been checked out you are free to make modification to the content, just as you would in a repository that doesn't have any Version Control implemented. You will be the only one able to edit the content, as other users that attempt this will receive a message saying the Package is checked out.

Browser window showing the Context Package that has been checked out, showing the Checked-Out Package icon

Checking In Packages

Once you have finished making changes to the contents of a Checked-Out Package, you can Check In that Package. This will change the Package icon in the Browser window from unlocked to locked. As soon as you Check-In the Package it will display a locked Package icon and the Version Control system will be updated. You can also enter a comment that describes the changes that you made while the Package was under your control, which will be useful when looking back at version changes. Once the Check-In is complete, other users will be able to Check-Out the Package.

Context menu showing the Check In option.

Getting Latest Changes

If you are working in a single shared model any changes that your colleagues have made will be available by simply reloading the package. If however you are working in private models then you will need to periodically get the latest changes that your colleagues have check in to the Version Control system. You can Get Latest for a single package or for the entire model depending on whether you are interest are in just one or all of the changes.

Context menu showing the Get Latest Changes option.

Comparing to Previous Version

At any stage of a model's evolution you can compare the current version of a Package to the version stored in the Version Control system. This option launches the Comparison window that displays the differences between the model's current state and the latest revision held in the Version Control system.

Context menu showing the 'Compare with Controlled Version' option.

Reverting to a Prior Version

As your model evolves you might want to revert to a previous version of a Package. By using the 'File History' dialog you can select any prior version. By viewing the Check-In comments and the Date and Time of the Check-In the required version can be selected. The Retrieve option will restore the current model to the selected version without the need to check-out the Package.

File Version History window showing a number of versions (revisions) with Comments.


Version Control

This collection of images illustrates the use of the Version Control tools available to you in Enterprise Architect.