在工作区中提供现有项目

推荐且功能最强大的项目处理方式,是直接在已连接的工作区中创建新项目。如果您已有项目,可以将其设为在线可用,并选择启用正式版本控制,从而将其引入工作区。在这两种情况下,项目都将通过工作区的原生版本控制系统(VCS)进行存储和管理。这样,您在通过 Altium Designer 处理项目时,即可使用完整的项目功能。只有将项目完全交由工作区的 VCS 管理,才能与多人共享项目,让他们通过 Altium Designer 进行编辑(前提是他们是该工作区的成员),并利用平台的其他功能,例如历史记录跟踪和高级项目共享。

对于未纳入版本控制或采用外部版本控制的本地项目,可以通过一种称为 简单同步的方式将其注册到工作区。系统会在工作区中创建项目的镜像并进行同步。本地文件的更改一经保存(或保存并提交到外部设计存储库),就会自动同步到工作区中对应的项目镜像。简单同步让您既能保留原始项目的位置,又能使用 Altium 365 平台提供的协作功能。不过,请注意,对于未采用外部 VCS 的本地设计项目,只能由一个人进行编辑(即项目所有者,也就是将该项目设为在工作区中在线可用的人)。

要将现有项目(本地项目或当前采用外部版本控制的项目)设为在工作区中可用——无论是作为 Altium 365 工作区中的镜像项目(Simple Sync),还是作为由工作区原生 Git 版本控制系统管理的项目——请先在 Altium Designer 中正常打开该项目,然后在项目面板中右键单击其条目,并从右键菜单中选择 Make Project Available Online,以打开 Make Available Online 对话框。使用 Enterprise Server 工作区时,Make Project Available on Server 命令会打开 Make Available On Server 对话框。

如果所连接的工作区针对“项目创建”流程主题具有一个或多个活动流程定义,则要将现有项目设为在工作区中可用,请在 Projects 面板中右键单击项目条目,然后从 Convert to Managed Project 子菜单中选择相应命令——了解有关 基于流程的项目转换的更多信息。

将现有本地项目设为在工作区中可用,实质上就是将其“注册”到工作区,并创建其“镜像”。
将现有本地项目设为在工作区中可用,实质上就是将其“注册”到工作区,并创建其“镜像”。

使用 Make Available Online 对话框更改项目的 Name 并添加 Description。默认情况下,名称与原始项目的名称相同。

选中 Version Control 选项,将项目添加到工作区自带的内置 VCS (Git) 中。如果未选中此选项(仅适用于 Altium 365 工作区),项目文件将仅存储在工作区中,以提供基本访问功能,并允许与他人共享,仅供查看和评论,即 Simple Sync 模式。建议启用版本控制,这样您就可以充分使用工作区和 Altium 365 平台提供的各项功能。请注意,只有连接到 Altium 365 工作区时,才能在工作区中镜像项目(Simple Sync)。

如果本地项目已纳入版本控制(外部设计存储库),则 Make Available Online 对话框中将提供 Migrate to Altium 365 Versioned Storage 选项。了解有关 从外部 VCS 迁移到工作区原生 VCS的更多信息。

Project Sharing in an Altium 365 Workspace:

如果禁用 Version Control 选项,即对未纳入外部 VCS 的本地 项目使用非正式的 Simple Sync 功能,则该设计项目只能由一个人编辑(即该项目的所有者,也就是将项目发布到工作区的人)。当您不希望其他人编辑您的设计,但又希望利用 Altium 365 的全局共享机制,与多个人共享设计以供查看和评论时,Simple Sync 就能发挥其优势。

启用 Version Control 选项后,即使用工作区基于 Git 的 Versioned Storage 设计存储库,便可将项目共享给多个人进行编辑,或供其查看和评论。

单击对话框中的 Advanced 链接以显示 Folder 字段。此字段用于指定镜像项目文件夹在工作区文件夹结构中的创建位置。新项目的默认路径在工作区浏览器界面的 Admin – Settings – Projects 页面上指定(默认情况下为 Projects\<ProjectName>)。如有需要,单击 按钮以浏览并选择其他工作区文件夹。

