Parent page: Altium NEXUS Server
The Altium NEXUS Server installation provides localized (and centralized) version control, courtesy of its Version Control service. This service provides version control possibilities right there where you need them, locally, without searching, or paying for, external VCS management software.
By defining design repositories in this centralized fashion, an organization can fully control which repositories its designers can access and use.
There are two key advantages to using this centralized Version Control service:
- You have common users and rights management for both the Altium NEXUS Server and SVN. When you sign in to the Altium NEXUS Server, the Version Control service works with your session/credentials.
- Repositories defined through the Altium NEXUS Server (through the VCS page (Admin - VCS) of the NEXUS Server's browser-based interface) are populated to the client automatically during login, so users do not have to worry about URLs, protocols, password etc. It is simply configured once, on the server, and shared with the intended users as required.
Repositories can be created through the local Version Control service (SVN-only), or external repositories can be connected to (SVN or Git). Together, all repositories are centrally managed through the VCS page (Admin - VCS) of the NEXUS Server's browser-based interface, in terms of:
- Their displayed name, description and repository path.
- Their configured accessibility - which specific users can access them (or roles in the case of repositories defined through the local Version Control service).
- Their availability - add or remove them centrally, rather than individual designers having to create and connect to repositories independently.
When an Altium design software user signs in to the Altium NEXUS Server, the Design Repositories available to them will automatically be added to the Data Management - Design Repositories page of the Preferences dialog.
Centrally define access to your organization's Design Repositories. Repositories can be internal to the Altium NEXUS Server installation, defined using the local Version Control service, or external
through use of Altium NEXUS's built-in SVN, or third party SVN or Git service. Access control is performed through the VCS page of the Altium NEXUS Server's browser-based interface. When a user
signs in to the Altium NEXUS Server, the Design Repositories available to them will automatically be added to the Data Management - Design Repositories page of the Preferences dialog.
Adding a Repository
To add a Design Repository, click the button, located at the top-right of the page. The Add Repository window will appear, use this to define the repository.
The properties required depend on whether you are creating a new repository using the local Version Control service, or linking to an existing, external repository:
- New - simply give the repository a name and a description.
- Existing - in addition to a name and description, you need to supply the URL to the repository, and your credentials (User Name, Password) to access that repository (if required).
Create a new SVN-based Design Repository through the NEXUS Server's local Version Control service, or link to an existing repository (SVN or Git) that has been created external to the NEXUS Server.
A linked, external Design Repository is distinguished in the list of repositories by its External property being ticked ().
To edit the properties of a Design Repository at a later stage, click its associated Edit control (). To remove a Design Repository, click its associated Remove control ().
Sharing a Repository
Having centralized your Design Repositories, you need to ensure that those requiring access to a given repository - including the designers who will be working on board designs - have that access. This is achieved by sharing that repository, or rather managing its access permissions. To do this, click on the repository's associated Share control ().
The Manage Permissions window will appear, with all the controls necessary to share the repository with other users.
With Design Repositories centrally organized, sharing with others is simply a case of managing each repository's permissions.
Things to be aware of:
- For a local repository created through the NEXUS Server's Version Control service (i.e. not external), that repository is shared, by default, with the user who created the repository, and the Administrators role. Both of these have full Read/Write access.
- For an external repository, it is shared with no-one by default - not even the user who added a connection to it through the interface.
- Only local repositories (not external) can be shared with defined roles for the NEXUS Server, or publicly. Roles are listed after individual users.
- In terms of permissions, a user/role has Read/Write access when the Can Write option is enabled. If this option is disabled, they have Read access only.
- To remove an existing user/role from having shared access to a repository, click the associated Remove control ().
To share an external repository with a NEXUS Server user:
- Click the Add User control in the Manage Permissions window.
- In the Add Users window that appears, start typing the full name, username, or email address of a NEXUS Server user in the Select Users to be added field, to pop-up a list of matching users. Select the required user from this list. To remove the user, click the delete cross, to the far right of their name. In the SVN User field, enter the name to suit that user's particular SVN access - mapping the NEXUS Server user to the SVN user, as it were. While you can only add a single user at a time, you can define as many users for access to the external SVN repository as you need.
NEXUS Server users can be mapped to any valid user name in the external SVN repository, and multiple NEXUS Server users may be mapped to a single user name in the external SVN repository. See example.
- Click the button once ready, to effect addition of the user and return to the Manage Permissions window.
- Click the button in the Manage Permissions window.
External Access to a Local SVN Design Repository
A Design Repository that is created through the local Version Control Service can be accessed using an SVN client such as TortoiseSVN. Access is made using the regular network protocol (only svn:// is currently supported). The correct repository address can be copied from two places:
- The VCS page of the NEXUS Server's browser interface - within the Repository Path field for the target repository.
Use the acquired address in your Subversion client's repository browsing facility. When a user is created in the NEXUS Server, the credentials are used by both the server itself, and the Version Control service. If the password is stored with the service, then access to the repository will be immediate. If the password is not stored, an intermediate Authentication dialog will appear. Enter your username only in this case, and click OK to access the repository. See Vault & VCS User Synchronization for more information.
Browsing the content of a Design Repository created through the Altium NEXUS Server installation's local SVN-based Version Control service. In the example above, the repository contains
a couple of Managed Projects, providing the ideal foundation for centralized project management, and controlled collaboration between team members.
Vault & VCS User Synchronization
When a new user for the Altium NEXUS Server is created, the defined credentials (User Name and Password) for that user are stored in both the server's database and the Version Control service, since the latter cannot access the password from the former directly. The password is stored with the Version Control service in plain text format (in the \ProgramData\Altium\NexusServerData\Repository\passwd file). If this presents a security issue, you can simply remove these password entries manually.
In a default installation of the NEXUS Server, user credentials are stored for the Version
Control service in the associated Passwd file. The passwords can be cleared manually.
Deleting a Repository
To delete a repository from the NEXUS Server's Version Control service, click the Remove control () associated with that repository, on the VCS page of the NEXUS Server's browser-based interface.
External repositories can be deleted, irrespective of whether or not they contain any projects. Local repositories on the other hand (those created internally through the NEXUS Server's Version Control service) can not be deleted if they contain one or more projects. You will be alerted to this, and should remove the projects first before being able to proceed with deletion.
Even then, if a local repository has no projects, it will not actually be deleted, but rather moved to an archive directory (\ProgramData\Altium\NexusServerData\RepositoryDumps, for a default NEXUS Server installation). The repository will be contained within a Dump file, with a Unique ID prefix (e.g. 775f6c22-b9a1-468c-9f1f-4f217bb3be6b_central design repository.dump).