自定义外部源代码管理以使用 MATLAB 执行差异分析和合并

本文详细介绍了如何配置MATLAB与Git、SVN等源代码管理工具集成,包括获取mlDiff、mlMerge和mlAutoMerge的完整路径,以及在Git和TortoiseSVN中设置MATLAB作为差异分析和合并工具,以实现自动合并和可视化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

查找 MATLAB 差异分析、合并和自动合并的完整路径

与 Git 的集成

与 SVN 的集成

TortoiseSVN

与其他源代码管理工具的集成

Perforce P4V


        可以自定义外部源代码管理工具,以使用 MATLAB® 比较工具执行差异分析和合并。如果要通过源代码管理工具来比较 MATLAB 文件(例如实时脚本、MAT、SLX 或 MDL 文件),则可以对源代码管理工具进行配置以打开 MATLAB 比较工具。MATLAB 比较工具为合并 MathWorks® 文件提供了工具,并且与常用的软件配置管理和版本控制系统兼容。可以将自动合并工具与 Git™ 结合使用,以自动将包含不同子系统中更改的分支合并在同一 SLX 文件中。

        要将源代码管理工具设置为使用 MATLAB 作为差异分析和合并应用程序,必须首先确定 mlDiff、mlMerge 和 mlAutoMerge 可执行文件的完整路径,然后按照正在使用的源代码管理工具的建议步骤进行操作。

查找 MATLAB 差异分析、合并和自动合并的完整路径

        要获取所需的文件路径并启用外部源代码管理工具来重用打开的 MATLAB 会话,请在 MATLAB 中运行以下命令:

comparisons.ExternalSCMLink.setup()

        该命令会在比较下设置称为允许外部源代码管理工具使用打开的 MATLAB 会话执行差异分析和合并的 MATLAB 预设项。

此命令还会显示要复制并粘贴到源代码管理工具设置中的文件路径:

  • 在 Windows® 上:

    Diff: matlabroot\bin\win64\mlDiff.exe
    Merge: matlabroot\bin\win64\mlMerge.exe
    AutoMerge: matlabroot\bin\win64\mlAutoMerge.bat
  • 在 Linux® 上:

    Diff: matlabroot/bin/glnxa64/mlDiff
    Merge: matlabroot/bin/glnxa64/mlMerge
    AutoMerge: matlabroot/bin/glnxa64/mlAutoMerge
  • 在 Mac 上:

    Diff: matlabroot/bin/maci64/mlDiff
    Merge: matlabroot/bin/maci64/mlMerge
    AutoMerge: matlabroot/bin/maci64/mlAutoMerge

其中,matlabroot 将替换为安装的完整路径,例如 C:\Program Files\MATLAB\R2020b。​

注意

        差异分析和合并操作将使用打开的 MATLAB 会话(如果有),并且仅在必要时打开 MATLAB。这些操作仅使用指定的 MATLAB 安装。

与 Git 的集成

 命令行

要使用命令行 Git 配置 MATLAB 差异分析和合并工具,请执行下列步骤:

  1. 在 MATLAB 中运行以下命令。

    comparisons.ExternalSCMLink.setupGitConfig()

    此命令显示 mlDiff、mlMerge 和 mlAutoMerge 可执行文件的完整路径。它还会自动填充全局 .gitconfig 文件。例如:

    [difftool "mlDiff"]
       cmd = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlDiff.exe\" $LOCAL $REMOTE
    [mergetool "mlMerge"]
       cmd = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlMerge.exe\" $BASE $LOCAL $REMOTE $MERGED
    [merge "mlAutoMerge"]
       driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.bat\" %O %A %B %A

    注意

            只需为您的 Git 设置执行一次步骤 1。

  2. 将存储库配置为使用 mlAutoMerge 可执行文件。在存储库中打开 .gitattributes 文件,并添加:

    *.slx binary merge=mlAutoMerge

    现在,当在同一个 SLX 文件中合并包含不同子系统中更改的分支时,MATLAB 会自动处理合并。

        要从命令行 Git 运行 MATLAB 差异分析和合并工具,请使用 git difftool 和 git mergetool:

  • 要使用 MATLAB 差异分析工具比较模型的两个修订版,请键入:

    git difftool -t mlDiff <revisonID1> <revisionID2> myModel.slx

            如果不提供修订版 ID,git difftool 会将工作副本与存储库副本进行比较。

            如果没有指定要比较的模型,命令行 Git 将遍历所有修改的文件,并询问是否逐个比较它们。

  • 要使用 MATLAB 合并工具解决模型中的合并冲突,请键入:

    git mergetool -t mlMerge myModel.slx

    如果没有指定要合并的模型,命令行 Git 将遍历所有文件,并询问您是否逐个合并它们。

