Parent page: 高级主题
Enterprise Server 安装通过其 Version Control 服务提供本地化(并集中化)的版本控制。该服务可在你需要的地方直接提供本地版本控制能力,无需再去寻找或付费购买外部 VCS 管理软件。
通过以这种集中方式定义设计仓库,组织可以完全控制其设计人员能够访问和使用哪些仓库。
Relevance of the information on this page:
全新安装的 Enterprise Server 仅提供一个基于 Git 的设计仓库,用于容纳你所有的 Workspace 设计项目——仅此而已!这避免了与 Enterprise Server 本地 Version Control 服务相关的任何设置与复杂性。你只有一个设计仓库——Versioned Storage——供所有设计人员访问并向其中发布。因此,Workspace 浏览器界面中的 VCS 页面仅用于信息展示——你无法添加新仓库,这个唯一的 Git 仓库也不能以任何方式修改或删除。因此,该页面上的信息对你不适用。
如果你是从 Altium Vault 3.0 升级到 Enterprise Server,那么也会启用 SVN 仓库的使用,以便你继续沿用之前(已建立)的设计流程。在这种情况下,你仍可通过本地 Version Control 服务(仅 SVN)创建仓库,或连接到外部仓库(SVN 或 Git)。因此,该页面上的信息仍与你相关。
Important:请注意,否则
按钮将呈灰色,且无法创建/添加仓库。
关键优势
使用这种集中式 Version Control 服务有两个关键优势:
- Altium Designer 与 SVN 共享统一的用户与权限管理。当你登录 Enterprise Server 时,Version Control 服务会使用你的会话/凭据。
- 通过 Enterprise Server 定义的仓库(通过 Enterprise Server Workspace 的基于浏览器的界面中的 VCS 页面(Admin – VCS))会在登录时自动同步到 Altium Designer,因此用户无需关心 URL、协议、密码等。只需在 Enterprise Server 上配置一次,并按需共享给目标用户即可。
当创建一个新的 Enterprise Server 用户时,为该用户定义的 Password 会同时存储在 Enterprise Server 与 SVN 服务中,因为后者无法直接从前者获取密码。
仓库创建
仓库可以通过本地 Version Control 服务(仅 SVN)创建,或连接到外部仓库(SVN 或 Git)。所有仓库会在 Workspace 基于浏览器的界面中的 VCS 页面(Admin – VCS)进行集中管理,包括:
- 显示名称、描述与仓库路径。
- 配置可访问性——哪些特定用户可以访问(对于通过本地 Version Control 服务定义的仓库,则是角色)。
- 可用性——集中添加或移除,而不是让每位设计人员各自独立创建并连接仓库。
默认提供两个设计仓库,由本地 Version Control 服务提供,分别命名为 DefaultRepository(SVN 仓库)和 Versioned Storage(Git 仓库)。DefaultRepository 仓库不能重命名,但你可以为其添加描述、管理用户访问权限,或按需将其移除。Versioned Storage 仓库仅用于对 Workspace 项目进行集成存储,不能重命名、共享或移除。
当 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 窗口,用它来定义仓库。
只有 SVN 类型的仓库可以通过本地 Version Control 服务创建。现有(外部)仓库可以被链接,这些仓库可以是 SVN 或 Git。
所需属性取决于你是使用本地 Version Control 服务创建新仓库,还是链接到现有的外部仓库:
- New——只需为仓库提供名称与描述。
- Existing——除名称与描述外,还需要提供仓库的 URL ,以及用于访问该仓库的有效凭据(User Name、Password)(如需要)。
创建 Enterprise Server 内部仓库时,名称应以字母或数字开头,并且可包含 A-Z、a-z 或 0-9。名称中间允许使用下划线、短横线和空格。不能使用以下词:AUX、COM1-COM9、LPT1-LPT9、CON、NUL 和 PRN。外部仓库没有命名限制。
通过 Enterprise Server 的本地 Version Control 服务创建新的基于 SVN 的设计仓库,或链接到在 Enterprise Server 外部创建的现有仓库(SVN 或 Git)。
已链接的外部设计仓库会在仓库列表中通过其 External 属性被勾选(
)来区分。
要在后续阶段编辑设计仓库的属性,点击其对应的 Edit 控件(
)。要移除设计仓库,点击其对应的 Remove 控件(
)。
仓库列表会按 Name 自动按字母顺序排序:先列出通过 Version Control 服务定义的本地仓库,然后是外部仓库。基于 Git 的 Versioned Storage 仓库——无法修改或删除——始终显示在列表顶部。
共享仓库
在集中管理设计仓库之后,你需要确保需要访问某个仓库的人员(包括将进行板级设计的设计人员)拥有相应访问权限。这通过共享该仓库来实现,或者更准确地说,是通过管理其访问权限。为此,点击该仓库对应的 Share 控件(
)。
将出现 Manage Permissions 窗口,其中包含将仓库共享给其他用户所需的全部控件。
在设计仓库集中组织后,与他人共享只需管理每个仓库的权限即可。
需要注意的事项:
- 对于通过 Enterprise Server 的 Version Control 服务创建的本地仓库(即非外部仓库),其默认权限会将该仓库共享给创建该仓库的用户以及 Administrators 角色。两者都拥有完整的读/写访问权限。
- 对于外部仓库,默认不与任何人共享——甚至包括通过界面添加该连接的用户。
- 只有本地仓库(非外部)可以与 Enterprise Server 中定义的角色组共享,或公开共享。角色会列在单个用户之后。
- 在权限方面,当启用 Can Write 选项(
)时,用户/角色拥有读/写访问权限;若禁用该选项,则仅有读取权限。
Be Aware:共享内部设计仓库时的权限设置并未完全按预期工作。即使某个内部设计仓库本身被以只读方式共享给某个服务器用户,该用户仍然能够在该仓库内创建新的 Workspace 项目,并对所创建的对应项目文件夹获得完整的读/写权限。请注意,这一错误行为仅适用于该用户创建的新 Workspace 项目及其文件夹;该用户对仓库中的其他文件夹不具备写入权限。
- 要移除某个已共享访问权限的用户/角色,点击对应的 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 窗口中点击
按钮。
要编辑现有用户的权限,在 Manage Permissions 窗口中使用 Can Write 选项在读/写访问(启用)与只读访问(禁用)之间切换。
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 窗口中单击
按钮。
要编辑现有角色的权限,请在 Manage Permissions 窗口中使用 Can Write 选项,在读/写访问(启用)与只读访问(禁用)之间切换。
Sharing a Local Repository with All Users
如果该仓库是通过本地 Version Control 服务创建的(而不是外部仓库),那么你还可以将该仓库共享给所有 Workspace 用户。要将本地(非外部)仓库共享给任何能够登录 Workspace 的人:
- 在 Manage Permissions 窗口中单击 Add Anyone 控件。