在 Make Available Online 对话框中按需定义项目迁移属性后,单击 OK。 对于未纳入外部版本控制、且已发布到线上(在 Altium 365 工作区中选中了 Version Control 选项)的项目,项目及其文件将被提交并推送到工作区的 Versioned Storage 设计存储库。随后,Projects 面板将显示工作区设计存储库与本地(工作副本)存储库之间的完全同步状态,并以相应的 图标表示。此时,项目将成为真正的工作区项目,不仅仅是在工作区中“注册”,而是已实际提交并纳入工作区的版本控制。对设计所做的任何更改都必须保存(提交/推送)回工作区中的存储库。

发布到工作区的项目 最初会向创建该项目的设计人员(所有者)以及工作区的所有管理员授予读/写访问权限。有关配置项目访问权限的更多信息,请参阅共享设计。

之后,可以从工作区浏览器界面的 Projects 页面访问发布到工作区的 项目。

将外部 VCS 管理的项目发布到已连接的工作区时,自动 创建的外部 VCS 存储库链接会隐藏在 Preferences 对话框的数据管理 – 设计存储库页面中。

此功能目前处于公测阶段,在 高级设置对话框中启用 VCS.HideProjectExternalRepositoriesLinks 选项后即可使用。

使用现有外部版本控制存储库时的限制

如前所述,您的本地设计可能已由现有的外部版本控制系统(Git、SVN、EPDM 等)进行跟踪。使用 Altium 365 工作区时,您可以继续沿用此设置,只需使用 Make Project Available Online 功能将设计注册到工作区,即可在工作区中访问这些设计。

在此模式下,每当您更改设计并将更改提交到外部 VCS 存储库时,设计数据都会在后台镜像到工作区,并照常执行所有必要的处理,例如预览、使用位置分析等。不过,您需要注意以下限制:

  • 创建新的设计项目仍需遵循原有流程,即在外部 VCS 系统中手动创建。然后,使用 Make Project Available Online 功能将项目注册并镜像到工作区。
  • 如果对设计进行了更改,但通过外部工具而非 Altium Designer 执行提交/推送,则这些更改不会出现在工作区的镜像项目中。下次在 Altium Designer 中重新打开项目时,此问题会得到纠正,系统会自动将本地项目与工作区中的镜像版本同步。如果更改由其他用户执行,则重新打开的项目文件将显示为 Out Of Date (),可使用版本控制命令 Update 予以纠正。
  • 其他人打开项目时,需要拥有该外部 VCS 存储库的访问权限。
  • 必须在两个位置设置和维护权限管理:工作区以及主数据源(外部 Git/SVN 等 VCS 存储库)。
  • Altium 365 平台提供的某些功能仅在项目纳入工作区原生版本控制系统后才能使用。如果您将项目保留在外部版本控制系统中,那么即使这些功能已在平台上推出,您也无法使用。您可以从外部 VCS 迁移到工作区的原生 VCS,具体操作步骤请参阅下一节。

使用 GitHub

使用 GitHub 平台作为外部版本控制系统 (VCS),是托管和共享设计项目的一种常见方式,Altium Designer 也支持 Git 仓库。如上文有关 Altium 365 工作区的说明所述,现有的外部 VCS 配置可以与工作区同步(镜像到工作区),从而让您利用其高级数据管理和协作功能。

您平时使用 GitHub 的具体方式会因公司惯例或手头可用的 Git 工具而有所不同。不过,一般来说,设计项目会先在本地 Git 仓库中创建,然后推送到 GitHub(远程)仓库;或者,将现有项目从 GitHub 克隆到本地仓库。项目位于本地 Git 仓库后,即可在 Altium Designer 中打开并进行编辑,软件会识别并使用本地/远程 GitHub 仓库。

如果基于 Git 的项目已镜像到 Altium 365 工作区 (Make Project Available Online),则可以像处理工作区中存储的其他项目一样,在 Altium Designer 中管理和处理该项目。在这种配置下,工作区仍提供其项目管理系统的所有优势,同时在后台与 GitHub 通信,以执行主要的 VCS 操作,如提交、推送、拉取等。Altium Designer 会要求您提供 GitHub 登录凭据,并保留这些凭据以供后续与 GitHub 交互时使用。

