Simulink 模型 .slx 之间的区别

Diff between Simulink models .slx

我正在使用 Git,我正在使用 MATLAB/Simulink。

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

的 Simulink 模型

例如,当您有一个 simulink 模型,其中有一个所谓的 MATLAB 嵌入式函数,并且您想了解软件不同版本中函数之间的差异时,这会很有用。

了解注释的块以及两个不同 Simulink 模型 (.slx) 之间的所有差异也很有用。

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

  1. 如果您在存储库中,则必须有一个 .git 文件夹。
  2. 进入这个文件夹,打开文件config(如果没有就创建,但正常情况下应该是有的)。
  3. 将以下代码添加到文件中:

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

    *.slx diff=slx
    

通过这种方式,当您在 Simulink 模型 (.slx) 上执行 git diff 时,您将获得非常可读的结果。

希望对其他人有所帮助。

虽然文本比较可以让您了解一些简单更改发生了什么变化,但进入 Simulink 模型的信息存储在 SLX 容器的多个位置。 Simulink Report Generator 中的 Simulink Comparison 功能等工具可以更深入地了解更改内容,并允许进行合并等操作。

Simulink 从 R2014a 开始通过 Simulink 项目或从 R2014b 开始通过 MATLAB 当前文件夹工具进行了 Git 集成。

有商业工具可以执行 Simulink 模型的差异,有些甚至可以合并它们。另一个答案的评论中提到了Mathworks工具,但还有其他工具,例如SimDiff that can integrate with Git directly

免责声明:我在制作 SimDiff

的公司工作

DiffPlug 是一个免费的 git 客户端,原生支持 Simulink。比较模型不是免费的,但您可以免费查看历史记录。