Local Version Control Service
The Enterprise 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.
Key Advantages
There are two key advantages to using this centralized Version Control service:
- You have common users and rights management for both the Altium Designer and SVN. When you sign in to the Enterprise Server, the Version Control service works with your session/credentials.
- Repositories defined through the Enterprise Server (through the VCS page (Admin – VCS) of the Enterprise Server Workspace's browser-based interface) are populated to Altium Designer automatically during login, so users do not have to worry about URLs, protocols, password etc. It is simply configured once, on the Enterprise Server, and shared with the intended users as required.
Repository Creation
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 Workspace's browser-based interface, in terms of:
- Their displayed name, description and repository path.
- Their configured accessibility – which specific users can access them (or groups 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 Designer user signs in to the Workspace, the Design Repositories available to them will automatically be added to the Data Management – Design Repositories page of the Preferences dialog. Note that the list will also include any 'unmanaged' repositories that have been manually added from this Preferences page.
Centrally define access to your organization's Design Repositories. Repositories can be internal to the Enterprise Server installation, defined using the local Version Control service, or external through use of Altium Designer's built-in SVN, or third party SVN or Git service. Access control is performed through the VCS page of the Workspace's browser-based interface. When a user signs in to the Workspace, 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 – 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 valid credentials (User Name, Password) to access that repository (if required).
Create a new SVN-based Design Repository through the Enterprise Server's local Version Control service, or link to an existing repository (SVN or Git) that has been created external to the Enterprise 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 Enterprise Server's Version Control service (i.e. not external), its default permissions share that repository with the user who created the repository, and the Administrators group. 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 groups for the Enterprise Server, or publicly. Groups are listed after individual users.
- In terms of permissions, a user/group 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/group from having shared access to a repository, click the associated Remove control
Sharing a Local Repository with a Workspace User
To share a local (not external) repository with another Workspace 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 Workspace user in the Select Users to be added field, to pop-up a list of matching users. Select the required user from this list. Multiple users can be chosen. To remove a user, click the delete cross, to the right of their name.
- Set the permission for the user(s) using the Permission field. Use the drop-down to choose between Read access, or Read/Write access.
-
Click the
button to confirm the user addition(s) and return to the Manage Permissions window.
-
Click the
button in the Manage Permissions window.
Sharing a Local Repository with a defined Group
If the repository has been created through the local Version Control service, rather than an external repository, then you also have the ability to share with groups defined for your Workspace. To share a local (not external) repository with another group:
- Click the Add Group control in the Manage Permissions window.
- In the Add Groups window that appears, start typing the name of a group in the Select Groups to be added field, to pop up a list of matching groups. Select the required group from this list. Multiple groups can be chosen. To remove a group, click the delete cross, to the right of its name.
- Set the permission for the group(s) using the Permission field. Use the drop-down to choose between Read access, or Read/Write access.
-
Click the
button to confirm the group addition(s) and return to the Manage Permissions window.
-
Click the
button in the Manage Permissions window.
Sharing a Local Repository with All Users
If the repository has been created through the local Version Control service, rather than an external repository, then you also have the ability to share that repository with all Workspace users. To share a local (not external) repository with anyone that can sign in to the Workspace:
- Click the Add Anyone control in the Manage Permissions window.
- The Anyone entry will be added directly to the list of shared entities, and automatically shared for Read/Write access.
-
Click the
button in the Manage Permissions window.
Sharing an External Repository with a Workspace User
To share an external repository with a Workspace 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 Workspace 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 right of their name.
In the SVN User field, enter a name that is registered with the external repository (SVN or Git) and therefore has access. Typically, this would be a user's matching name registered with the repository
-
Click the
button to confirm the user addition and return to the Manage Permissions window. Click Add User to add further users as outlined in step 2, above. Note that in the second example image below, user Barryhas been set to use his matching repository nameBarrySmith, rather than the generalServerAdminname.
-
Click the
button in the Manage Permissions window.
External Access to a Local SVN Design Repository
A Design Repository that is created through the Enterprise Server's local Version Control Service can be accessed using an SVN client such as TortoiseSVN. Access is made using the regular network protocol (the svn:// is currently supported). The correct repository address can be accessed/copied from two places:
- The VCS page of the Workspace's browser interface – within the Repository Path field for the target repository.
An 'internal' repository created from the Enterprise Server will show its address path relative to the Enterprise Server, which is the localhost address of the host PC.
- From within Altium Designer, from the Data Management – Design Repositories page of the Preferences dialog – within the Repository field for the target repository.
From the perspective of Altium Designer – or any application not on the Enterprise Server host PC – the repository address paths are based on the name their host PCs.
Use the acquired address in your Subversion client's repository browsing facility. On first access an intermediate Authentication dialog will open requesting valid connection credentials. Enter the name and password of a Workspace user account to proceed. These credentials are valid if:
-
The user account was added after the repository was created in the Enterprise Server. The users that apply to created repositories can be seen in the
passwdfile found in the Enterprise Server PC's\ProgramData\Altium\Altium365Data\Repositoryfolder – see below. -
The repository has been shared with the user account, by adding that username via the Add User command in the server's Manage Permissions for <repository name> window. This is evident in the repository's
authzfile, found in the Enterprise Server PC's\ProgramData\Altium\Altium365Data\Repositoryfolder.
Browsing the content of a Design Repository created through the Enterprise Server installation's local SVN-based Version Control service.
Enterprise Server & VCS User Synchronization
When a new user for the Workspace is created, the defined credentials (User Name and Password) for that user are stored in both the Enterprise 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\Altium365Data\Repository\passwd file).
The entries in this list provide access to the Enterprise Server SVN repository when working with the service through Altium Designer. There may be occasions where a user's credentials are not included in the file, such as when Workspace users already exist when the first SVN repository is created (rather than the other way around). This can be addressed by manually adding those name/password combinations to the passwd file, or by re-entering the password for each user profile in the Workspace – the latter approach will populate the passwd file accordingly, and without requiring direct access to the Enterprise Server PC.
In a default installation of the Enterprise Server, user credentials are stored for the Version Control service in the associated Passwd file.
Deleting a Repository
To delete a repository from the Enterprise Server's Version Control service, click the Remove control associated with that repository, on the VCS page of the Workspace's browser-based interface.
External repository entries can be deleted, irrespective of whether or not the repository contains any projects. Local repositories on the other hand (those created internally through the Enterprise 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 the 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\Altium365Data\RepositoryDumps, for a default Enterprise 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).