Concepts - archimatetool/archi-modelrepository-plugin2 GitHub Wiki

How it works

Under the hood coArchi uses Git (a distributed version control system that tracks versions of files) to manage the technical aspects of version control of Archi models. However, we've tried to shield the user from the "plumbing" of Git so that the user experience manifests in workflows such as "Commit" (create a point in time), "Publish" and "Refresh". Other concepts such as merging and branching are obviously Git oriented but we've tried to simplify those as much as possible.

From a technical point of view, a model repository is nothing more than a Git server into which you’ll have one git repository per model. Each repository contains a single ArchiMate model stored in a model.archimate file with any images stored in an images sub-folder.

[!CAUTION] You should not perform any manual Git actions such as Merge, Pull Requests or similar features on the Archi model as this would most certainly lead to model corruption. Though based on Git, coArchi manages merges and diffs at the semantic level and has in-built checks to ensure that the model is not corrupted. You have been warned.

One Model, One Repository

Once an Archi model has been added to the Collaboration Workspace it is copied to a folder that contains a .git sub-folder and is basically a local Git repository. This (Git) Repository contains one, and only one, Archi model (named model.archimate). This is so that all actions and views in coArchi can operate on one model alone. It would get extremely complicated and unmanageable if the Change History view were to show changes for more than one model.

Online Repository

An Archi model that has been added to the Collaboration Workspace also needs to be linked to an online Git repository so that local changes can be published (pushed) and refreshed (pulled). See Configuring a Remote Repository for more details.

Key User Interface elements

Collaboration Workspace

Allows quick access to all ArchiMate models managed by coArchi. For more information refer to Collaboration Workspace.

Change History

Show the list of commits created for the selected model. Also allows access to older versions and rolling back changes. For more information refer to Change History.

Branches

Manage and create branches for the selected model. For more information refer to Branches.