-
Notifications
You must be signed in to change notification settings - Fork 10
Change History
The Change History is a record of all changes made to an Archi model in a repository over time, stored as a series of commits. Each commit represents a snapshot of the repository at a specific point, capturing modifications to the model, along with metadata like the author, date, and a commit message describing the changes.
-
Commits: Each change to the Archi model (e.g., adding a business process or updating a diagram) is saved as a commit, forming a chronological history. Merges create commits with multiple parents.
-
Branches: Teams can work on separate branches for different features or experiments, with each branch maintaining its own history until merged. Branches are pointers to specific commits in the history. They allow parallel development, and the history diverges when branches are created. The default branch is called "main". Merging branches integrates their histories.
-
Merges: coArchi handles merges to integrate changes from multiple contributors, potentially creating merge commits with multiple parents.
-
Immutability and Integrity: The history is immutable—once a commit is made, it cannot be changed unless you undo it.
The Change History panel can be shown or hidden from the main "Collaboration" menu item "Toggle Change History" or from the main toolbar.
It consists of a table that shows information for each commit.
The newest commit is at the top of the table. If there are uncommitted saved changes there will be a row named "Working Changes". You can select this and another commit to compare changes.
Each column in the table is as follows:
Message - the first line of the commit message
Author - the author of the commit
Date - the date of the commit
Tags - shows tags that have been added to the commit
Author - the unique Id of the commit (a shortened SHA-1)
The icons in the leftmost column indicate the commit at the point of local changes and remote changes. A green indicator means that the commit is local and ahead of the remote's latest commit. A red indicator means that the commit is remote and ahead of the local's last commit.
The pane below the table displays the full commit message including any additional lines.
The "Branch" combo box allows you to quickly select another branch and view its history. Note this does not actually change to the selected branch, it is a convenience so you can view the branch's history without changing to the branch.
You can view the differences between one commit and another (or "Working Changes") by selecting two commits in the table and selecting the "Compare" menu/toolbar item. A dialog window will open showing the differences.
Important
The Compare dialog is a work in progress. It currently shows a very fine-grained list of differences between commits. It needs more fine tuning (and may well have bugs).
The first column in the Changes dialog shows the object that changed and the changes that occurred between the first and second commits. The second column shows the value of the change in the first commit and the third column shows the value of the change in the second commit.
If an Archi View has changes you can view the visual changes side by side by selecting the View in the Compare tree. The preview can be resized using the slider control.
This action is available from the right-click context menu and allows you to commit any working changes. See Commit Changes for more details.
This action allows you to extract a new copy of the model at the point in time of the selected commit. The model is opened in the Models Tree with the model's name and commit Id in parentheses. Ensure to have the Models Tree open to see the extracted model. Note that the model is not saved to file so you will have to select "Save As..." from the main menu if you want to store it.
This action allows you to go back to a given commit and restore the model to that point in time. A new commit is made named "Restore (commit name)" containing the restored commit. Note that any uncommitted changes will be lost.
This action allows you to undo the latest commit and revert to the previous commit. Note that any uncommitted changes will be lost.
This action allows you to discard all local commits that have not yet been published and reset the local history to the latest remote commit. Note that any uncommitted changes will also be discarded.
This action allows you to add a new branch at the point of the selected commit in the Change History table.
A dialog box allows you to enter a unique name for the new branch. Options are to just create the new branch or to create the new branch and immediately switch to it (this option is only available if the new branch is added to the "current" branch or the model has been saved and there are no pending commits).
The new branch will appear in the Branches panel.
This action allows you to add a new tag at the point of the selected commit in the Change History table.
A dialog box allows you to enter a unique name for the new tag. You can also enter additional text that describes the tag if you like. This is similar to entering a message for a commit.
The new branch will appear in the Tags panel.
This option is available from the Change History right-click context menu and from the toolbar menu (the three vertical dots at the top-right of the panel). Once enabled the Change History will show the history of the currently selected object in the Models Tree or a selected View. If an ArchiMate element or relationship is selected in a View its history is shown, otherwise the history of the parent View of the graphical object is shown.
Note that this is a toggle and should be toggled off when not required.
Note
The history of the currently selected object in the Models Tree can also be shown from the right-click context menu "Show in Change History" in the Models Tree.
This option is available from the Change History right-click context menu and from the toolbar menu (the three vertical dots at the top-right of the panel). Options are:
- Topological- topological sorting (all children before parents)
- Keep Branches Together - topological sorting (all children before parents) without intermixing lines of history
- By Time - sort by commit time, descending (newest first, oldest last)
This can affect the order of commits when there are a mix of local and remote commits.
If you value and use Archi please consider making a donation. Thanks!
- FAQ
- Why coArchi2?
- Getting Started
- Getting into the Details
- Actions
- Connection, Authentication & Security
- Command Line Interface (ACLI)
- Troubleshooting and Logging
- Technical Considerations
- Known Issues
- Roadmap
- Change Log
- Developer Notes