本地版本控制服务
Parent page: 高级主题
Enterprise Server 安装通过其 Version Control 服务提供本地化(并集中化)的版本控制。该服务在你需要的地方直接提供本地版本控制能力,无需再去寻找或付费购买外部 VCS 管理软件。
通过以这种集中方式定义设计仓库,组织可以完全控制其设计人员能够访问和使用哪些仓库。
主要优势
使用这种集中式 Version Control 服务有两个关键优势:
- Altium Designer 与 SVN 共享统一的用户与权限管理。当你登录 Enterprise Server 时,Version Control 服务会使用你的会话/凭据。
- 通过 Enterprise Server 定义的仓库(通过 Enterprise Server Workspace 的浏览器界面中的 VCS 页面(Admin – VCS))会在登录时自动同步到 Altium Designer,因此用户无需关心 URL、协议、密码等。只需在 Enterprise Server 上配置一次,并按需共享给目标用户即可。
仓库创建
仓库可以通过本地 Version Control 服务创建(仅 SVN),也可以连接外部仓库(SVN 或 Git)。所有仓库会在 Workspace 浏览器界面的 VCS 页面(Admin – VCS)中集中管理,管理内容包括:
- 显示名称、描述与仓库路径。
- 可访问性配置——哪些特定用户可以访问它们(或对于通过本地 Version Control 服务定义的仓库,则是角色)。
- 可用性——集中添加或移除,而不是让每位设计人员各自独立创建并连接仓库。
当 Altium Designer 用户登录到 Workspace 时,其可用的设计仓库会自动添加到 Preferences 对话框的 Data Management – Design Repositories page 中。请注意,该列表还会包含从此 Preferences 页面手动添加的任何“未受管(unmanaged)”仓库。
集中定义对组织设计仓库的访问权限。仓库可以是 Enterprise Server 安装内部的(使用本地 Version Control 服务定义),也可以是外部的(使用 Altium Designer 内置 SVN、第三方 SVN 或 Git 服务)。访问控制通过 Workspace 浏览器界面的 VCS page 执行。当用户登录到 Workspace 时,其可用的设计仓库会自动添加到 Preferences dialog 的 Data Management – Design Repositories 页面中。
添加仓库
要添加设计仓库,点击页面右上角的
按钮。将出现 Add Repository 窗口,用它来定义仓库。
所需属性取决于你是通过本地 Version Control 服务创建新仓库,还是链接到现有的外部仓库:
- New——为仓库指定名称与描述。
- Existing——除名称与描述外,还需要提供仓库的 URL ,以及用于访问该仓库的有效凭据(User Name、Password)(如需要)。
通过 Enterprise Server 的本地 Version Control 服务创建新的基于 SVN 的设计仓库,或链接到在 Enterprise Server 外部创建的现有仓库(SVN 或 Git)。
已链接的外部设计仓库会在仓库列表中通过其 External 属性被勾选(
)来区分。
要在后续阶段编辑设计仓库属性,点击其对应的 Edit 控件(
)。要移除设计仓库,点击其对应的 Remove 控件(
)。
共享仓库
在集中管理设计仓库之后,你需要确保需要访问某个仓库的人员——包括将进行板级设计的设计人员——拥有相应访问权限。这通过共享该仓库(更准确地说,是管理其访问权限)来实现。为此,点击该仓库对应的 Share 控件(
)。
将出现 Manage Permissions 窗口,其中包含将仓库共享给其他用户所需的全部控件。
在设计仓库集中组织后,与他人共享只需管理每个仓库的权限即可。
需要注意的事项:
- 对于通过 Enterprise Server 的 Version Control 服务创建的本地仓库(即非外部仓库),其默认权限会将该仓库共享给创建该仓库的用户以及 Administrators 角色。两者都拥有完整的读/写权限。
- 对于外部仓库,默认不与任何人共享——甚至包括通过界面添加该连接的用户。
- 只有本地仓库(非外部)可以共享给 Enterprise Server 中定义的角色组,或公开共享。角色会列在单个用户之后。
- 在权限方面,当启用 Can Write 选项(
)时,用户/角色拥有读/写权限;若禁用该选项,则仅有读取权限。
- 要移除某个已共享访问权限的用户/角色,点击其对应的 Remove 控件(
)。
Sharing a Local Repository with a Workspace User
要将本地(非外部)仓库共享给另一个 Workspace 用户:
- 在 Manage Permissions 窗口中点击 Add User 控件。

- 在弹出的 Add Users 窗口中,在 Select Users to be added 字段开始输入某个 Workspace 用户的全名、用户名或电子邮箱地址,以弹出匹配用户列表。从列表中选择所需用户。可选择多个用户。要移除某个用户,点击其姓名右侧的删除叉号。

- 使用 Permission 字段为用户设置权限。通过下拉菜单在 Read 访问或 Read/Write 访问之间选择。

- 点击
按钮确认添加用户并返回 Manage Permissions 窗口。

- 在 Manage Permissions 窗口中点击
按钮。
Sharing a Local Repository with a defined Role Group
如果该存储库是通过本地 Version Control 服务创建的(而不是外部存储库),那么你还可以将其共享给为你的 Workspace 定义的角色组。要将本地(非外部)存储库共享给另一个角色组:
- 在 Manage Permissions 窗口中单击 Add Group 控件。

- 在弹出的 Add Groups 窗口中,在 Select Groups to be added 字段开始输入角色组名称,以弹出匹配角色列表。从列表中选择所需角色。可选择多个角色。要移除某个角色,单击其名称右侧的删除叉号。

