Making an Existing Project Available in the Workspace

The recommended and most powerful method to work with projects is to create a new project directly within the connected Workspace. If you have an existing project, you can bring it into your Workspace by making it available online and opting to enable formal version control. In each case, the project will be stored and managed through the Workspace’s native Version Control System (VCS). This gives you the full functionality for a project when working with it through Altium Designer. Having your project under full management of the Workspace's VCS is the only way to share that project with multiple people for editing through Altium Designer (provided they are members of the Workspace) and benefit from the platform's additional features such as History tracking and advanced project Sharing.

A local project that is not under version control or is under external version control can be registered with your Workspace using a methodology called Simple Sync. A mirror of your project is created in the Workspace and synchronized. Once local file changes are saved (or saved and committed to the external design repository), those changes are automatically synchronized with their mirrored project counterparts in the Workspace. Simple Sync allows you to enjoy the collaborative features available through the Altium 365 platform while keeping your original project right where it is. However, bear in mind that for a local design project (not under external VCS), that project can be edited by a single person only (the owner of that project – the one who made it available online to the Workspace).

To make an existing project (a local project or a project currently under external version control) available to the Workspace – either as a project mirrored (Simple Sync) in an Altium 365 Workspace or one under a Workspace's native Git Version Control, open the project as normal in Altium Designer, then right-click on its entry in the Projects panel and select Make Project Available Online from the context menu, giving access to the Make Available Online dialog. When using an Enterprise Server Workspace, the Make Project Available on Server command opens the Make Available On Server dialog.

When connected to a Workspace with one or more active process definitions for the Project Creations process theme, making an existing project available to the Workspace is performed by right-clicking the project entry in the Projects panel and selecting a command from the Convert to Managed Project sub-menu – learn more about Process-based Project Converting.

Make an existing local project available to the Workspace, essentially 'registering' it with the Workspace and creating a 'mirror' of it.
Make an existing local project available to the Workspace, essentially 'registering' it with the Workspace and creating a 'mirror' of it.

Use the Make Available Online dialog to change the project Name and add a Description. By default, the name will be that of the original project.

Check the Version Control option to add the project under the Workspace's own built-in VCS (Git). When this option is unchecked (an Altium 365 Workspace option only), the project files will simply be stored in the Workspace for basic access and to enable sharing with others for viewing and commenting only – the Simple Sync arrangement. It is recommended to enable version control, as by doing so you will have access to the maximum functionality offered through, and by, the Workspace and the Altium 365 platform. Note that ability to mirror a project in a Workspace (Simple Sync) is available only when connected to an Altium 365 Workspace.

If the local project is already under version control (an external design repository), the Migrate to Altium 365 Versioned Storage option will be available in the Make Available Online dialog. Learn more about  Moving from External VCS to Workspace Native VCS.

Project Sharing in an Altium 365 Workspace:

If the Version Control option is disabled – thereby using the informal Simple Sync feature for a local project (that is not under external VCS) – the design project can be edited by a single person only (the owner of that project, who is the one that made it available in the Workspace). The strength of Simple Sync comes when you do not want anyone else editing your design, but where you do want to take advantage of Altium 365's Global Sharing paradigm and be able to share that design with multiple other people for viewing and commenting.

When the Version Control option is enabled – through the use of the Workspace's Versioned Storage Git-based design repository – then multiple people can be shared the project for editing, or for viewing and commenting.

Click the dialog's Advanced link to expose the Folder field. This field is used to specify where the folder for the mirrored project – within the Workspace's folder structure – is to be created. The default path for new projects is specified on the Admin – Settings – Projects page of the Workspace's browser interface (by default, this will be Projects\<ProjectName>). Click the button to browse and select a different Workspace folder, if required.

With the properties for the project transition defined as required in the Make Available Online dialog, click OK. For a project that is not under external version control and when made available online (in an Altium 365 Workspace, the Version Control option was checked), the project and files will be committed and pushed to the Workspace's Versioned Storage design repository. The Projects panel will then reflect the fully synchronized state that exists between the Workspace design repository and the local (working copy) repository, as indicated by the associated icons. The project becomes a true Workspace project – not just 'registered' in the Workspace, but actually committed and under the Workspace's version control. Any changes made to the design must be saved (committed/pushed) back to the repository in the Workspace.

The project made available in the Workspace will subsequently be available from the Projects page of the Workspace's browser interface.

