Collaborators Visualization & Conflict Prevention in Altium Designer
The combination of Altium Designer and a connected Workspace provides a highly effective data sharing platform that supports design collaboration between team members, based on version-controlled (VCS) projects stored in that Workspace.
A key part of the design collaboration process is managing that shared access and handling the potential for data conflicts, which might typically occur where more than one user is editing the same design document (their 'copy' of that Workspace-based file). Such data conflicts are ultimately dealt with by the Workspace's VCS when the document is saved to the Workspace, but up until that point, you have no real insight into the active shared status of the document.
To fulfill the need for real-time document sharing information and control in the design editing environment, Altium Designer works with a connected Workspace to provide an integrated system for visualizing and reacting to the current status of shared documents. The system is enabled by the free flow of document-sharing data between design clients (via the Workspace), and is realized through a series of new status icons, a Collaborators Bar and additional file locking logic.
Prerequisites
The real-time collaboration information and control for shared documents are available under the following conditions:
- The project to be shared is hosted on a connected Workspace as a Workspace project under version control (VCS).
- The collaborators are members of and connected to the Workspace.
- The Workspace project has been shared with all collaborators – with editing rights for those users that require full access.
-
The collaborators have the
System.Softlocks
option enabled in the Advanced Settings dialog.
Collaborators Notification Bar
The Collaborators notification bar () will appear in the upper right corner of the Altium Designer document editor when the currently active document has been opened by another user. Hover the cursor over the user icons within the bar to see the live sharing status. Note that a 'viewing' status indicates that the user has opened the document in Altium Designer but has not made any changes. The open status of a local document is indicated by the icon in the Projects panel.
Editing Status
Along with reporting who is viewing a document, the system also provides information regarding who is editing a shared document. A document is considered in 'editing' status when it has been changed by another user. This is indicated by the Collaborators bar, which dynamically separates collaborator user icons into those viewing and those editing – the latter group is associated with the icon.
The document that is being edited by another user will have a icon associated with its entry in the Projects panel or a icon if that document is currently open in the editor. Note that the hover text will also report the names of multiple users who are editing (or have edited) the shared document.
Conflict Prevention
To manage file editing access and avoid the possibility of data conflicts, the system effectively locks a document to the first user that edits it. or has caused it to be modified. This user 'soft-lock' remains associated with the file until the user finishes editing – commits or reverts the changes, or is overruled by another user or an administrator.
In the below example image where two users have opened the same project schematic, the designer using the lower screen has edited the document, causing it to be (soft) locked to that user. This editing status is indicated to the other user (upper screen) via the Collaborators bar and the Projects panel document icon.
If another user attempts to make a change to the soft-locked document, its locked (editing) status will trigger pop-up dialogs for both users. The effective owner of the document (lower screen in the below image) will be altered that another user has modified the document and there is an associated risk of conflicted revisions.
Conversely, the user who has edited the locked document (upper screen) is presented with the option to cancel their changes (Revert My Edits) or overrule the condition by retaining their edits (Ignore Lock). In the normal course of events, the user would abandon the change (Revert) and wait until the other user has completed the current editing session.
If the Ignore Lock option is selected, however, it means there will be more than one edited version of the document that could be committed to the Workspace – the user edits are potentially in conflict, as indicated by the document's icon in the Projects panel for both users.
In this situation, where more than one user is editing a document, its icon will change to if the document is saved. This indicates that the local edits have been completed, but the document state remains in conflict with the copy being edited by another user. The document icon will change to if the document is closed.
To resolve the conflict at this stage, you can revert your local edits by clicking the icon and selecting the Revert My Edits to Resolve Conflict command from the pop-up.
And finally, if all users persist in committing their edits to the Workspace – while overruling file locks and version control warnings – the different file versions will invoke a VCS Conflict, as indicated by the file's icon in the Projects and Storage Manager panels. This can be resolved by adopting the 'head' version of the file (though a 'pull' or update from the Workspace), or the conflicted file can be maintained as a local-only version. Click the icon to select a required action.