Skip to content

Change History

Phil Beauvoir edited this page Jun 29, 2025 · 25 revisions

The Change History

Background

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.

Change History Panel

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.

Change History

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.

Columns

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)

Indicators

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.

Message preview

The pane below the table displays the full commit message including any additional lines.

Branch combo box

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.

Actions

Compare

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).

Compare

Changes

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.

Commit Changes

This action is available from the right-click context menu and allows you to commit any working changes. See Commit Changes for more details.

Extract Model from this Commit

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.

Restore to this Commit

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.

Undo the Latest Commit

This action allows you to undo the latest commit and revert to the previous commit. Note that any uncommitted changes will be lost.

Reset to the Remote Commit

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.

Add New Branch to this Commit

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).

Add new branch

The new branch will appear in the Branches panel.

Add New Tag to this Commit

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.

Add new tag

The new branch will appear in the Tags panel.

Options

Show History of Selected Object

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.

Sort

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.

Clone this wiki locally