The project made available in the Workspace will initially be shared for Read/Write access with the designer who created it (Owner), and all Administrators for the Workspace. For more information on configuring project access permissions, see Sharing a Design.

Limitations when using an Existing External Version Control Repository

As mentioned previously, your local designs may already be tracked under an existing, external version control system (Git, SVN, EPDM, etc...). When using an Altium 365 Workspace, you can continue using this setup as before and simply make the designs available to your Workspace by registering them with that Workspace – using the Make Project Available Online feature.

In this mode, every time you make changes to a design and commit those changes to your external VCS repository, that design data will be mirrored to the Workspace in the background, and all needed processing will be performed as usual – preview, where used, etc. There are some limitations to be aware of, however:

  • Creation of a new design project still has to follow the previous flow, i.e. it is manually created in the external VCS system. The project is then registered and mirrored to the Workspace using the Make Project Available Online feature.
  • If design changes are made but the commit/push is performed by external tools rather than through Altium Designer, then those changes will not appear for the mirrored project in the Workspace. This is corrected when the project is next reopened in Altium Designer, which automatically synchronizes the local project with the mirrored Workspace version. If the changes were made by another user, then the reopened project file(s) will show as Out Of Date () and can be corrected using the version control Update command.
  • Opening of the project by a second person will require access to that external VCS repository.
  • Rights management will have to be set up/maintained in two places – in the Workspace and in the master source (the external Git/SVN/etc VCS repository).
  • Some features delivered through the Altium 365 platform work only by having a project under the Workspace's native version control system. By keeping your project under an external version control system such features, as they become available to the platform, will not be available to you. You can move from using your external VCS to the Workspace's native VCS – see the following section for the procedure to achieve this.

Working with GitHub

Using the GitHub platform as an external version control system (VCS) is a popular way to host and share design projects, and Git repositories are supported by Altium Designer. As described above for an Altium 365 Workspace, the existing external VCS arrangement can be synchronized with (mirrored to) the Workspace, which allows you to benefit from its advanced data management and collaboration features.

How you normally work with GitHub itself will vary depending on company practices or simply the Git tools you have at hand. In general, however, a design project is created in a local Git repository and then Pushed to a GitHub (remote) repository, or an existing project is Cloned to a local repository from GitHub. Once in the local Git repository, the project can be opened in Altium Designer for editing – the software will recognize and use the local/remote GitHub repositories.

If the Git-based project is mirrored to an Altium 365 Workspace (Make Project Available Online), the project can be managed and worked within Altium Designer like any other project stored in the Workspace. In this arrangement, the Workspace still provides all the advantages of its project management system and also transparently communicates with GitHub to perform the major VCS actions – commit, push, pull, etc. Altium Designer will request your GitHub login credentials and retain these for subsequent GitHub interaction.

Note that Altium Designer is not able to connect with GitHub automatically if the GitHub account has been configured for two-factor authentication.

GitHub Protocols

While there is a range of data transfer protocols offered by the Git VCS, Altium Designer currently supports the HTTP/HTTPS protocol only for connections between a local Git repository and its remote master repository. In practice, the applied protocol is set by the URL prefix specified for the remote repository connection – https://<remote repository>, ssh://<remote repository>, git://<remote repository>, and so on.

GitHub supports both the SSH and HTTPS protocols and recommends using HTTPS URLs for connections.

► See Which remote URL should I use? on GitHub for more information.

The HTTPS protocol offers the advantage of a secure connection that is simple to use and implement, whereas SSH is more complex to deal with – due to the need for public keys, and firewall/proxy port requirements – is arguably less secure, and does not provide the convenience of SSO (single sign-on) authentication.

Similarly, the GIT connection protocol is not recommended (or supported here) due to its lack of authentication and setup complexity.

If your external VCS system is bound to a protocol other than HTTPS, such as a GitHub SSH connection, this will be preset in a repository that has been cloned from the remote. As this protocol is incompatible with Altium Designer, an error will be thrown when attempting to integrate the project with an Altium Workspace. For the SSH connection, you will be offered to try to have that repository updated to use the supported HTTPS connection protocol instead (provided the repository itself supports this protocol). If you are unsure of the remote URL protocol that is used for a local Git repository, this can be checked using the git remote – v command.

Use the Git Bash command line interface to check a repository's remote URL setting. Use the Git Bash command line interface to check a repository's remote URL setting.

The repository can be reconfigured for a different URL, such as the HTTPS protocol to enable compatibility with Altium Designer, by using the git remote set-url <name> <URL> command, where the URL's prefix specifies the protocol type.

