Simulink模型之间的差异 .slx

7

我正在使用Git,并且同时使用MATLAB / Simulink。

我知道新版本的MATLAB / Simulink中有一些与Git的集成,但我想知道是否有一种简单的方法来读取两个格式为.slx的Simulink模型之间的git diff

例如,当您在Simulink模型中有所谓的MATLAB嵌入式函数时,要了解软件不同版本之间的函数差异是非常有用的。

此外,了解注释掉的块和两个不同的Simulink模型之间的所有差异(.slx)也很有用。

4个回答

11

我找到了解决我的问题的方法。

  1. 如果你在你的代码仓库中,你必须有一个.git文件夹。
  2. 进入这个文件夹并打开config文件(如果不存在,则创建一个,但通常应该会有)。
  3. 将以下代码添加到文件中:

    [diff "slx"]
    textconv = unzip -c -a
    
  4. 然后你需要创建或修改文件REPOSITORY/.gitattributes并添加:

  5. *.slx diff=slx
    

这样,当您在Simulink模型(.slx)上执行git diff时,您将得到一个非常易读的结果。

希望对其他人有所帮助。


1
MathWorks还通过使用Simulink报告生成器从模型生成的XML文件提供模型比较,详情请参见:http://uk.mathworks.com/help/rptgenext/model-comparison.html - am304
1
是的,我知道。要使用它,您应该创建一个所谓的SIMULINK项目。我不想这样做。但这只是个人喜好问题。 - desmond13
这可能有效,但由于Simulink文件格式未经记录,当您切换版本/发布版或比较在不同MATLAB版本中创建的两个模型时,存在无法正常工作的风险。 - am304
点个赞吧,这个太棒了... :) 有没有办法对文件夹的直接文件查看也这样做呢?使用 Git Extensions 这样做在使用内置的 diff 工具时可以完美地解压缩,但是直接查看文件时,它不会先解压缩... - LightCC

3

虽然文本比较可以给出一些简单更改的想法,但是用于存储Simulink模型的信息存储在SLX容器的各种位置中。像Simulink报告生成器中的Simulink比较功能这样的工具可以更深入地了解发生了什么变化,并允许合并等操作。

自R2014a以来,Simulink通过Simulink项目或自R2014b以来通过MATLAB当前文件夹工具实现了Git集成。


2
有商业工具可以对Simulink模型进行差异比较,甚至一些工具还可以合并它们。在另一个答案的评论中提到了Mathworks工具,但还有其他工具,如SimDiff,可以直接与Git集成。
免责声明:我为制作SimDiff的公司工作。

谢谢您的答复。您能否突出或指出SimDiff与MathWorks工具的区别,除了git直接集成之外?是否有学生版?谢谢 - desmond13
1
SimDiff自2005年上市以来,我认为比Mathworks工具更早。速度和准确性一直是SimDiff的重点。一个显著的优势是,执行差异不需要打开MATLAB,这可以节省时间并避免使用MATLAB许可证。 - Kevin K
就学生许可证而言,我认为我们目前没有提供此项服务,但是学生可能有资格获得延长试用期。不过,您应该联系销售部门以确认相关政策;因为我对最新的政策不太了解。 - Kevin K

0

DiffPlug 是一款免费的 Git 客户端,具有本机支持 Simulink 的功能。模型对比不是免费的,但您可以免费从历史记录查看它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接