Работа с проектным репозиторием
Parent page: Version Control and Design Repositories
The best way of working from a known set of source files is to store the design project in a controlled environment, such as a Version Control repository. This is important because the only way of ensuring the outputs come from the correct source files is to:
- Confirm that the source fileset is up-to-date.
- Take a snapshot of them.
- Generate outputs from that snapshot.
In Altium Designer, such a repository is referred to as a Design Repository. Owned by the design team, the Design Repository contains a high-resolution view of the history of the design process and is the primary collaboration tool used by the design team.
The Design Repository becomes the central repository from which multiple team members can check data in and out, all the while maintaining a complete revision history of all changes made to the design. A design is therefore stored as a series of versions of its constituent project and source documents, building a progressive picture of the intent of a designer over time. By using a version-controlled Design Repository, you have the integral assurance that no revision of a design is ever lost, allowing for safe collaboration on the same design between members of a team that can be geographically dispersed in their locations. The very nature of the version control system provides an audit trail for the design. Full accountability arises through transparency of whom changed what, in which source document, and when. The system can support multiple version-controlled Design Repositories with the link to a particular repository being established by the version control link within the project folder.
Supported Version Control
Related pages: Version Control and Design Repositories, Using Version Control
The version control software - used to implement the repositories themselves - is supported in the following ways:
- Through Altium Designer - using the software's built-in support for Subversion (SVN). Enabled for use by default, Subversion capabilities are delivered through the VCS Provider - SVN extension. This extension is installed by default, and delivers version control functionality, through the use of SharpSVN. This implementation has full support for Unicode (multi-byte) characters in file names. This for example, allows you to add files to your SVN VCS repository that include Russian characters in their names. You are also able to hook up and use an existing Git repository, support for which is delivered through the VCS Provider - Git extension.
- Through an Altium NEXUS Server - when you are signed into a managed content server, and that Server is an Altium NEXUS Server, you are provided with localized (and centralized) version control, courtesy of the Server's Local Version Control Service. SVN repositories can be created through the local Version Control service, or external repositories (SVN or Git) can be connected to. Two default Design Repositories are available, provided by the local Version Control service and named DefaultRepository (an SVN repository) and Versioned Storage (a Git repository) respectively. The Versioned Storage repository is purely for the integrated storage of managed projects.
- Through Altium NEXUS - using the software's built-in support for Subversion (SVN). Enabled for use by default, Subversion capabilities are delivered through the VCS Provider - SVN extension. This extension is installed by default, and delivers version control functionality, through the use of SharpSVN. This implementation has full support for Unicode (multi-byte) characters in file names. This for example, allows you to add files to your SVN VCS repository that include Russian characters in their names. You are also able to hook up and use an existing Git repository, support for which is delivered through the VCS Provider - Git extension.
- Through an Altium NEXUS Server - when you are signed into a managed content server, and that Server is an Altium NEXUS Server, you are provided with localized (and centralized) version control, courtesy of the Server's Local Version Control Service. SVN repositories can be created through the local Version Control service, or external repositories (SVN or Git) can be connected to. Two default Design Repositories are available, provided by the local Version Control service and named DefaultRepository (an SVN repository) and Versioned Storage (a Git repository) respectively. The Versioned Storage repository is purely for the integrated storage of managed projects.
- Through a legacy Altium Vault - when you are signed into a managed content server, and that Server is an Altium Vault, you are provided with localized (and centralized) version control, courtesy of the Server's Local Version Control Service. SVN repositories can be created through the local Version Control service, or external repositories (SVN only) can be connected to. A default Design Repository is available, provided by the local Version Control service and named DefaultRepository.
Managing Design Repositories
Design Repositories are managed on the Data Management - Design Repositories page of the Preferences dialog. From this page you can perform a number of actions, including:
- Creating new file-based SVN repositories using version control capabilities built-in to Altium Designer.
- Connecting to existing SVN repositories.
- Browsing repositories shared for use through the local Version Control service of the managed content server to which you are actively signed in.
- Controlling the active state of each defined repository.
The Data Management - Design Repositories page - command-central for managing VCS-based Design Repositories within Altium Designer. The image
shows connection to a local SVN design repository (Local Repository), as well as the two default repositories available when signed into an Altium
NEXUS Server (DefaultRepository and VersionedStorage).
For each registered, or rather connected repository, the following information is presented:
- Name - a meaningful name for the repository. This could, for example, reflect the design projects that are stored in the repository. This name is used elsewhere in the software for quick selection of a Design Repository to be used, for example when opening a project from version control.
- Activated - whether the repository is available for use by the system (enabled) or not (disabled). A newly created or connected repository will be activated by default.
- Type - the type of repository. For a repository defined through Altium Designer, this is
SVN
. For the integrated repository provided through your managed content server for managed projects, this is Git. For a repository defined through your managed content server's local Version Control service, this is SVN or Git.
- Repository - the URL to the root folder of the repository.
- Status - whether the connection between Altium Designer and the repository is successful (
) or not (
). If connection is unsuccessful a comment will be displayed, indicating the problem.
Creating a New Repository through Altium Designer
Creation of new Design Repositories from within Altium Designer is performed from the Data Management - Design Repositories page of the Preferences dialog. Click the button and choose SVN from the associated drop-down menu. The Create SVN Design Repository dialog will appear. Use this to give the repository a meaningful name, specify a default checkout path, and specify the location for the repository. If a folder is specified that does not currently exist, it will be created for you.
With all settings specified as required, click OK. The repository will be created at the nominated location and a connection to that repository from Altium Designer made. An entry will appear for it in the listing of Design Repositories back on the Data Management - Design Repositories page of the Preferences dialog.
Example newly created SVN Design Repository, appearing within Altium Designer as Local Repository.
Creating a Repository through the Altium NEXUS Server
Related page: Altium NEXUS Server - Local Version Control Service
Related page: Altium NEXUS Server - Local Version Control Service
When using an Altium NEXUS Server as your managed content server, SVN repositories can be created through the Server's local Version Control service, or external repositories (SVN or Git) can be connected to. Together, all repositories are centrally managed through the VCS page (Admin - VCS) of the Server's browser-based interface.
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 VCS 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).
A linked, external Design Repository is distinguished in the list of repositories by its External property being ticked (). The list of repositories is automatically sorted alphabetically by Name, with repositories defined through the Version Control service listed first, and then external repositories thereafter. The Git-based Versioned Storage repository always appears at the top of the list.
Design Repositories defined through the Altium NEXUS Server are populated to the client automatically during sign-in, so users do not have to worry about urls, protocols, passwords etc. A repository is configured once, on the server, and shared with the intended users as required.
Centrally define access to your organization's Design Repositories. SVN-based repositories can be internal to the Altium NEXUS 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 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.
Centrally define access to your organization's Design Repositories. SVN-based repositories can be internal to the Altium NEXUS 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 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.
Centrally define access to your organization's Design Repositories. SVN-based repositories can be internal to the Altium NEXUS 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 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.
Connecting to an Existing SVN Repository through Altium Designer
In a collaborative environment, one or more Design Repositories may already have been created in a location accessible by multiple users. In this case, you do not need to create a new repository - re-inventing the wheel as it were - rather you simply need to connect to the required existing repository. This is also the case if you have removed a repository from your list of repositories, and want to add it back in again.
To connect to an existing repository, click on the button and choose SVN from the associated drop-down menu. The SVN Design Repository dialog will appear. Enter a name by which to refer to the repository from within Altium Designer, specify a default checkout path, and specify the repository access method and path to the root folder of the repository. You can also specify a particular sub-folder within the repository.
With all settings specified as required, click OK - a connection will be made and the repository will be ready for use.
Connecting to an existing repository - in this case a local repository on the hard drive.
Connecting to an existing repository - in this case a repository internal to an Altium NEXUS Server installation.
Connecting to an Existing Git Repository through Altium Designer
The Data Management - Design Repositories page of the Preferences dialog offers no controls for creating a new Git repository, or connecting to an existing one. However, you can effectively connect to an existing repository of this type by other means - means which are the traditional technique favored by the Git usership. To do so:
- Create your remote Git repository, or access your company's external repository - in which your Altium Designer projects are stored.
- Clone the repository to make your local working Git repository.
- Open an Altium Designer project from the local repository.
Altium Designer will recognize that the project is under version control in a Git-based repository, and provide VCS-related statuses, and commands/ functions to work with the files (including Commit (to local working Git repository) and Push (from local Git repository to remote Git repository)).
Editing Repository Properties
You can also edit the properties of a Design Repository at any time. For example, you might want to change the name of the repository, as displayed and referenced within Altium Designer. Or you might want to edit the connection, perhaps to link to a different repository. To do this, select the entry for the repository in the listing of repositories, then click on the button. The SVN Design Repository dialog (or Git Repository dialog) will appear, from where you can make changes as required.
Disconnecting from a Repository
To disconnect from a Design Repository, select its entry in the list and click the button. The repository is removed from the list of connected Design Repositories. The repository itself is not deleted, it simply becomes disconnected from the system. To use a repository again, connect to it.
Using Design Repositories
Once defined, the connected nature of a VCS-based Design Repository simplifies the ability to either add a project to that repository, or open an existing project from that repository. Instead of having to remember the path or drill down in a browse menu to select the repository, you simply choose the required repository from a convenient listing of all Design Repositories you are currently connected to, and that are activated for use.
Adding a Regular Project to a Repository
Adding a Regular design project to a Design Repository is a straightforward process. With the project open, use the Add Project Folder To Version Control command from either the Projects panel or Storage Manager panel. The Add to Version Control dialog will appear. The field at the top of this dialog presents a drop-down listing of all connected and activated Design Repositories. Select the repository required.
The folder hierarchy within the chosen Design Repository is presented to you in the Folders region of the dialog. Either specify an existing folder into which to add the design files, or create a new folder using the New Folder button. In the latter case, a folder will be added at the specified position within the repository's folder hierarchy, named after the source folder containing the project.
Adding a Regular design project to a local design repository.
Adding a Regular design project to a design repository available through a managed content server.
Creating a New VCS Project
When creating a new VCS project, the Repository field in the New Project dialog presents a drop-down listing of all connected and activated Design Repositories. Select the repository required.
Creating a new VCS design project - all defined Design Repositories are available for use. Shown here is the situation when not signed into a
managed content server.
And shown here is the situation when signed into a managed content server (an Altium NEXUS Server) - all of that server's design repositories
are available, with the exception of the VersionedStorage repository.
Adding a Managed Project to a Design Repository
Related page: The Managed Project
Whether creating a new managed project, or converting an existing design project (Regular or VCS) to a managed project, the resulting project is stored in a Design Repository. As part of the respective interface used to create/convert, the repository can quickly be selected from a list of defined repositories.
Creating a new Managed design project. Only design repositories provided by your managed content server (and that are shared with you
where applicable) will be available for use.
A Regular design project being converted to a Managed project. The target design repository must be of the managed variety - provided by your managed
content server. In the image, the Versioned Storage (Git) repository is available, as well as three further SVN repositories, all provided by an Altium NEXUS Server.
Opening a VCS Project from a Design Repository
Equally straightforward is the ability to open a VCS design project that resides in a Design Repository. Use the File » Checkout command - the Check Out dialog will appear. Use the Check out from field to choose the required repository from a drop-down listing of all connected and activated Design Repositories.
The folder hierarchy within the chosen Design Repository is presented to you in the Folders region of the dialog. Use this region to specify the exact folder that is to be checked out from the repository.
Use the Check out to field to specify where the nominated folder content is to be checked out to. This is your local sandbox area.
Check out an existing version-controlled design project from a nominated Design Repository with controlled ease!
Opening a Managed Project from a Design Repository
To work on a managed project - essentially checking out as a local working copy - use the File » Open Managed Project command. The Open Managed Project dialog will appear, from where you can choose which managed project to open. Only those Managed Projects that have been shared with you (you have permission to access) will be listed, from the Versioned Storage design repository, and any other SVN or Git design repositories shared with you (when using an Altium NEXUS Server).
Choose which managed project to open, from those currently shared with you.