请注意,如果 GitHub 账户配置了双因素身份验证,Altium Designer 将无法自动连接到 GitHub。

GitHub 协议

虽然 Git VCS 提供多种数据传输协议,但 Altium Designer 目前仅支持使用 HTTP/HTTPS 协议连接本地 Git 仓库与其远程主仓库。实际使用的协议由远程仓库连接所指定的 URL 前缀决定,例如 https://<remote repository>、ssh://<remote repository>、git://<remote repository> 等。

GitHub 同时支持 SSH 和 HTTPS 协议,并建议使用 HTTPS URL 进行连接。

► 更多信息,请参阅 GitHub 上的我应该使用哪个远程 URL?

HTTPS 协议的优势在于连接安全,且易于使用和实施;相比之下,SSH 由于需要公钥并涉及防火墙/代理端口要求,处理起来更复杂,而且安全性可能更低,也无法提供 SSO(单点登录)身份验证的便利。

同样,由于 GIT 连接协议缺乏身份验证且配置复杂,因此不建议使用(此处也不支持)。

如果您的外部 VCS 系统使用 HTTPS 以外的协议,例如 GitHub SSH 连接,那么从远程克隆的仓库中会预设该协议。由于此协议与 Altium Designer 不兼容,尝试将项目集成到 Altium 工作区时会报错。对于 SSH 连接,系统会提示您尝试将该仓库更新为使用受支持的 HTTPS 连接协议(前提是仓库本身支持此协议)。 如果您不确定本地 Git 仓库使用的远程 URL 协议,可以使用 git remote – v 命令进行检查。

使用 Git Bash 命令行界面检查仓库的远程 URL 设置。使用 Git Bash 命令行界面检查仓库的远程 URL 设置。

您可以使用 git remote set-url <name> <URL> 命令,将仓库重新配置为使用其他 URL,例如改用 HTTPS 协议以兼容 Altium Designer,其中 URL 的前缀指定了协议类型。

更改远程仓库连接 URL 的协议,然后使用 remote 命令进行确认。更改远程仓库连接 URL 的协议,然后使用 remote 命令进行确认。

从外部 VCS 迁移到工作区原生 VCS

连接到 Altium 365 工作区后,Altium Designer 还支持将使用外部 VCS 系统的项目完整地migrate为完全托管的工作区项目,设计文件将托管在工作区自身的 Git 仓库中。转换后的设计项目会保留之前的 VCS 提交历史记录,并可利用工作区的原生 VCS 功能,例如高级项目共享、统一身份验证以及基于事件的历史记录时间线。

项目 VCS 迁移功能同时支持 Git 和 SVN 外部版本控制系统,在将基于本地文件的项目上线时,或将镜像项目(仅同步)提升为由工作区自身 Git VCS 管理的项目时,均可使用此功能。

要迁移存储在外部版本控制系统中的项目,只需在 Projects 面板中右键单击项目名称,然后从上下文菜单中选择 Make Project Available Online 选项,或从主菜单中选择 Project » Make Available Online。在随后出现的 Make Available Online 对话框中,选中 Migrate to Altium 365 Versioned Storage 选项并确认操作 (OK)。

启用 Migrate to Altium 365 Versioned Storage 选项后,实际上会将外部 VCS 仓库替换为工作区 Git 仓库,将项目转换为存储在 Altium 365 工作区中并由其管理的项目,并在可能的情况下转移外部 VCS 中的版本提交历史记录。请注意,如果不选中迁移选项,项目将镜像到工作区(简单同步配置),同时继续使用外部仓库作为其 VCS 存储。

当 Altium Designer 连接到 Enterprise Server 工作区时,也可以使用 VCS 迁移功能。在这种情况下,Make Available On Server 对话框中会提供 Migrate to Altium Versioned Storage 选项。 请注意,如果不选中迁移选项,项目的 外部仓库将继续用作其 VCS 存储 (Enterprise Server 工作区不支持 Simple Sync 配置)。

要将本地 VCS 项目迁移为 Altium 365 工作区中完全托管的 VCS 项目,请在将其上线时选中 VCS 迁移选项。要将本地 VCS 项目迁移为 Altium 365 工作区中完全托管的 VCS 项目,请在将其上线时选中 VCS 迁移选项。

