可以使用MATLAB自定义外部源码控制工具®比较工具的差异和合并。如果您想要比较MATLAB文件,如活动脚本,MAT, SLX,或MDL文件,从您的源代码控制工具,然后您可以配置您的源代码控制工具,以打开MATLAB比较工具。MATLAB比较工具提供了合并MathWorks的工具®文件和兼容流行的软件配置管理和版本控制系统。您可以使用Git™的自动合并工具,在同一个SLX文件中自动合并包含不同子系统更改的分支。
要设置您的源代码控制工具使用MATLAB作为diff和merge的应用程序,您必须首先确定完整的路径MLDIFF
那mlMerge
,mlautomerge.
可执行文件,然后按照您正在使用的源代码控制工具的推荐步骤执行。
要获取所需的文件路径,并启用外部源代码控制工具来重用打开的MATLAB会话,请在MATLAB中运行以下命令:
比较.ExternalScmlink.setup()
这个命令设置MATLAB的首选项,在比较,叫允许外部源代码控制工具使用开放的MATLAB会话的差异和合并.
此命令还会显示要将文件路径复制和粘贴到源控制工具设置中的文件路径:
在Windows上®:
差异:matlabroot\ bin \ win64 \ mlDiff.exe
合并:matlabroot\ bin \ win64 \ mlMerge.exe
合并:matlabroot\ bin \ win64 \ mlAutoMerge.exe
在Linux上®:
差异:matlabroot/bin/glnxa64/mlDiff
合并:matlabroot/ bin / glnxa64 / mlmerge
合并:matlabroot/bin/glnxa64/mlAutoMerge
在Mac:
差异:matlabroot/ bin / maci64 / mldiff
合并:matlabroot/ bin / maci64 / mlmerge
合并:matlabroot/ bin / maci64 / mlautomerge
在哪里matlabroot
被替换为安装的完整路径,例如,C:\ Program Files \ Matlab \ R2020B
.
笔记
您的差异和合并操作在可用时使用Open Matlab会话,并且只需在必要时打开MATLAB。操作仅使用指定的MATLAB安装。
配置MATLAB DIFF并使用命令行GIT合并工具:
在matlab中运行此命令。
比较.Externalscmlink.setupgitconfig()
该命令显示文件的完整路径MLDIFF
那mlMerge
,mlautomerge.
可执行文件。它还自动填充全局.gitconfig.
文件。例如:
[Difftool“MLDIFF”] CMD = \“C:/程序文件/ MATLAB / R2020B / BIN / WIN64 / MLDIFF.EXE \”$ local $远程[Mergetool“mlmerge”mlmerge“cmd = \”c:/ program files / matlab/r2020b/bin/win64/mlmerge.exe \“$基本$ local $远程$合并[合并”mlautomerge“mlautomerge”c:/ program files / matlab / r2020b / bin / win64 / mlautomerge.exe \“%o%a%b%a
笔记
对于Git设置,只需要执行第1步。
配置存储库以使用mlautomerge.
可执行文件。打开.gitattributes.
文件在存储库中并添加:
*.基金二元= mlAutoMerge合并
现在,当您在同一个SLX文件中合并包含不同子系统更改的分支时,MATLAB会自动处理合并。
要从命令行Git中运行MATLAB差异和合并工具,请使用git difftool
和git mergetool
:
使用MATLAB差分工具比较模型的两个修订版本,类型:
git difftool -t mlDiff< revisonid2 > myModel.slx
如果您不提供修订id,git difftool
比较工作副本与存储库副本。
如果未指定要比较的模型,命令行Git将通过所有修改的文件,并询问您是否要将它们逐个进行比较。
要使用MATLAB合并工具解决模型中的合并冲突,请键入:
git mergetool -t mlMerge myModel.slx
如果您未指定要合并的型号,命令行Git将通过所有文件,并询问您是否要逐个将它们合并。
SourceTree是一个交互式GUI工具,用于可视化和管理Windows和Git仓库Mac.
配置MATLAB差分和合并工具作为SourceTree外部工具:
使用sourcetree打开,点击工具>选项.
在这一点差标签,下面外部差异/合并,填写以下信息的字段:
外部差异工具:自定义
Diff命令:C:\ Program Files \ Matlab \ R2020B \ Bin \ Win64 \ Mldiff.exe论点:$ local $遥控器合并工具:自定义
merge命令:C:\ Program Files \ Matlab \ R2020B \ Bin \ Win64 \ mlmerge.exe论点:$ base $ local $ remote $ merged
将存储库配置为使用相同SLX文件中的不同子系统中的自动更改mlautomerge.
可执行文件:
打开全球.gitconfig.
文件并添加:
[merge "mlAutoMerge"] driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.exe\" %O %A %B %A
打开.gitattributes.
文件在存储库中并添加:
*.基金二元= mlAutoMerge合并
小费
的完整路径MLDIFF
那mlMerge
,mlautomerge.
可匹配MATLAB安装和您正在使用的操作系统的可执行文件。有关更多信息,请参阅查找MATLAB的Diff,合并和自动合并的完整路径.
要在Sourcetree中使用Matlab Diff工具,请右键单击修改后的文件未置的文件并选择外部差异.
要在SourceTree检测到合并冲突时使用MATLAB合并工具,请选择未提交的更改分支,右键单击修改后的文件,然后选择解决冲突>启动外部合并工具.
使用TortoiseSVN,您可以根据文件扩展程序自定义差异和合并工具。例如,要使用MATLAB Diff和SLX文件的合并工具:
右键单击任何文件资源管理器窗口并选择玳瑁>设置打开TortoiseSVN设置。
在设置侧边栏,选择Diff查看器.点击先进的根据文件扩展名指定差异应用程序。
点击添加用扩展名和MLDIFF
可执行路径:
文件名,扩展名或MIME类型:.slx.外部程序:“C:\ Program Files \ MATLAB \ R2020B \ BIN \ WIN64 \ MLDIFF.EXE”%基本%MINE
点击好吧并重复相同的步骤以添加另一个文件扩展名。
在设置侧边栏,选择Diff查看器合并工具.点击先进的根据文件扩展指定合并应用程序。
点击添加并使用扩展和填充字段mlMerge
可执行路径:
文件名,扩展名或MIME类型:.slx.外部程序:“C: Program Files MATLAB\R2020b\bin\win64\mlMerge.exe”%base %mine %他们的%merged .exe
点击好吧并重复相同的步骤以添加另一个文件扩展名。
你现在可以使用MATLAB工具进行差异和合并,就像使用TortoiseSVN默认的差异和合并应用程序一样。
笔记
不支持使用SVN的自动操作二进制文件,例如SLX文件。金宝app
有一定®P4V,您可以根据文件扩展自定义您的Diff和合并工具。例如,使用MATLAB DEFF和SLX文件的工具,例如:
在Perforce中,点击编辑>喜好.
在喜好侧边栏,选择差.在下面通过扩展指定diff应用程序(覆盖默认),点击添加.
在添加文件类型对话框中,输入以下信息:
延期:.slx.
应用:C:\ Program Files \ Matlab \ R2020B \ Bin \ Win64 \ Mldiff.exe论点:%1%2
点击保存.
在喜好侧边栏,选择合并.在下面通过扩展指定合并应用程序(覆盖默认值),点击添加.
在添加文件类型对话框中,输入以下信息:
延期:.slx.
应用:C:\ Program Files \ Matlab \ R2020B \ Bin \ Win64 \ mlmerge.exe论点:%b %2 %1 %r
点击保存并重复其他文件扩展的步骤。
小费
的完整路径MLDIFF
和mlMerge
可匹配MATLAB安装和您正在使用的操作系统的可执行文件。有关更多信息,请参阅查找MATLAB的Diff,合并和自动合并的完整路径.
现在你可以使用MATLAB工具进行差异和合并,就像使用Perforce默认的差异和合并应用程序一样。