本地版本控制服务
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 时,其可用的 Design Repositories 会自动添加到 Preferences 对话框的 Data Management – Design Repositories page 中。请注意,该列表还会包含从此 Preferences 页面手动添加的任何“未受管”仓库。
集中定义组织的 Design Repositories 访问权限。仓库可以是 Enterprise Server 安装内部的(使用本地 Version Control 服务定义),也可以是外部的(使用 Altium Designer 内置 SVN、第三方 SVN 或 Git 服务)。访问控制通过 Workspace 浏览器界面的 VCS 页面执行。当用户登录 Workspace 时,其可用的 Design Repositories 会自动添加到 Preferences 对话框的 Data Management – Design Repositories 页面。
添加仓库
要添加 Design Repository,请点击页面右上角的
按钮。将出现 Add Repository 窗口,用于定义仓库。
所需属性取决于你是通过本地 Version Control 服务创建新仓库,还是链接到现有的外部仓库:
- New – 为仓库指定名称和描述。
- Existing – 除名称和描述外,还需要提供仓库的 URL ,以及用于访问该仓库的有效凭据(User Name、Password)(如需要)。
通过 Enterprise Server 的本地 Version Control 服务创建新的基于 SVN 的 Design Repository,或链接到在 Enterprise Server 外部创建的现有仓库(SVN 或 Git)。
已链接的外部 Design Repository 会在仓库列表中通过其 External 属性被勾选(
)来区分。
要在后续阶段编辑 Design Repository 的属性,点击其对应的 Edit 控件(
)。要移除 Design Repository,点击其对应的 Remove 控件(
)。
共享仓库
在集中管理 Design Repositories 之后,你需要确保需要访问某个仓库的人员——包括将进行板级设计的设计人员——拥有相应访问权限。这通过共享该仓库(更准确地说是管理其访问权限)来实现。为此,点击该仓库对应的 Share 控件(
)。
将出现 Manage Permissions 窗口,其中包含将仓库共享给其他用户所需的全部控件。
在集中组织 Design Repositories 后,与他人共享只需管理每个仓库的权限即可。
需要注意的事项:
- 对于通过 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 窗口中点击
按钮。
与已定义的组共享本地仓库
如果仓库是通过本地 Version Control 服务创建的(而不是外部仓库),则你还可以与工作区中已定义的组共享。要将本地(非外部)仓库与另一个组共享:
- 在 Manage Permissions 窗口中单击 Add Group 控件。
- 在出现的 Add Groups 窗口中,在 Select Groups to be added 字段开始输入组名,以弹出匹配组的列表。从列表中选择所需的组。可选择多个组。要移除某个组,请单击其名称右侧的删除叉号。
- 使用 Permission 字段为组设置权限。通过下拉菜单在 Read 访问或 Read/Write 访问之间选择。
-
单击
按钮确认添加组并返回 Manage Permissions 窗口。
-
在 Manage Permissions 窗口中单击
按钮。
与所有用户共享本地仓库
如果仓库是通过本地 Version Control 服务创建的(而不是外部仓库),则你还可以将该仓库共享给工作区的所有用户。要将本地(非外部)仓库共享给任何可以登录工作区的人:
- 在 Manage Permissions 窗口中单击 Add Anyone 控件。
- Anyone 条目将被直接添加到共享实体列表中,并自动以读/写访问方式共享。
-
在 Manage Permissions 窗口中单击
按钮。
与工作区用户共享外部仓库
要将外部仓库共享给工作区用户:
- 在 Manage Permissions 窗口中单击 Add User 控件。
-
在出现的 Add Users 窗口中,在 Select Users to be added 字段开始输入工作区用户的全名、用户名或电子邮件地址,以弹出匹配用户列表。从列表中选择所需用户。要移除该用户,请单击其姓名右侧的删除叉号。
在 SVN User 字段中,输入一个已在外部仓库(SVN 或 Git)中注册、因此具备访问权限的名称。通常这会是该用户在仓库中注册的对应名称
-
单击
按钮确认添加用户并返回 Manage Permissions 窗口。单击 Add User 可按上述第 2 步继续添加更多用户。注意在下方第二个示例图中,用户 Barry已被设置为使用其匹配的仓库名称BarrySmith,而不是通用的ServerAdmin名称。
-
在 Manage Permissions 窗口中单击
按钮。
对本地 SVN 设计仓库的外部访问
通过 Enterprise Server 的本地 Version Control Service 创建的 Design Repository,可以使用 SVN 客户端(如 TortoiseSVN)进行访问。访问使用常规网络协议(目前支持 svn://)。可从两个位置获取/复制正确的仓库地址:
- 工作区浏览器界面的 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 对话框,要求提供有效的连接凭据。输入工作区用户账户的用户名和密码以继续。以下情况下这些凭据有效:
-
该用户账户是在 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 用户同步
当为工作区创建新用户时,该用户定义的凭据(User Name 和 Password)会同时存储在 Enterprise Server 的数据库和 Version Control 服务中,因为后者无法直接从前者获取密码。密码以纯文本格式存储在 Version Control 服务中(位于 \ProgramData\Altium\Altium365Data\Repository\passwd 文件)。
该列表中的条目用于在通过 Altium Designer 使用该服务时访问 Enterprise Server SVN 仓库。有时用户的凭据可能未包含在该文件中,例如当在创建第一个 SVN 仓库时工作区用户已存在(而不是相反)。可通过手动将这些用户名/密码组合添加到 passwd 文件来解决,或在工作区中为每个用户配置文件重新输入密码——后者会相应填充 passwd 文件,并且无需直接访问 Enterprise Server PC。
在 Enterprise Server 的默认安装中,Version Control 服务的用户凭据存储在关联的 Passwd 文件中。
删除仓库
要从 Enterprise Server 的 Version Control 服务中删除仓库,请在工作区基于浏览器的界面 VCS 页面上,单击与该仓库关联的 Remove 控件(
)。
外部仓库条目可以删除,无论仓库中是否包含任何项目。另一方面,本地仓库(即通过 Enterprise Server 的 Version Control 服务在内部创建的仓库)如果包含一个或多个项目,则无法删除。系统会提示你这一点,你应先移除项目,然后才能继续删除。
即便如此,如果本地仓库不包含项目,它也不会被真正删除,而是会被移动到归档目录(默认 Enterprise Server 安装为 \ProgramData\Altium\Altium365Data\RepositoryDumps)。该仓库将包含在一个 Dump 文件中,并带有唯一 ID 前缀(例如 775f6c22-b9a1-468c-9f1f-4f217bb3be6b_central design repository.dump)。