Concepts - archimatetool/archi-modelrepository-plugin2 GitHub Wiki
How it works
coArchi2 leverages Git, a robust distributed version control system, to seamlessly manage version control for ArchiMate models. We've streamlined the user experience by abstracting Git's technical complexities, presenting intuitive workflows like "Commit" (save a snapshot), "Publish" (share updates), and "Refresh" (sync changes). While concepts like merging and branching stem from Git, we've simplified them to ensure accessibility for all users.
Technically, a model repository is a Git server hosting one repository per ArchiMate model. Each repository contains a single model.archimate file for the model and an images subfolder for associated images.
[!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.