主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用三向合并解决架构模型中的冲突

此示例展示了如何使用 System Composer 三向合并工具 来调查和解决工程中的 System Composer™ 架构模型中的冲突。您可以在生成的报告中查看和合并 System Composer 架构模型的差异。

合并工具会在您打开合并报告之前自动合并无冲突的更改。此示例演示了如何:

  • 审查自动合并的选择项。

  • 将您所需的编辑内容应用到目标文件中。

  • 决定如何解决任何剩余的分歧。

解决冲突后,您可以将已解决的架构模型提交到源代码控制系统。

打开 System Composer 三向合并工具

在“工程”面板中,查找冲突文件。RobotArchitecture 文件在源代码管理列中显示一个红色警告图标,表示存在冲突。

要查看冲突的详细报告,在“源代码管理”面板的修改的文件部分,右键点击 RobotArchitecture/RobotArchitecture.slx 文件,然后选择查看冲突

The source Control panel shows a conflict with the Robot Architecture model file.

审查架构模型中的更改和冲突

示例工程 RobotArchitectureProject 处于 Git™ 源代码管理之下。当您尝试将同事在 main Git 分支上的更改合并到您的 t askBranch 分支时,该操作会导致冲突。

要使用三向合并工具解决冲突,请检查本地文件(在本示例中为 Mine,即 taskBranch 分支)、冲突的修订版本(在本示例中为 Theirs,即 main 分支)以及这两个文件的共同祖先 (Base)。

  • Theirs - 一位正在 main 分支上工作的同事,在配置文件中添加了一个新的构造型,并更新了 Component View 视图中使用的查询。

  • Mine - 您在 taskBranch 分支中,将 Simulink® 的行为更新并添加到了 Motion 组件中,并更新了 Component View 视图中使用的查询。

System Composer 三向合并工具会在顶部打开三个窗格。

  • Mine 窗格显示您所做的更改。在此示例中,该窗格名为 taskBranch

  • Theirs 窗格显示同事所做的更改。在此示例中,该窗格名为 main

  • Base 窗格显示共同祖先版本。

该工具会在可能的情况下自动解决差异,并打开一个 Target 窗格。Target 窗格中包含从 taskBranch 分支导入的更改副本以及自动合并的结果。查看自动合并选项,如有需要可进行编辑,并决定如何解决任何剩余的冲突。

在此示例中,要解决 RobotArchitecture 文件中的冲突,请在 Component View 视图中解决这些冲突。

The tThree-Way Merge tool report shows differences between Theirs, Base, and Mine revisions of the Robot Architecture model file.

解决 RobotArchitecture 中的冲突

查看 RobotArchitecture 架构模型的三向合并报告。

  • 右下角的汇总表显示,该工具自动合并了 125 处更改。该表还显示,报告中提到的两起尚未解决的冲突需要予以关注。

  • 在该报告中,该工具会将未解决的冲突标记为红色。该工具还会将自动解决的差异标记为与相应修订版本相同的颜色。

分析并解决第一处需要注意的差异。该工具在打开时会选中第一处差异。

  • 该工具选中了组件视图这一行。在 Target 窗格的详细信息表中,该工具将颜色组件选择查询属性标记为冲突。

  • 在此示例中,报告显示您的同事将颜色更改为 purple,这与您添加的颜色 green 存在冲突。您可以使用差异旁边提供的选项按钮,选择要在目标文件中保留哪种颜色。

  • 选择一个单选按钮后,您会发现摘要表中显示仍存在一个未解决的冲突。

使用组件选择查询属性解决冲突。

  • 在此示例中,报告显示您的同事将查询修改为 HasStereotype(IsStereotypeDerivedFrom('CriticalProcess')),这与您添加的查询 HasStereotype(IsStereotypeDerivedFrom('simpleProfile.sysComponent')) 存在冲突。

  • 默认情况下,在 Target 窗格中,该工具会选中您在 taskBranch 中所做的更改。假设您想保留默认选择。在该窗格中,点击组件选择查询行中的冲突图标,然后点击标记为已解决

The conflict icon displays a pop-up window that allows the user to mark the conflict as resolved.

  • 该工具将行颜色从红色更新为蓝色,以表明目标文件现在包含了 taskBranch 的更改。

查看摘要表。该表现在显示,您已处理完所有更改。

The summary table shows that there are no remaining unresolved changes and 149 changes have been resolved.

在保存合并结果之前,您可以查看并调整所有自动合并选项。若要将包含所有合并选项的目标文件保存下来,并在源代码控制工具中将冲突文件标记为已解决,请点击接受并关闭

执行最终检查

在解决模型文件中的冲突时,“文件”和“源代码控制”面板中的 Git 状态现在会将模型文件显示为已修改

Source Control panel showing that the Robot Architecture model file and profile have been modified.

在将已解决的模型文件提交到源代码控制系统之前,请通过将合并后的更改与当前分支进行对比,进行最终审查。您应始终通过验证仿真结果或运行测试来验证合并后的模型。

另请参阅

| |

主题