Changing the remote repository connection URL protocol and then confirming with the remote command.Changing the remote repository connection URL protocol and then confirming with the remote command.

Moving from External VCS to Workspace Native VCS

When connected to an Altium 365 Workspace, Altium Designer also offers the ability to faithfully migrate projects that use an external VCS system to a fully-managed Workspace project that hosts the design files in its own Git repository. The converted design project, which will retain the previous history of VCS commits, can then benefit from the Workspace's native VCS-enabled features, such advanced project sharing, single authentication, and the event-based History timeline.

The project VCS migration feature supports both Git and SVN external version control systems and is available when making a local file-based project available online, or when promoting a mirrored (synchronized only) project to one under the Workspace's own Git VCS.

To simply migrate a project that is stored under external version control, right-click on the project name in the Projects panel and choose the Make Project Available Online option from the context menu, or select Project » Make Available Online from the main menu. In the following Make Available Online dialog, check the Migrate to Altium 365 Versioned Storage option and confirm the operation (OK).

The enabled Migrate to Altium 365 Versioned Storage option effectively causes the external VCS repository to be replaced with the Workspace Git repository, converts the project to one stored and managed in the Altium 365 Workspace, and where possible, brings across the version commit history from the external VCS. Note that If the migrate option is left unchecked, the project is mirrored to the Workspace (the Simple Sync arrangement) while maintaining the external repository as its VCS storage.

VCS migration is also available when Altium Designer is connected to an Enterprise Server Workspace. In this case, the Migrate to Altium Versioned Storage option is available in the Make Available On Server dialog. Note that If the migrate option is left unchecked, the project's external repository is maintained as its VCS storage (the Simple Sync arrangement is not supported for an Enterprise Server Workspace).

To port a local VCS project to a fully managed VCS project in your Altium 365 Workspace check the VCS migrate option when making it available online.To port a local VCS project to a fully managed VCS project in your Altium 365 Workspace check the VCS migrate option when making it available online.

The Migrate Project dialog will open and warn you that the project is going to be migrated under full management of the Workspace's VCS. Click the Browse button to select a folder on your hard drive where a new (git-based) local project repository will be created. Click the Migrate button to proceed with the migration.

The Migrate Project dialog
The Migrate Project dialog

After following the prompts, which includes making a final VCS commit, the project is now under version control in the Workspace Git repository. The external VCS commit history and its comment/messages are ported to the new Workspace VCS project, which can be accessed in the Altium Designer History view – right-click on the project name in the Projects panel and select the History & Version Control » Show Project History command.

When migrated, the project's external VCS commit history (shown on the left) is transferred to the Altium Designer History view (right).When migrated, the project's external VCS commit history (shown on the left) is transferred to the Altium Designer History view (right).

Note that the first time you open Project History after the migration process you may see that data is being calculated for all included commits. The Workspace needs some time to process these commits and also the differences between them.

If the external VCS project is already managed in the Altium 365 Workspace as a mirrored project (synchronized local-server files), its VCS files can be migrated to the server's native Git repository using the Migrate to Altium Versioned Storage command, which is available from the Project History view, the Project Options dialog or the Projects panel's History & Version Control right-click context menu. 

A VCS project that has been synchronized with (mirrored to) your Workspace is migrated using the Migrate Project to Altium Version Control option.A VCS project that has been synchronized with (mirrored to) your Workspace is migrated using the Migrate Project to Altium Version Control option.

The migration performance is fastest when the source external VCS is Git-based – the process is simpler because the Altium 365 Workspace VCS is also Git-based. For SVN however, the migration can take some time depending on the size of the repository and the number of commits it contains.

VCS Migration limitations

  • Git
    • Git repositories that contain multiple PCB projects are supported when connected to an Altium 365 Workspace. After clicking OK in the Make Available Online dialog, you will be prompted to choose the files to migrate.
    • The project file (*.PrjPcb) should be located in the Git repository's root folder.
  • SVN
    • The basic SVN File protocol is not supported.
    • If your SVN repository contains multiple projects, the migration process will create new local folders in addition to the existing SVN working copy. This is because the Altium 365 Workspace storage is Git-based, and a Git repository cannot be stored inside the SVN working copy.
    • Commits that include an external file relative to the project folder may not be shown, since the migration process recognizes commits to the project folder only.