- 使用 Permission 字段为角色组设置权限。通过下拉菜单在 Read 访问或 Read/Write 访问之间选择。

- 单击
按钮确认添加角色并返回 Manage Permissions 窗口。

- 在 Manage Permissions 窗口中单击
按钮。
Sharing a Local Repository with All Users
如果该存储库是通过本地 Version Control 服务创建的(而不是外部存储库),那么你还可以将该存储库共享给所有 Workspace 用户。要将本地(非外部)存储库共享给任何能够登录 Workspace 的人:
- 在 Manage Permissions 窗口中单击 Add Anyone 控件。

- Anyone 条目将直接添加到共享实体列表中,并自动以读/写访问方式共享。

- 在 Manage Permissions 窗口中单击
按钮。
Sharing an External Repository with a Workspace User
要将外部存储库共享给某个 Workspace 用户:
- 在 Manage Permissions 窗口中单击 Add User 控件。

- 在弹出的 Add Users 窗口中,在 Select Users to be added 字段开始输入 Workspace 用户的全名、用户名或电子邮件地址,以弹出匹配用户列表。从列表中选择所需用户。要移除该用户,单击其姓名右侧的删除叉号。
在 SVN User 字段中,输入一个已在外部存储库(SVN 或 Git)中注册、因此具备访问权限的名称。通常这会是该用户在存储库中注册的对应名称。

- 单击
按钮确认添加用户并返回 Manage Permissions 窗口。单击 Add User 可按上述第 2 步继续添加更多用户。请注意,在下面第二个示例图中,用户 Barry被设置为使用其对应的存储库名称BarrySmith,而不是通用的ServerAdmin名称。

- 在 Manage Permissions 窗口中单击
按钮。
对本地 SVN 设计存储库的外部访问
通过 Enterprise Server 的本地 Version Control Service 创建的 Design Repository,可以使用诸如 TortoiseSVN 之类的 SVN 客户端进行访问。访问使用常规网络协议(目前支持 svn://)。正确的存储库地址可从两个位置获取/复制:
- Workspace 浏览器界面的 VCS 页面——在目标存储库的 Repository Path 字段中。
从 Enterprise Server 创建的“内部”存储库会显示其相对于 Enterprise Server 的地址路径,即主机 PC 的 localhost 地址。
- 在 Altium Designer 中,通过 Preferences 对话框的 Data Management – Design Repositories page——在目标存储库的 Repository 字段中。
从 Altium Designer(或任何不在 Enterprise Server 主机 PC 上的应用程序)的角度来看,存储库地址路径基于其主机 PC 的名称。
在 Subversion 客户端的存储库浏览功能中使用获取到的地址。首次访问时会打开一个中间 Authentication 对话框,要求提供有效的连接凭据。输入某个 Workspace 用户账户的用户名和密码以继续。以下情况下这些凭据有效:
- 该用户账户是在存储库于 Enterprise Server 中创建after时已添加的。适用于已创建存储库的用户可在 Enterprise Server PC 的
\ProgramData\Altium\Altium365Data\Repository文件夹中找到的passwd文件中查看——见下文。 - 该存储库已通过在服务器的 Manage Permissions for <repository name>窗口中使用 Add User 命令添加该用户名的方式共享给该用户账户。这可在 Enterprise Server PC 的
\ProgramData\Altium\Altium365Data\Repository文件夹中找到的存储库authz文件中体现。
浏览通过 Enterprise Server 安装的本地、基于 SVN 的 Version Control 服务创建的 Design Repository 内容。
Enterprise Server & VCS 用户同步
当创建新的 Workspace 用户时,该用户定义的凭据(User Name 和 Password)会同时存储在 Enterprise Server 的数据库和 Version Control 服务中,因为后者无法直接从前者获取密码。密码以纯文本格式存储在 Version Control 服务中(位于 \ProgramData\Altium\Altium365Data\Repository\passwd 文件)。
该列表中的条目在通过 Altium Designer 使用该服务时,提供对 Enterprise Server SVN 存储库的访问。某些情况下,用户凭据可能未包含在该文件中,例如:在创建第一个 SVN 存储库时 Workspace 用户已存在(而不是相反)。可通过手动将这些用户名/密码组合添加到 passwd 文件来解决,或在 Workspace 中为每个用户配置文件重新输入密码——后者会相应填充 passwd 文件,并且无需直接访问 Enterprise Server PC。
在 Enterprise Server 的默认安装中,Version Control 服务的用户凭据存储在关联的 Passwd 文件中。
删除存储库
要从 Enterprise Server 的 Version Control 服务中删除存储库,请在 Workspace 浏览器界面的 VCS 页面上,单击与该存储库关联的 Remove 控件(
)。
外部存储库条目可以删除,而不论该存储库是否包含任何项目。相对地,本地存储库(即通过 Enterprise Server 的 Version Control 服务在内部创建的存储库)如果包含一个或多个项目,则无法删除。系统会提示你这一点,你应先移除项目,然后才能继续删除。
即便如此,如果本地存储库不包含任何项目,它也不会被真正删除,而是会被移动到归档目录(默认 Enterprise Server 安装为 \ProgramData\Altium\Altium365Data\RepositoryDumps)。该存储库将包含在一个 Dump 文件中,并带有唯一 ID 前缀(例如 775f6c22-b9a1-468c-9f1f-4f217bb3be6b_central design repository.dump)。