主要内容

用Simulink三向合并解决冲突

此示例向您展示如何使用Simulink®Three-Way Merge来解决Simulink模型中的冲突。您可以在结果报告中查看和合并Simulink模型差异。

设置示例项目

创建并打开示例项目的工作副本。MATLAB®将文件复制到示例文件夹,以便您可以编辑它们。

slcomparisons.examples.simulinkThreeWayMerge;
使用“MinGW64编译器(C)”构建。MEX完成成功。

Simulink模型的变化和冲突

示例项目在Git™源代码控制下。您尝试将主Git分支上另一个用户的更改合并到您的TaskBranch.该操作将导致冲突。

为了使用Three-Way Model Merge工具解决冲突,这个示例展示了如何检查本地文件(我的)、相互冲突的修订(他们的)和这两个文件的共同祖先(基地).

他们的:另一个用户更新了飞行员模型子系统,为飞行员输入命令的振幅使用显式增益块。他还更新了模拟停止时间。

我的:您更改了先导模型子系统的一些配置设置。

Merge工具自动合并不冲突的差异。按照下面的步骤检查自动合并选项,根据需要进行编辑,并决定如何解决任何剩余的差异。在解决冲突之后,将解决的模型提交给源代码控制。

打开Simulink三向合并

在项目文件视图中查找冲突文件。的slproject_f14文件的Git列中显示红色警告符号,表示冲突。

1.要查看冲突的详细报告,右键单击slproject_f14文件并选择观点冲突

视图的变化

Three-Way Merge工具显示了导致该文件冲突的两个Simulink设计的更改。

  • 他们的基地而且我的树显示冲突版本、您的版本和这些文件的基本祖先之间的差异。

  • 目标树显示您将合并更改的文件。这是一个临时文件,当您选择接受合并结果时,它将被复制到项目中。

2.通过单击其中一个树中的一行来检查差异。合并工具在一个编辑器中显示每个模型的更改,例如在“三向合并”窗口右侧的“Simulink editor”或“Configuration Parameters”对话框中。

3.在合并选项卡,在突出控件,选择要显示的模型顶级模特底模型按钮。

检查自动合并

合并工具自动合并大多数不冲突的差异。

4.的顶部检查第一个更改他们的树中通过单击行调用PilotGain.节点已自动合并,您可以使用中的按钮调整自动选择目标树。如果需要,可以查看其他自动合并选项。

解决冲突

有两种类型的差异需要用户操作。

冲突:合并工具不能自动解决这些差异,您需要在目标文件中选择想要的设计。在目标窗格中,在冲突列中查找警告

手动合并:有些差异必须在Simulink中手动合并或忽略。在目标窗格中,这些项由冲突列中的铅笔图标指示

5.选择StickCommand_rad行。此差异需要手动合并,由冲突列中的铅笔图标指示

解决行改差的问题targetFile通过重命名连接到输出块的行飞行员在Simulink编辑器中StickCommand_rad飞行员输出

解决差异后,将更改保存在编辑器中,并在冲突列中标记使用手动合并控件解决的更改。

合并报告不会更新以显示您在编辑器中所做的任何更改。

6.使用下一个工具条按钮,用于检查和解决更改,直到遇到冲突。这StopTime参数已被两个用户更改,且存在冲突。方法解决冲突我的改变。选择旁边的按钮StopTime在矿柱里目标窗格。

改变过滤器

默认情况下,该报告隐藏了所有非功能性更改,例如项的重新定位。

7.在合并选项卡,在过滤器部分,打开和关闭过滤器,以探索这些设计之间的不同变化。

接受变化

8.在解决所有经过筛选和未经筛选的更改后,单击接受&结束.的合并工具关闭报告和模型,接受合并结果targetFile,并将冲突标记为在源代码控制工具中已解决。您现在可以向源代码控制提交更改并继续您的工作。

进一步的信息

比较Simulink模型

项目中的源控制

解决冲突

比较修正

自定义外部源控制使用MATLAB差分和合并

相关的例子

比较和合并Simulink模型

比较和合并包含状态流的Simulink模型

Baidu
map