- Anyone 条目将被直接添加到共享实体列表中,并自动以读/写权限共享。

- 在 Manage Permissions 窗口中单击
按钮。
要编辑 Anyone 实体的权限,请在 Manage Permissions 窗口中使用 Can Write 选项,在读/写访问(启用)与只读访问(禁用)之间切换。
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 窗口中单击
按钮。
Workspace 用户可以映射到外部 SVN 仓库中的任何有效用户名,并且多个 Workspace 用户也可以映射到外部 SVN 仓库中的同一个用户名。
- 访问权限本身(只读或读/写)最终由外部仓库的安装配置决定。Enterprise Server 不会影响外部仓库的用户授权,因此也无法从 Enterprise Server 端管理这些权限。
- 当从 Altium Designer 访问 Enterprise Server 的外部仓库时(例如创建新项目时),如果之前未进行过设置,可能会要求输入仓库连接凭据。此后对该仓库的后续操作将自动使用这些凭据。
对本地 SVN 设计仓库的外部访问
通过 Enterprise Server 的本地 Version Control Service 创建的 Design Repository,可以使用诸如 TortoiseSVN 之类的 SVN 客户端进行访问。访问使用常规网络协议(目前支持 svn://)。正确的仓库地址可从两个位置获取/复制:
- Workspace 浏览器界面的 VCS 页面——在目标仓库的 Repository Path 字段中。
从 Enterprise Server 创建的“内部”仓库会显示其相对于 Enterprise Server 的地址路径,也就是主机 PC 的 localhost 地址。
从 Altium Designer(或任何不在 Enterprise Server 主机 PC 上的应用程序)的角度来看,仓库地址路径基于其主机 PC 的名称。
显示的地址取决于你是从安装了 Enterprise Server 的同一台机器访问仓库(svn://localhost/<RepositoryName>),还是从远程 PC 访问(svn://<ComputerName>/<RepositoryName>,其中 ComputerName 是 Enterprise Server 所在 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 内容。
通过本地 Version Control 服务创建的 Design Repository,其内部数据存储在 \ProgramData\Altium\Altium365Data\Repository 文件夹中对应的子文件夹内(针对 Enterprise Server 的默认安装)。建议不要更改或编辑该文件夹中的文件,除非由 IT 人员出于维护目的进行操作。
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 控件(
)。
注意:在 Altium Designer 的
Preferences 对话框中移除
Data Management – Design Repositories page 里的仓库,只会让该仓库不再被该 Altium Designer 实例使用;并不会从 Enterprise Server 的 Version Control 服务中删除该仓库。如果你从 Enterprise Server 登出再重新登录,该仓库会再次出现在该 Altium Designer 实例的可用仓库列表中。
外部仓库条目可以删除,而不管仓库中是否包含任何项目。相对地,本地仓库(即通过 Enterprise Server 的 Version Control 服务在内部创建的仓库)如果包含一个或多个项目,则无法删除。系统会提示你这一点,你应先移除这些项目,然后才能继续删除。
即便如此,如果某个本地仓库不包含任何项目,它也不会被真正删除,而是会被移动到归档目录(默认 Enterprise Server 安装为 \ProgramData\Altium\Altium365Data\RepositoryDumps)。该仓库会包含在一个 Dump 文件中,并带有唯一 ID 前缀(例如 775f6c22-b9a1-468c-9f1f-4f217bb3be6b_central design repository.dump)。