在版本控制下处理项目的最先进方式是利用互联工作区的功能。工作区提供了项目的高级结构,简化了工作流程和存储,增强了协作能力等。
工作区中的目标 VCS 资源库与工作区和 Altium Designer(登录时)紧密集成,因此无需设置和配置单独的 VCS 资源库。用户访问、资源库内容和项目状态都可以通过 Workspace 浏览器界面进行管理。如果您使用的是已连接工作区的内部 VCS,则本页信息对您不适用。
本文档详细介绍了使用外部版本控制的基本方法,即版本库不托管在已连接的工作区中。这包括本地、通过连接的网络或专用 VCS 服务器产品提供的版本控制版本库。如果您正在使用外部 VCS,请继续阅读。
电子创作和编辑环境的最大优势之一就是可以轻松创建和修改文件。这种功能意味着可以快速捕捉、探索和成熟想法,但也意味着很难跟踪对源代码和电子设计数据等有价值文件所做的更改。
由于需要跟踪对文件所做的修改,再加上需要一个系统的解决方案来管理以电子形式获取的源代码,这就催生了版本控制系统(VCS)。版本控制系统是一种软件工具,它不仅能够保存文件不同版本的历史记录,还支持打开该文件的任何修订版,以及比较文件任何两个版本之间的改动。版本控制系统一般会与本地操作系统(OS)集成,为文件夹和文件提供额外的版本控制功能和操作。
版本控制系统可以完全独立于用于创建文件的创作和编辑环境进行操作。它们通常提供一个界面,允许你添加文件并将其提交到一个称为版本库的中央存储区域;一个签出功能,可将文件从版本库复制到工作文件夹;一个提交功能,可签回版本库中的任何更改;一种记录更改信息的方法,等等。
这些功能在 Windows shell 扩展(如Tortoise 客户端)中都能找到,Altium Designer 本身也包含了这些功能。VCS 操作可在 Altium Designer 环境中执行,无需访问操作系统文件系统。
了解版本控制系统的术语很有帮助。尽管有许多可用的系统,但它们通常都使用类似的术语来描述其功能。
版本控制要点
Altium Designer 支持Subversion(SVN) 和Git版本控制系统 (VCS)。由于 Altium Designer 内部支持这些系统,因此可在 Altium Designer 中访问常见的 SVN/Git 文件处理命令,如提交、更新等,以及其他 Subversion 功能,如创建 SVN 资源库的功能。这与原理图和 PCB 比较功能集成在一起,便于快速比较和识别原理图或 PCB 文档两个修订版之间的差异,对于 PCB 设计,还可解决并发修订版冲突问题。
使用版本控制系统(VCS)的基本方法是,从资源库中访问要处理的项目文件副本,在 Altium Designer 中编辑文件,然后将修改后的文件 "提交 "回资源库。与版本库的交互是通过版本控制系统界面进行的,Altium Designer 已将该界面内置到其存储管理器面板和项目面板中。
版本控制系统工作的关键在于,它通过工作文件夹监控从版本库访问的文件状态,从而跟踪正在处理的修订版本以及是否已被修改。虽然结果是一样的,但不同类型的版本控制系统(Git 或 SVN)对版本库和工作文件的安排是不同的。
Git VCS
下图展示了远程 Git 仓库共享的概念,该共享保存了一系列设计文件修订版(最多修订 5),其内容已被复制到本地工作 Git 仓库,通常是通过克隆远程仓库或将其数据拉入工作仓库。在 Altium Designer 环境中打开工作资源库中的文件时,Altium Designer 会识别出项目文件处于 Git 版本控制之下,其当前版本控制状态会显示在 Storage Manager和 Projects面板中显示。
► 更多信息,请参阅基于 Git 的版本控制页面。
Subversion VCS
下图说明了 Subversion 版本库的概念,该版本库保存了一系列设计文件修订版(直到修订版 5),最新的副本已签出 (File » Check Out)放在一个工作文件夹中。在 Altium Designer 环境中打开工作文件夹中的文件时,Altium Designer 会识别处于 SVN 版本控制下的项目文件,其当前版本控制状态会显示在 Storage Manager和 Projects面板中显示。
► 更多信息,请参阅基于 SVN 的版本控制页面。
在上述两种 VCS 系统中,源代码库和工作位置之间的链接都在后者的 VCS 数据库(在 .svn或 .git系统子文件夹中)。
在 Altium Designer 中打开 VCS 工作文件时,右键菜单中的 Storage Manager面板(和 Projects面板)允许您执行标准的 VCS 操作,如将更改的文件提交到中央版本库 (SVN) 或工作版本库 (Git)。
版本控制访问
在 Altium Designer 中,可通过项目和存储管理器面板执行与 VCS 相关的操作,后者可直接访问其他 VCS 命令和信息。在 Altium Designer 中打开这些面板时,会显示项目文档及其相关的 VCS 状态。
这些面板可从工作区右下角的
按钮菜单或主 View » Panels菜单打开。
项目面板
面板 Projects面板显示当前在 Altium Designer 中打开的所有项目及其组成文档,以及每个文件的相关版本控制状态。
面板中的 VCS 文件状态通过一系列与版本控制系统检测到的特定文件条件相关的图标来显示。一般来说,每个文件的状态是相对于链接版本库中版本控制下的等同文件而言的。面板中的 Projects面板中的 VCS 命令可通过 Version Control选项进行访问。
版本控制图标在 Projects 面板中的版本控制图标
面板的版本控制状态图标只有在以下情况下才会出现 Show VCS status 选项(在 General下)的选项被选中时,面板的 VCS 状态图标才会显示。 Preferences对话框的 "系统-项目面板 "页面上选中选项(在 )时,面板的 VCS 状态图标才会显示。可能需要重新启动才能影响更改。
► 有关详细信息,请参阅项目面板页面。
存储管理器面板
该 Storage Manager面板从文件存储的角度提供活动文档的丰富视图,并提供访问本地文档历史功能和版本控制状态/命令的权限。
面板中的 VCS 文件状态通过一系列与版本控制系统检测到的特定文件条件相关的描述和匹配图标来显示。一般来说,每个文件的状态是相对于链接存储库中版本控制下的等同文件而言的。
面板 Storage Manager面板
面板中的 Storage Manager面板中的 VCS 命令可通过右键上下文菜单访问。要对特定文件执行 VCS 操作,可右键单击面板中的文件条目,然后选择所需的命令,如提交、更新、解决冲突等。
所选文件的修订历史和本地文档历史可以在面板的下部看到,如果切换到 "经典视图",还可以看到事件的整体时间轴。 Switch to Classic View右键单击选项上的 "经典视图"。每次 VCS 提交后,显示的版本号都会递增,其中第一个版本号(Revision 1)对应的是在添加文件之前创建的 VCS 项目文件夹。
► 有关更多信息,请参阅 "存储管理器 "面板页面。
版本控制状态
对于 Projects和 Storage Manager面板,受版本控制的每个文件的当前 VCS 状态都会与其在面板中的条目一起显示。
版本控制系统主要是监控和比较工作文件夹中的文件与设计资源库中的对应文件。Altium Designer 通过其 VCS 接口与版本控制系统请求和交换信息,并对比较文件状态条件做出相应的响应。在实践中,这体现在 Projects和 Storage Manager面板上的文件图标,通过一系列 VCS 警报,并通过对可用文件管理命令的适当更改来实现。
图标及其含义在 "管理项目文件"页面的 "版本控制状态图标"部分有所描述。
多用户访问
在大多数情况下,公司的版本控制基础架构都是基于中央 SVN 或 Git 资源库,通过网络使用其中一种可用的协议方法提供服务。 svn, svn+ssh, https等。这就为网络上的所有用户提供了访问权限,并为从单一来源进行协作项目开发提供了工具。
反过来,多重访问功能也允许不同的团队成员继续独立完成一个项目,而不必等到别人重新签入文件后才能继续工作。分布式Git 版本控制系统在此基础上更进一步,允许在工作过程中将文件提交到本地工作库,并在以后的任何时间将提交的更改 "推送 "回中央 Git版本库,因此在此之前不需要网络连接。
尽管如此,一个团队兼容的 VCS 确实需要一些工具和技术来解决两个用户修改同一个文件的不可避免的情况。有了这些功能,就为真正的多用户设计协作及其相关优势奠定了基础。
为了支持这种情况,Altium Designer 通过存储管理面板提供了原理图和 PCB 比较(或 "差异")功能。
VCS 资源库
根据已知源文件集进行工作的最佳方式是将设计项目存储在受控环境中,如版本控制库。这一点非常重要,因为只有这样才能确保输出来自正确的源文件:
-
确认源文件集是最新的。
-
对其进行快照。
-
根据快照生成输出。
在 Altium Designer 中,这样的资源库被称为 Design Repository.设计资源库由设计团队拥有,包含设计过程历史的高分辨率视图,是设计团队使用的主要协作工具。
设计资源库是一个中央资源库,多个团队成员都可以从这里核对数据,同时保存对设计所做所有修改的完整修订历史。因此,一个设计被存储为其组成项目和源文件的一系列版本,随着时间的推移逐渐形成设计者意图的图景。通过使用受版本控制的设计资源库,可以整体保证设计的任何修订都不会丢失,从而使地理位置分散的团队成员之间可以就同一设计进行安全协作。版本控制系统的性质为设计提供了审计线索。谁修改了什么、在哪个源文件中修改了什么、什么时候修改的,都一目了然,从而实现全面问责。该系统可支持多个版本控制的设计资源库,通过项目文件夹中的版本控制链接建立与特定资源库的链接。
通过连接到设计资源库,实际上就是在系统中注册该资源库--告诉 Altium Designer 它的存在。此外,非官方或 "流氓 "资源库的路径不需要手动指定。通过 Altium Designer,您只能与您特意连接到系统的基于 VCS 的设计资源库进行交互。
在使用版本控制之前,项目文件必须被 VCS 和 Altium Designer 识别为处于版本控制之下。这个过程对于不同的 VCS 方法和应用程序可能有所不同,但基本上都需要创建和/或连接到设计库,并将设计项目文件添加到该设计库中。
设计资源库基于数据库结构,内部以文件和目录的层次结构存储信息,称为文件树。实际连接的版本库可以是中央 SVN 版本库、Git 工作版本库(与远程 Git 版本库关联),也可以是在本地 PC 或共享网络位置等可访问位置创建的版本库。
连接工作区 VCS
在版本控制下处理项目的最高级形式是利用连接工作区的功能。工作区提供了项目的高级结构,简化了工作流程和存储,增强了协作能力等。
工作区中的目标 VCS 资源库与工作区和 Altium Designer(登录时)紧密集成,因此无需设置和配置单独的 VCS 资源库。用户访问、资源库内容和项目状态可通过 Workspace 浏览器界面进行管理。
将新变更更新到版本控制
当一个项目被添加到版本控制中时,其本地工作项目文件夹现在会链接到 VCS 资源库中的对应文件夹。 Storage Manager面板中与项目文件夹条目相关的链接图标所示。要确认链接文件夹和版本库的位置,右键单击面板中的任何文件条目,选择 VCS Properties选项(使用 Git 时不可用)。下面的 Properties对话框包括链接位置的路径和最新 VCS 修订版的信息。
链接图标指示的文件和相应的 Properties 面板,其中包含最新 VCS 修订版的信息
该 Properties对话框提供以下信息(信息仅供查看,不允许编辑):
-
Path - 您工作文件夹中本地文档的路径)。
-
URL - 文件在 VCS 资源库中位置的 URL。
-
Repository Root - 版本库根目录。
-
Repository UUID - 版本库 UUID。
-
Revision - 本地工作文件夹中文件的当前版本。
-
Last Change Author - 上次修改的作者。
-
Last Change Revision - 最后修改的修订
-
Last Change Time - 最后一次更改的日期和时间。
-
Conflicted - 文件是否有冲突。
由于注册了 VCS 链接,版本控制系统可以监控并检测本地项目文件夹中的文件与 VCS 资源库文件夹中的对应文件之间的任何差异。当检测到差异时,如设计文件已在 Altium Designer 中编辑和保存,版本控制系统会将本地文件的状态更改为 Modified(
) ,Altium Designer 将在面板的右键菜单上提供一组适当的 VCS 命令。
提交更改
在 Altium Designer 中编辑并保存项目文档文件后,该文件将标记为 Modified
,并在 Projects和 Storage Manager面板中均显示为 。要在 VCS 中将这些更改提交为新版本,可右键单击面板中的文件条目,然后从上下文菜单中选择 Commit命令,或从主菜单中选择 Project » History & Version Control » Commit命令。
提交对文件的修改时,将打开
编辑注释对话框。使用此对话框可添加注释,说明提交的原因,这有助于其他人了解所做的更改。如果您以前添加过注释,则可以快速选择使用其中之一。
命令 Commit 命令
也可以使用 Commit Whole Project命令,它将提交项目中所有修改过的文件。提交整个项目时,将打开 Commit to Version Control对话框。