sourece

SourceTree 是交互式 GUI 工具,可在 Windows 和 Mac 上用于可视化并管理 Git 存储库。

  1. 将 MATLAB 差异分析和合并工具配置为 SourceTree 外部工具:

    1. 在 SourceTree 处于打开状态下,点击 Tools > Options

    2. 在 Diff 选项卡上,在 External Diff / Merge 下,用以下信息填写字段:

      External Diff tool: Custom
      Diff Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
      Arguments: $LOCAL $REMOTE
      Merge tool: Custom
      Merge Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
      Arguments: $BASE $LOCAL $REMOTE $MERGED

  2. 使用 mlAutoMerge 可执行文件将您的存储库配置为在同一 SLX 文件中自动合并不同子系统中的更改:

    1. 打开全局 .gitconfig 文件并添加:

      [merge "mlAutoMerge"]
         driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.bat\" %O %A %B %A
    2. 在存储库中打开 .gitattributes 文件,并添加:

      *.slx binary merge=mlAutoMerge

提示

        自定义 mlDiff、mlMerge 和 mlAutoMerge 可执行文件的完整路径,以匹配 MATLAB 安装和正在使用的操作系统。

        要在 SourceTree 中使用 MATLAB 差异分析工具,请右键点击 Unstaged files 下的修改文件,然后选择 External Diff

        要在 SourceTree 检测到合并冲突时使用 MATLAB 合并工具,请选择 Uncommitted changes 分支,右键点击一个修改的文件,然后选择 Resolve Conflicts > Launch External Merge Tool

与 SVN 的集成

TortoiseSVN

        使用 TortoiseSVN,可以根据文件扩展名自定义您的差异分析和合并工具。例如,要对 SLX 文件使用 MATLAB 差异分析和合并工具,请执行下列步骤:

  1. 在任何文件资源管理器窗口中右键点击,然后选择 TortoiseSVN > Settings 以打开 TortoiseSVN 设置。

  2. 在 Settings 边栏中,选择 Diff Viewer。点击 Advanced 以根据文件扩展名指定差异分析应用程序。

  3. 点击 Add,并在字段中填写扩展名和 mlDiff 可执行文件路径:

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe" %base %mine
  4. 点击 OK,重复相同步骤来添加另一个文件扩展名。

  5. 在 Settings 边栏中,选择 Diff ViewerMerge Tool。点击 Advanced 以根据文件扩展名指定合并应用程序。

  6. 点击 Add,并在字段中填写扩展名和 mlMerge 可执行文件路径:

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe" %base %mine %theirs %merged
  7. 点击 OK,重复相同步骤来添加另一个文件扩展名。

        现在,可以使用 MATLAB 工具进行差异分析和合并,就像使用 TortoiseSVN 默认差异分析和合并应用程序一样。

注意

        不支持使用 SVN 自动合并二进制文件,如 SLX 文件。

与其他源代码管理工具的集成

Perforce P4V

        使用 Perforce® P4V,您可以根据文件扩展名自定义差异分析和合并工具。要对 SLX 文件使用 MATLAB 差异分析和合并工具,请执行下列步骤(此处仅为示例):

  1. 在 Perforce 中,点击 Edit > Preferences

  2. 在 Preferences 边栏中,选择 Diff。在 Specify diff application by extension (overrides default) 下,点击 Add

  3. 在 Add File Type 对话框中,输入以下信息:

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
    Arguments: %1 %2
  4. 点击保存

  5. 在 Preferences 边栏中,选择 Merge。在 Specify merge application by extension (overrides default) 下,点击 Add

  6. 在 Add File Type 对话框中,输入以下信息:

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
    Arguments: %b %2 %1 %r
  7. 点击 Save,并对其他文件扩展名重复上述步骤。

提示

        自定义 mlDiff 和 mlMerge 可执行文件的完整路径,以匹配 MATLAB 安装和您正在使用的操作系统。

        可以使用 MATLAB 工具进行差异分析和合并,就像使用 Perforce 的默认差异分析和合并应用程序一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值