这个例子向您展示了如何使用Simulink®三路合并来解决Simul金宝appink模型中的冲突。您可以在结果报告中查看和合并Simulink模型差异。金宝app
创建和打开示例项目的工作副本。MATLAB®将文件复制到示例文件夹,以便您可以编辑它们。
slcomparisons.examples.金宝appsimulinkThreeWayMerge;
使用“MinGW64 Compiler (C)”编译。墨西哥人成功完成。
示例项目位于Git™源代码控制之下。尝试将另一个用户在主Git分支上的更改合并到您的Git分支中TaskBranch
.这个操作会导致冲突。
要使用三向模型合并工具来解决冲突,此示例显示了如何检查本地文件(我的),互相冲突的修订(他们的)这两个文件的共同祖先(基地).
他们的:另一个用户更新了飞行员模型子系统,使用显式增益块来获取飞行员输入命令的幅度。他还更新了模拟停止时间。
我的:您更改了试验模型子系统的一些配置设置。
合并工具会自动合并不冲突的差异。按照下面的步骤检查自动合并选择,如果需要的话进行编辑,并决定如何解决任何剩余的差异。在解决冲突之后,将解决的模型提交到源代码控制。
在项目文件视图中寻找冲突的文件。的slproject_f14
文件显示Git列中的红色警告符号,表示冲突。
1.要查看冲突的详细报告,右键单击slproject_f14
文件并选择查看冲突.
三向合并工具显示对已导致此文件冲突的两个Simulink设计的更改。金宝app
的他们的,基地和我的树木显示了这些文件的冲突版本,修订版和基本祖先之间的差异。
的目标树显示要合并更改的文件。这是一个临时文件,将在您选择接受合并结果时复制到项目中。
2.通过单击其中一个树中的一行来检查差异。合并工具在一个编辑器中显示每个模型的更改,例如,在三路合并窗口的右侧的Simulink编辑器或配置参数对话框。金宝app
3.在合并标签,在突出节中,选择要显示的模型顶级模特或者底模型按钮。
合并工具自动合并大多数非冲突的差异。
4.检查在顶部的第一个变化他们的通过单击所调用的行飞行员
.此节点已自动合并,您可以使用该按钮调整自动选择目标树。如果要,请查看其他自动合并选择。
有两种类型的差异需要用户动作。
冲突:合并工具不能自动解决这些差异,你需要在目标文件中选择你想要的设计。在目标窗格,在冲突栏中寻找警告.
手动合并:有些差异必须在Simulink中手工合并或忽略。金宝app在目标窗格中,这些项目由冲突列中的铅笔图标指示.
5.选择stickcommand_rad.
排。这种差异需要手动合并,由冲突列中的铅笔图标表示.
解决线路变化差异targetFile
通过重命名连接到命名块的输出的行飞行员
在Simuli金宝appnk编辑器中stickcommand_rad.
来飞行员
输出
.
解决差异后,保存编辑器中的更改,并使用冲突列中的手动合并控件标记更改解决的更改。
Merge报告不会更新以显示在编辑器中所做的任何更改。
6.使用下一个工具条按钮,查看并解决更改,直到遇到冲突为止。这StopTime
参数已被两个用户更改,且存在冲突。使用。来解决冲突我的改变。选择旁边的按钮StopTime
在矿山栏中目标窗格。
默认情况下,该报告隐藏了所有非功能更改,例如重新定位项目。
7.在合并标签,在过滤器节中,打开和关闭过滤器来探索这些设计之间的不同变化。
8.在您解决所有过滤和未过滤的更改后,单击接受和关闭.合并工具关闭报表和模型,接受合并结果targetFile
,并将冲突标记为源控制工具中已解决的冲突。您现在可以提交更改源控制并继续您的工作。