该 Commit to Version Control对话框
Options and Controls of the Commit to Version Control Dialog
上窗格
上窗格列出所选项目中的所有文件,并列出它们是否在 VCS 中。此外还列出了其他相关信息,包括文件是否标记为添加或删除。设计人员可以选择要提交到版本控制的文件。该 Path栏显示每个文件的路径, Status栏显示文件的当前状态。对话框的这一部分还有一个小型右键菜单,包含以下选项:
-
Select All - 单击选择对话框中列出的所有文件。选中的文件将添加到 VCS。
-
Select None - 单击取消选择对话框中列出的所有文件。这些文件将不会添加到 VCS。
-
Select Project Documents - 单击仅选择项目文件。只有选中的文件才会添加到 VCS。
下窗格
-
Comment - 在将文件提交到版本控制之前,设计人员可以在此文本框中写入注释。
-
Commit and Push - 该命令用于将对所选文件的工作副本(在存储管理器面板的文件区域)所做的修改签入 VCS 版本库,并将项目更新推送到服务器。修改后的文件会以状态 Modified.
-
Commit - 使用下拉菜单访问 "提交 "按钮,可将对所选文件的工作副本(位于 Storage Manager 面板中的文件区域)所做的修改签入到 VCS 版本库中。修改后的文件会以 Modified.
-
When using Subversion (SVN):提交过程会将更新后的文件从本地文件夹复制到版本库,增加 VCS 条目的修订号,并将文件状态设置为
No Modification(
)。
-
When using Git:提交过程会更新本地工作版本库的 VCS,同时增加条目的版本号并将文件状态设置为
Ahead of Server(
)。你可以继续编辑、保存和提交工作仓库中的文件,也可以使用 Push命令更新远程 Git 仓库,批准新的更改,文件状态将恢复到 No Modification(
)。
请注意,对于基于 Git 的 Workspace 项目,下面的 Commit和 Commit Whole Project命令不可用。您可以使用 Save to Server命令。 Projects面板中的项目条目的右键菜单中使用命令,将 Workspace 项目提交到本地版本库,并一次性推送到远程版本库。
如果需要,可使用 Commit和 Commit Whole Project命令可以通过在高级设置对话框中启用 VCS.AllowGitCommit选项使其可用。
将项目添加到版本控制中后,可使用单个的 Add to Version Control和 Commit命令添加文件并提交到版本控制中。同样,也可以使用 Remove from Version Control命令将特定文件从版本控制中删除(但保留在本地工作项目中)。
查看 Storage Manager面板,查看 VCS Revisions部分的操作序列,其中包括为该文件创建一个新的 VCS 版本(版本号递增)--在本例中为版本 3及其添加的注释。
图标表示所选文件的最新版本和当前版本,或者用版本控制术语来说,即 "头修订版"。
面板的 Storage Manager 面板
要综合查看修订和历史事件条目,可从右键单击右键菜单中选择 Switch to Combined View切换到单一的时间轴视图。
从版本控制中签出
如上所述,Altium Designer 可以从项目的本地文件夹对已添加到版本控制的本地项目进行编辑,然后将更改更新到 VCS 资源库。本地文件夹和版本库文件夹被链接,并最终由 VCS 同步。
另一个无法从源文件夹(本地 PC)访问项目的用户,可以使用克隆(Git)或签出(SVN)流程,从托管项目的 VCS 资源库中获取自己的文件副本。所有希望在项目设计上进行协作的用户都需要连接到共同的设计资源库,该资源库通常可通过本地网络或服务器访问。
选定的资源库项目文件夹及其组成文件将被签出到指定的本地文件夹,并在 Altium Designer 中打开。请注意,本地文件夹被定义为选定版本库的签出文件夹,签出的项目随后会链接到 VCS 版本库中的对应文件夹。VCS 链接指示版本控制系统监控并检测本地签出文件夹中的文件与 VCS 资源库文件夹中的对应文件之间的任何差异。
文件编辑完成后提交更改,这将同步设计资源库中的文件,使其与签出文件夹中的文件相匹配,从而创建一个新的 VCS 修订版。
签出与打开项目
当一个 local项目被添加到版本控制中时,实际上有两种方法可以将其编辑和更新到 VCS:
-
在 Altium Designer 中打开本地项目 (File » Open Project),然后将保存的更改提交到 VCS 资源库。在这种情况下,本地项目文件夹和版本库中的对应文件夹会被 VCS 链接。
-
从 VCS 资源库中签出项目 (File » Check Out) 从 VCS 资源库中签出项目,然后将 Altium Designer 中保存的更改提交回资源库。在这种情况下,指定签出文件夹中的项目和版本库中的对应项目通过 VCS 链接。
本地项目是与其他用户共享的 VCS 项目的源头。根据您的工作方式,这个本地源版本可以作为归档项目源被移除或锁定,然后使用 Check Out方法进行进一步编辑。或者,您也可以继续从本地 "源 "文件夹 (Open Project).
最好的办法是坚持使用一种方法(建议使用签出),因为这两种方法处理的工作文件夹位置不同--是本地源项目文件夹,还是指定的 VCS 签出文件夹。相反,如果同时使用两种方法,本地 PC 上就会有多个同一项目的活动副本。不过,如果每次编辑后都将这些版本提交到集中的 VCS 版本库,那么该版本库将始终保持项目的最新修订版。
当项目在本地不可用时,比如其他用户的情况,唯一的选择就是从 VCS 资源库中签出项目。
还需注意的是,一旦项目从 VCS 资源库中签出,它就会存在于本地,可以直接从签出文件夹 (File » Open Project).在这种情况下,用户可以再次选择从 VCS 签出项目或打开本地版本,但本地副本永远只有一个。在实际的 VCS 中,这两种方法非常相似,但在某些情况下会有不同的表现--比如当本地文件丢失时,签出过程会恢复该文件,但会通过一条 Open Project命令将其从项目中删除。
版本控制修订
在 Altium Designer 中处理处于版本控制下的设计文档时,从中央(共享)VCS 资源库访问的设计文件将代表这些文件的最新修订版。当本地编辑完成并提交(或使用 Git,推送)回共享 VCS 资源库后,这些文件版本将成为最新修订版。
因此,在项目设计开发过程中,签出、编辑、保存和提交(或使用 Git 进行推送)的正常顺序会逐步将新的文件修订版添加到中央 VCS 中。然而,当一个项目由多个设计者合作开发时,任何设计者都可以随时向中央(共享)版本库提交新的修订版本。
过时修订
多个设计人员与中央资源库之间的交互有多种表现形式,其中一种是本地打开的项目不再是最新修订版--从资源库中签出或从本地工作文件夹中打开的项目,其状态为 Out of date(
) 在 Projects面板中的状态为 ( )。
标记为 "命运已绝 "的文件
在这种情况下,自上次在本地编辑同一项目以来,另一个用户已经编辑并提交到版本库。例如,本地用户 Barry正在处理该项目,并已提交说、 Revision 14但另一个用户 Harold提交了 Revision 15,如下图所示 Storage Manager面板所示。由于 VCS 可以检测到本地工作文件夹中的文件与版本库中的文件(在这种情况下,版本库中的文件更新)之间的差异,因此系统会将最新修订版(如 图标所示)视为过时文件。 local
图标所示)为过时。
版本库中的不同修订状态 Storage Manager
您可以使用 Altium Designer 的
比较功能来确定文件版本之间的差异。
这种情况可通过更新本地文件来纠正,使其与中央 VCS 资源库中的文件相匹配。 Update或 Projects或 Storage Manager面板右键上下文菜单中的命令更新本地文件,使其与中央 VCS 资源库中的文件相匹配。然后,两个文件版本会同步,本地版本(用户 Barry)更新为最新版本--在本例中为、 Revision 15.请注意,如果 Save文件的版本被指定为 Out of date会造成 VCS Conflict情况,即 VCS 会检测到工作文件夹中已更新了文件的旧版本。
中央版本库和本地版本库中的 Storage Manager
您也可以选择 Update Whole Project命令访问 Update from Version Control对话框,选择要从共享版本库签出的文件。对话框中会显示项目中所有过期或包含冲突的文档。您可以选择要更新的特定文档,也可以选择一次性更新所有文档。选定的文档将从版本库中更新,默认情况下会选择所有过时的文档。所有选中的文档都将更新到版本库中的最新版本。

