本地版本控制服务
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 时,可供其使用的设计仓库会自动添加到 Data Management – Design Repositories page(位于 Preferences 对话框中)。请注意,该列表还会包含从此 Preferences 页面手动添加的任何“未受管”仓库。
集中定义组织的设计仓库访问权限。仓库可以是 Enterprise Server 安装内部的(使用本地 Version Control 服务定义),也可以是外部的(通过 Altium Designer 内置 SVN、第三方 SVN 或 Git 服务)。访问控制通过 Workspace 基于浏览器的界面中的 VCS page 执行。当用户登录 Workspace 时,可供其使用的设计仓库会自动添加到 Data Management – Design Repositories page(位于 Preferences dialog 中)。
添加仓库
要添加设计仓库,点击页面右上角的
按钮。将出现 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 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 用户账户的用户名和密码以继续。若满足以下条件,这些凭据即有效:
- 该用户账户是在创建仓库之前被添加的 after。适用于已创建仓库的用户可在 Enterprise Server PC 的
\ProgramData\Altium\Altium365Data\Repository文件夹中找到的passwd文件中查看——见下文。 - 该仓库已通过服务器 Manage Permissions for <repository name> 窗口中的 Add User 命令,将该用户名添加进去从而共享给该用户账户。这会体现在仓库的
authz文件中,该文件位于 Enterprise Server PC 的\ProgramData\Altium\Altium365Data\Repository文件夹中。
浏览通过 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)。