After successful migration of an external VCS project to the Altium 365 Workspace, the link to the external repository is removed automatically. This feature has been implemented in Altium Designer 23.0. If the project has been made available in the Altium 365 Workspace using a previous version of Altium Designer, an entry for the repository can appear on the Data Management - Design Repositories page of the Preferences dialog. If you are an administrator of the Workspace, and the repository has no reference to a Workspace project, the repository can be removed from the Workspace by selecting its entry and clicking the Remove button. Note that if a project has been soft deleted (moved to Trash), it must be deleted permanently so the repository referencing it can be removed. The Workspace's Versioned Storage repository cannot be removed.

Collaboration after migration

  • When a Workspace team member has migrated a project to Altium Versioned Storage, they need to ensure that other project collaborators connect to the team Workspace and then update their local (working) project copies. The latter is indicated in the Projects panel by the icon (Out of Date) associated with the project file and actioned by the Project » History & Version Control » Update Whole Project command.
  • Once the migrated project has been updated, Altium Designer will offer to update the links to the new repository by rebuilding the project's local working folder. Choose the recommended option in the Fix version control link dialog to finish the local project update.

  • Note that if a project collaborator does not connect to the team Workspace and then commits VCS design changes, these will continue to be registered with the external repository and therefore out of sync with the migrated Workspace VCS project.
  • During migration, Altium Designer executes a commit to the original repository to set a notification mark so it can be recognized as having been migrated by other team members' instances of Altium Designer.

Moving from the Workspace's SVN to the Workspace's Git

When Altium Designer is connected to an Enterprise Server Workspace and a design project is stored in an SVN repository managed through the Workspace's Version Control Service, you can migrate this project from the SVN repository to the Workspace's built-in Git repository (Versioned Storage). To do this, right-click its entry in the Projects panel and select the History & Version Control » Migrate Project to Altium Versioned Storage command from the context menu. Alternatively, click the Migrate to Server Versioned Storage button in the Project Options dialog.

After following the prompts, which include making a final VCS commit, the project will be migrated to the version control of the Workspace Git repository.

Controlling Project Synchronization

Once a local project has been made available to an Altium 365 Workspace, controls over its online availability and synchronization are provided through the General tab of the Project Options dialog.

Note that the General tab is presented only when Altium Designer is connected to an Altium 365 Workspace, rather than an Enterprise Server Workspace.
Note that the General tab is presented only when Altium NEXUS is connected to an Altium 365 Workspace, rather than a NEXUS Server Workspace.

Options and controls relating to having made the project available online are presented on the General tab of the Project Options dialog.
Options and controls relating to having made the project available online are presented on the General tab of the Project Options dialog.

Use the option available in the General region of the tab to make changes to the project description. This affects the mirrored project within the Workspace only.

In the Online Availability and Synchronization region of the tab, the Version Control option reflects the current style of online availability:

  • Option Enabled – the project (and its source files) are stored under the Workspace's own native VCS (Git). This is the recommended approach, as by doing so you will have access to the maximum functionality offered through, and by, the Workspace and the Altium 365 platform.
  • Option Disabled – the project files are stored in the Workspace for basic access and to enable sharing with others for viewing and commenting only – the Simple Sync arrangement.

Use the option to change between these two as desired.

This option is not available if the project is stored under an external VCS repository.

Should you wish to stop the synchronization between your local project, and the managed incarnation of it that was made available in the Workspace, click the button. The Turn off project synchronization window will appear. Click on the Unlink option, then click OK back in the Project Options dialog. The local project will no longer be associated with the project in the Workspace.

This is reflected in the Projects panel after saving the local project, by the project being presented under the active Project Group (*.DsnWrk), rather than as an entry under the active Workspace. A save is required since the links to the project in the Workspace are removed from the project file.

The project in the Workspace remains untouched – it is not removed by this action.

You can sever the connection between your local project and the incarnation of it made available in the Workspace.You can sever the connection between your local project and the incarnation of it made available in the Workspace.

You can always make the local project available online again, as a mirrored or full VCS project (Version Control). The General tab of the Project Options dialog will present the button, with which to access the Make Available Online dialog.

If you are making a local project available online again after having turned off synchronization, you may need to change the project name. Since turning off synchronization does not remove the project in the Workspace, this project, with the same name and folder location, may still exist. If you need to have the same project name, then the previous project instance in the Workspace can always be removed.

A local project can also be made available online – in the Workspace – from the General tab of the Project Options dialog.A local project can also be made available online – in the Workspace – from the General tab of the Project Options dialog.

Note

The features available depend on your level of Altium Designer Software Subscription.

Content