人在仿真软件金宝app

金宝appSimulink &基于模型的设计

三路模型合并和Git

在R2016a,一个新的三方模型合并功能介绍。你可以在以下的文档页面中找到这个特性的清晰描述:

在这些文档页面中,工作流总是以右键单击冲突的模型文件并选择观点冲突

冲突的文件

在这篇博文中,我将尝试提供一些额外的信息,以补充上述链接中描述的工作流。

创建一个冲突

我在Git源代码控制下创建了一个简单的项目。我本可以用GitHub,但我决定使用MathWorks的Git服务器。在Git命令行中,我克隆了两个相同的存储库:

Git克隆

两个项目

在第一个存储库中,我对模型做了一些修改。我进入Simulink Project的Modified Files视图,提交金宝app修改后的文件并将更改推到远程存储库

承诺,推动

我关闭第一个项目,导航到第二个存储库,在那里打开Simulink项目,并以不同的方式修改模型。金宝app

解决冲突

在尝试像第一个存储库中那样提交和推送更改之前,最好单击获取按钮以从远程存储库获取最新版本。完成之后,您可以查看远程主分支是否有新的提交。如果有,您希望在推送更改之前与它合并。

合并

由于冲突,您将收到以下错误:

合并错误

如果你回到Simulink项目,冲突金宝app的文件将如下所示:

Git冲突

右键单击文件并选择观点冲突启动三向模型合并工具。然后你就能看到:

  • 原来的模型
  • 存储库1中的最新模型
  • 存储库2中的最新模型
  • 一个由Simulink自动生成的目标模型,试图对合并前三个模型做出最好的猜测。金宝app

三方模型合并

在三路模型合并的左下角部分,对于每个块和信号,你可以选择你想要在目标模型中合并的版本。对于不能自动合并的冲突,您可以在目标模型中手动修复它们,并分别将它们标记为已解决的。

由于可以同时打开存储库1、存储库2和目标模型的版本,这使得手动解决冲突非常容易。

放大模型合并

一旦您对目标模型感到满意,单击接受和关闭按钮:

接受并关闭

然后,您将能够提交修改后的文件并将更改推送到存储库。如果您单击Manage Branches按钮,您应该看到项目是如何分支和合并回来的。

分支进化

一个提示…

在大多数情况下,这种合并挑战发生在源代码控制下的项目环境中。然而,如果你只是想在没有任何项目或源代码控制的情况下启动工具,你可以使用以下语法:

slxmlcomp。slMerge(baseFile, mineFile, theirfile, targetFile);

其中4个输入是4个模型文件。

现在轮到你了

如何管理分支?尝试一下三方模型合并,让我们知道你的想法,留下一个这里的评论

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。