对话框 Update from Version Control对话框
栏显示文件目录。 Path列显示文件目录。栏 Status栏显示文件的当前状态。如果文件状态显示为 Conflict,单击 OK更新文件时,会弹出确认对话框。单击 OK更新到版本库中的最新版本,或 Cancel退出并保存对版本库中当前版本的更改。
如果设计文件是从本地检出项目打开的,则不会显示 Out of date状态。面板的 Storage Manager面板的 Refresh命令(或 F5键)可以通过触发 VCS 比较链接文件夹来纠正这种情况,但这种情况进一步表明,在与 SVN 中央版本库协同工作时,项目应从版本库签出(而不是直接在本地打开)。
修订冲突
多个设计人员与中央资源库之间的交互也可能造成这样的情况:两个 Altium Designer 用户在本地编辑并保存了同一个文件,其中一个用户提交了这些更改。
这意味着一个设计者的步骤序列(签出、编辑、保存、提交)与另一个设计者的步骤序列交错,因此一个用户从资源库中签出编辑的文件在被提交时可能不是最新版本。 remain因此,用户从版本库中签出进行编辑的文件可能并不是最新版本--在此期间,另一位用户已经更新了该版本。在这种情况下,谁先将编辑提交到版本库,谁就能创建一个新版本,而另一个编辑并保存了同一文件的用户则会面临以下情况 Conflict情况--用
图标表示。
版本冲突示例
从比较工作文件夹文件和版本库文件的 VCS 角度来看,"冲突 "表示在工作文件夹中编辑并保存了过时的文件修订版。
在使用 Git 版本控制时,当两个设计者编辑、保存并提交了同一个文件到他们的本地 Git 版本库文件夹,然后其中一个设计者将这些修改推送到中心 Git 版本库(远程)时,就会产生冲突。请注意,Git VCS 修订版将以 GUID 字符串的形式显示在 Storage面板中显示为 GUID 字符串。
面板中的 Git VCS 修订 Storage Manager面板
在 History & Version Control右键菜单访问 Projects面板的 Project » History & Version Control主菜单和 Storage Manager面板上的右键菜单、主菜单和 Conflict状态:
-
Commit- 该选项会引发 Subversion 错误,因为提交本地编辑的修订版(例如、
Revision 15) 会覆盖另一个用户已提交的更新版本 (Revision 16) 已被其他用户提交。
-
Update- 该选项会将本地文件版本更新为中央版本库中的最新版本 (
Revision 16) 的最新版本,从而丢失您对 Revision 15.
-
Resolve Conflict- 该选项将放弃上次更新后提交到版本库的更改。启动命令后,会出现一个确认对话框--点击 Yes继续。您工作文件夹中的项目文件将更新为其他用户签入版本库的最新修订版,但编辑器将保留您对上一修订版所做的更改。因此,本地文件的状态为 Modified状态,这样你就可以将这些修改提交到版本库中的新版本--使用 Commit命令或 Commit Whole Project命令。一旦你提交了项目文件,其他用户看到的文件将是 Out of date,因为你已经在版本库中创建了一个新版本。
只有当 text文件有冲突时才推荐使用此选项,因为 Subversion 系统会尝试将差异合并到本地文件中。这一过程可能会损坏其他文件类型,如设计文档,因此解决冲突的最好办法是更新到最新的源版本或还原本地更改。
使用 Git 时, Resolve Conflict命令会将文件提交到本地版本库文件夹,从而覆盖冲突条件。当文件被推送到远程版本库时,其他设计者的文件将被标记为 Out of Date必须更新。不过,与使用 Subversion 一样,最安全的方法是 Update冲突的文件推送到最新的源代码版本(用 Git 术语来说就是 Pull),或者推送到 Revert本地更改。
-
Revert- 该选项会丢失(撤销)本地更改,将本地文件恢复到其基本修订版本--这里是、
Revision 15.版本冲突因此得到解决,但文件将被标记为 Out of date因为版本库中存在更新的版本 (Revision 16) 存在于版本库中。
版本比较
Altium Designer 内置的 "差异比较器"(Difference Comparator)可从 "存储管理器"(Storage Manager)面板访问,它提供了比较设计文件历史修订版本的功能,这是使用版本控制功能的一项宝贵财富。与 "差异"面板结合使用时,可以在 VCS 修订版之间进行逻辑或图形比较,同时交互式地探索受影响的对象。示意图和 PCB 修订版均可进行比较。
要启动两个修订版之间的比较,请选择两个条目(使用标准的 Ctrl+click方法)。 Storage Manager面板 VCS Revisions列表中选择两个条目(使用标准方法),然后从面板右键单击 Compare命令。
您也可以在
History & Version Control » Compare with Head 命令,将重点文档与 VCS 版本库中的文档头修订版进行比较。
Projects面板上的文档右键菜单中的命令,将重点文档与 VCS 资源库中该文档的头修订版进行比较。
面板中的 Compare 命令 Storage Manager面板
两个文件修订版都将以分屏模式打开,可以直观地进行比较。显示的差异由比较器选项卡中的物理比较类型选项决定。 Options for Project对话框 Project » Project Options.
查找和查看比较差异的关键在于 Differences面板,该面板提供了文档之间逻辑或图形差异的可选列表。面板上列出的每个文档修订条目都与编辑器交互,可在选定时以图形方式突出显示检测到的差异(如移动的对象)。
查找和查看比较差异在 Differences面板
比较功能也适用于 PCB 文档修订版,以及原理图和基于文本的文档修订版。
-
对于原理图或 PCB(设计或库)文档,可进行图形比较,并在面板中列出检测到的差异。 Differences面板中列出。在设计编辑器窗口中并排打开两个版本的文档,就能以图形方式查看差异。单击顶层文件夹中检测到的差异,将同时高亮显示两个文档中的差异。
-
对于基于文本的 ASCII 文档,将出现 CompareForm对话框,显示两个版本文档的图形 "差异"。所选文档并排显示。对话框仅用于比较,不能对加载的文档进行修改。通过颜色编码,对话框突出显示了两个文档版本之间的各种差异--添加的行数(粉色)、修改的行数(绿色)和删除的行数(蓝色)。更改摘要和颜色代码图例显示在对话框的左下方。
比较功能
比较 Compare命令可应用于任何一对修订版本,包括当前本地修订版本(在工作文件夹中)和版本库中较新的修订版本。在这种情况下,最新的本地版本会在 Storage Manager面板中显示为 Out of date(
) ,但仍可与其他用户添加到版本库的最新修订版进行比较。
本地版本在 Storage Manager面板中显示为过时
通过这种方法,您可以以图形方式预览更新到新版本后所带来的变化。在上面的示例图片中,当前的本地修订版(用
图标表示)是 Revision 19但另一个用户已向版本库提交了一个新版本((Revision 22).在 Revision 19和 Revision 22之间的可视化比较可以让你做出明智的决定,是接受版本库中的新修改,还是应用 Update命令,还是通过 gh 重新保存本地文件并解决冲突以支持本地版本来推翻冲突。
版本控制术语
| 术语 |
含义 |
| Base |
您签出的版本库中的修订版,即您的本地版本。 Working Copy.也称为签出版本。
|
Check-in
|
将文件的工作副本保存到版本库中。在 Altium Designer 中称为 Commit在 Altium Designer 中。
|
Check-out
|
从 VCS 资源库中提取文件副本到工作文件夹。这通常是文件的最新修订版,但也可签出所有早期修订版。根据 VCS 的不同,文件可以标记为已签出或已完全签出(锁定)。
|
Clone
|
复制(克隆)远程 Git 仓库到本地文件夹中的工作 Git 仓库,同时自动签出 HEAD(最新)版本到文件夹的 Git 命令。本地仓库包含远程仓库的链接引用(本例中为origin在本例中)的链接引用,因此本地工作仓库中更新的文件可以使用 Push 命令上传到远程仓库。
|
Commit
|
将文件的工作副本保存回版本库。在某些版本控制系统中称为 Check-in在某些版本控制系统中被称为在 Altium Design 软件中,正常 Save命令将编辑过的文件保存到工作文件夹,而 Commit则是将文件夹中的文件作为新版本保存到版本库中。
|
Conflict
|
当两个 Altium Designer 用户试图提交影响同一文件同一区域的更改时,就会出现这种情况。必须使用合并工具、手动或通过确定哪个版本将占主导地位(成为新版本)来解决这些问题。
|
Database
|
版本(或源代码)控制下的所有文件的主存储 - 在实际应用中也称为 Repository 在实践中。
|
Git
|
Git 是一个开源版本控制系统。Altium Designer 集成了 Git 功能(通过 VCS Provider - Git扩展),允许直接跟踪修订版本,并从存储管理器和项目面板进行访问。
|
Head
|
提交到版本控制系统的最新修订。
|
Log message
|
当修订版重新签入(提交)到版本库时,对修订版所做更改的注释。日志信息可用作文件更改进度的摘要。
|
Project
|
许多版本控制系统都支持项目概念。VCS 项目是一组相关文件,可以作为一组文件签入/签出。版本控制系统还可能支持其他项目类型的功能,例如为项目中的所有文件设置版本号。这与 Altium Designer 项目的概念不同,后者可以使用 "将项目文件夹添加到版本控制 "命令添加到版本控制中。
|
Push
|
用本地工作库中的文件更新远程 Git 仓库 - 同步本地和远程仓库。当本地 Git 仓库中的文件比远程 Git 仓库中的文件新时,就可以使用该命令。名义上是 Git Pull 命令的补充。
|
Repository
|
版本(或源代码)控制下所有文件的主仓库--也可称为 Database.
|
Revision
|
文件或文件集历史中已提交的变更。这是由 VCS 提供的字母数字参考,用于跟踪其所持有的文件的不同版本(版本)。
|
Sandbox
|
从版本库签出文件的文件夹,以便对其进行处理--也称为 Working Folder.从 Altium Design Software 签出的文件会自动加载。
|
| SVN |
Subversion 是一种开源版本控制系统。Altium Designer 集成了 SVN 功能(通过 VCS Provider - SVN扩展),允许直接跟踪修订版,并可从存储管理器和项目面板访问修订版。
|
Update
|
从文件的版本库版本检查并 "拉入 "修改到工作拷贝(Subversion 的补码,或Subversion 的补码)的行为。 Commit或 Check-in).合并差异的过程需要使用合并工具或手动更新。
|
VCS
|
版本控制系统:适用于任何能够管理文件版本历史和文件检索的工具的通用术语。
|
Version
|
版本一词通常是指由人工分配给受控文件或其输出(如源代码)的外部参考编号。这通常被视为修订版。 |
Working Copy
|
被修改的文件 "本地 "副本通常位于 Working Folder.
|
Working Folder
|
从版本库签出文件的文件夹,以便对其进行处理--在 Git 中,这是本地工作版本库。从 Altium Designer 签出的文件会自动加载。
|
参考资料