用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
,并将冲突标记为在源代码控制工具中已解决。您现在可以向源代码控制提交更改并继续您的工作。