随后将打开 Migrate Project 对话框,并提醒您项目即将迁移至工作区 VCS 的完全管理之下。单击 Browse 按钮,在硬盘上选择一个文件夹,用于创建新的(基于 Git 的)本地项目仓库。单击 Migrate 按钮继续迁移。

Migrate Project 对话框
Migrate Project 对话框

按照提示完成操作(包括执行最后一次 VCS 提交)后,项目即纳入工作区 Git 仓库的版本控制。外部 VCS 的提交历史记录及其注释/消息会转移到新的工作区 VCS 项目中,您可以在 Altium Designer 的历史记录视图中查看:在 Projects 面板中右键单击项目名称,然后选择 History & Version Control » Show Project History 命令。

迁移后,项目的外部 VCS 提交历史记录(左图)将转移到 Altium Designer 的历史记录视图(右图)。迁移后,项目的外部 VCS 提交历史记录(左图)将转移到 Altium Designer 的历史记录视图(右图)。

请注意,迁移完成后首次打开项目历史记录时,您可能会看到系统正在计算所有相关提交的数据。工作区需要一些时间来处理这些提交及其之间的差异。

如果外部 VCS 项目已在 Altium 365 工作区中作为镜像项目(本地与服务器文件同步)进行管理,则可以使用 Migrate to Altium Versioned Storage 命令,将其 VCS 文件迁移到服务器的原生 Git 仓库。该命令可从项目历史记录视图、项目选项对话框 或项目面板 History & Version Control的右键上下文菜单中访问。 

已与工作区同步(镜像到工作区)的 VCS 项目可使用 Migrate Project to Altium Version Control 选项进行迁移。已与工作区同步(镜像到工作区)的 VCS 项目可使用 Migrate Project to Altium Version Control 选项进行迁移。

当源外部 VCS 基于 Git 时,迁移速度最快,因为 Altium 365 工作区的 VCS 也基于 Git,因此迁移过程更简单。而对于 SVN,迁移可能需要一些时间,具体取决于仓库的大小及其包含的提交数量。

VCS Migration limitations

  • Git
    • 连接到 Altium 365 工作区时,支持包含多个 PCB 项目的 Git 仓库。在 Make Available Online 对话框中单击 OK 后,系统将提示您选择要迁移的文件。
    • 项目文件(*.PrjPcb)应位于 Git 仓库的根文件夹中。
  • SVN
    • 不支持基本的 SVN File 协议。
    • 如果 SVN 仓库包含多个项目,迁移过程会在现有 SVN 工作副本之外创建新的本地文件夹。这是因为 Altium 365 工作区存储基于 Git,而 Git 仓库无法存储在 SVN 工作副本内部。
    • 包含项目文件夹之外文件的提交可能不会显示,因为迁移过程仅识别对项目文件夹的提交。
将外部 VCS 项目成功迁移到 Altium 365 工作区后,指向外部仓库的链接会自动移除。此功能已在 Altium Designer 23.0 中实现。如果项目是使用较早版本的 Altium Designer 提供到 Altium 365 工作区的,则 Preferences 对话框的数据管理 - 设计仓库页面上可能会显示该仓库的条目。如果您是工作区管理员,且该仓库未被任何工作区项目引用,则可以选择其条目并单击 Remove 按钮,将该仓库从工作区中移除。请注意,如果项目已被软删除(移至回收站),则必须将其永久删除,才能移除引用该项目的仓库。工作区的 Versioned Storage 仓库无法移除。

迁移后的协作

  • 工作区团队成员将项目迁移到 Altium 版本化存储后,需要确保其他项目协作者连接到团队工作区,然后更新各自的本地(工作)项目副本。本地副本需要更新时,Projects 面板中项目文件旁会显示 图标(已过期),可通过 Project » History & Version Control » Update Whole Project 命令执行更新。
  • 迁移后的项目更新完毕后,Altium Designer 会提议通过重建项目的本地工作文件夹,更新指向新仓库的链接。在 Fix version control link 对话框中选择推荐选项,即可完成本地项目更新。

  • 请注意,如果项目协作者not连接到团队工作区就提交 VCS 设计更改,这些更改将继续记录到外部仓库中,因此无法与迁移后的工作区 VCS 项目保持同步。
  • 迁移期间,Altium Designer 会向原始仓库执行一次提交,以设置通知标记,使其他团队成员使用的 Altium Designer 能够识别出该项目已迁移。

从工作区的 SVN 迁移到工作区的 Git

从 7.2 版本开始,Altium On-Prem Enterprise Server 不再支持 SVN。为避免管理 SVN 项目时受到限制,建议将 SVN 项目迁移到 Enterprise Server 工作区的内置 Git 存储库。您可以在升级服务器之前按照下述步骤执行此操作。 

有关 Altium On-Prem Enterprise Server 停用 SVN 的更多信息,请参阅知识库文章 Altium On-Prem Enterprise Server 7.2.1 停止支持 SVN。

当 Altium Designer 连接到 Enterprise Server 工作区,且设计项目存储在通过工作区的 版本控制服务管理的 SVN 存储库中时,您可以将此项目从 SVN 存储库迁移到工作区的内置 Git 存储库(Versioned Storage)。为此,请在 Projects 面板中右键单击该项目条目,然后从上下文菜单中选择 History & Version Control » Migrate Project to Altium Versioned Storage 命令。或者,单击 Project Options 对话框中的 Migrate to Server Versioned Storage 按钮。

按照提示操作(包括执行最后一次 VCS 提交)后,项目将迁移到工作区 Git 存储库的版本控制下。

控制项目同步

本地项目在工作区中可用后,您可以通过 Project Options 对话框的 常规选项卡,控制其在线可用性和同步。

与项目在线可用性相关的选项和控件位于 Project Options 对话框的 General 选项卡上。
与项目在线可用性相关的选项和控件位于 Project Options 对话框的 General 选项卡上。

使用该选项卡 General 区域中的选项可修改项目描述。这仅影响工作区中的项目。

在该选项卡的 Online Availability and Synchronization 区域中,Version Control 选项反映当前的在线可用方式:

  • Option Enabled – 项目及其源文件存储在工作区自身的原生 VCS(Git)中。这是推荐的方式,因为这样您就能使用工作区和 Altium 365 平台提供的全部功能。

  • Option Disabled – 项目文件存储在工作区中,用于基本访问,并可与他人共享,但仅限查看和评论,即 Simple Sync 方式(仅适用于 Altium 365 工作区)。

使用此选项可根据需要在这两种方式之间切换。

如果项目存储在外部 VCS 存储库中,则此选项不可用。

如果您希望停止本地项目与工作区中对应项目之间的同步,请单击 按钮。此时将显示 Turn off project synchronization 窗口。单击 Unlink 选项,然后返回 Project Options 对话框并单击 OK 。本地项目将不再与工作区中的项目关联。

保存本地项目后,项目面板中将体现这一变化:项目将显示在活动项目组(*.DsnWrk)下,而不再作为活动工作区下的条目显示。由于指向工作区项目的链接会从项目文件中移除,因此需要保存。

工作区中的项目保持不变,此操作不会将其移除。

您可以断开本地项目与工作区中对应项目之间的连接。您可以断开本地项目与工作区中对应项目之间的连接。

您随时可以再次将本地项目作为镜像项目或完整 VCS 项目(Version Control)设为在线可用。连接到 Altium 365 工作区时,Project Options 对话框的 General 选项卡中将显示 按钮,使用该按钮可打开 Make Available Online 对话框。

如果您在关闭同步后再次将本地项目设为在线可用,则可能需要更改项目名称。由于关闭同步不会移除工作区中的项目,因此具有相同名称和文件夹位置的项目可能仍然存在。如果需要使用相同的项目名称,您可以移除工作区中原有的项目实例。

也可以通过 Project Options 对话框的 General 选项卡,将本地项目设为在工作区中在线可用。也可以通过 Project Options 对话框的 General 选项卡,将本地项目设为在工作区中在线可用。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Contents
功能可用性

您可使用的功能取决于您所采用的 Altium 解决方案——Altium Develop、Altium Agile Teams、Altium Agile Enterprise,或 Altium Designer(在有效订阅期内)。

如果您在实际软件中未看到文档中介绍的某项功能, 请联系 Altium Sales 了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Contents