Main Content

比较文件和文件夹以及合并文件

您可以使用比较工具来显示选定文件或文件夹对组之间的差异。对于某些文件类型,您还可以将更改从一个文件合并到另一个文件中。

比较过程

比较过程包括三个步骤:

  1. 选择要比较的文件或文件夹。

  2. 选择比较类型。

  3. 浏览比较报告。

选择要比较的文件或文件夹

您可以使用以下任意方法选择要比较的文件和文件夹:

  • MATLAB® 桌面 - 转至主页选项卡,并在文件部分中点击比较。点击 Browse to select File or Folder 按钮以选择要比较的项目,或将文件从文件浏览器拖入第一个文件或文件夹第二个文件或文件夹字段。

  • 当前文件夹浏览器 - 选择某个文件或文件夹,右键点击,然后选择比较对象。点击 Browse to select File or Folder 按钮以选择要比较的第二个项目,或将文件从文件浏览器拖入第二个文件或文件夹字段。要选择要比较的两个文件或子文件夹,请在按住 Ctrl 的同时点击文件名。然后右键点击并选择比较选定的文件/文件夹

  • 编辑器或实时编辑器 - 转至编辑器实时编辑器选项卡,并在文件部分中点击比较。比较工具在第一个文件或文件夹字段中包含当前打开的文件。点击 Browse to select File or Folder 按钮以选择要比较的第二个项目,或将文件从文件浏览器拖入第二个文件或文件夹字段。

    要将文件的自动保存版本与磁盘上保存的版本进行比较,请转到编辑器选项卡并点击比较 drop-down arrow,然后选择与磁盘上的版本进行比较保存并与自动保存版本进行比较。如果您的文件已修改,编辑器会在比较之前保存该文件。与磁盘上的版本进行比较保存并与自动保存进行比较选项仅在自动保存文件更改的选项禁用时可用。要禁用该选项,请转到主页选项卡,然后在环境部分中点击预设。然后,选择编辑器/调试器,并清除在文件外点击时保存更改。此选项在实时编辑器中不可用。

  • 命令行窗口 - 使用 visdiff 函数。例如,要使用 visdiff 函数和默认的文本比较对 lengthofline.mlengthofline2.m 这两个文件进行比较,请键入 visdiff('lengthofline.m','lengthofline2.m')。MATLAB 将打开比较工具并显示生成的比较报告。

提示

选择要比较的文件夹时,选择包括子文件夹以在比较中包括子文件夹内容。

选择比较类型

比较工具使用为选定项定义的默认比较类型对选定项进行比较。对于某些项类型,您可以选择不同于默认类型的比较类型。例如,您可以选择文本、二进制、文件列表或 XML 比较。要更改比较类型,请选择要比较的文件或文件夹。然后,从可用的比较类型选项中进行选择。比较工具仅显示对选定项类型有效的选项。

无法更改现有比较报告的比较类型。要更改比较类型,请开始一次新的比较。

Select Files or Folders for Comparison dialog box with text boxes for specifying the two files or folders to compare and a drop-down list for selecting the comparison type

如果您使用当前文件夹浏览器或 visdiff 函数指定两个要比较的文件或文件夹,则比较工具会自动执行默认比较类型。例如,在当前文件夹浏览器中,如果选择两个 XML 文件进行比较,该工具将使用默认的文本比较。要将比较类型改为层次化比较,请使用比较工具创建一个新比较。

浏览比较报告

选择比较类型后,点击比较按钮。将打开比较报告。您可以根据所比较的项以不同的方式来浏览比较报告。有关详细信息,请参阅下面针对每种比较类型描述的详细信息。

比较文件夹和 Zip 文件

您可以使用比较工具来比较文件夹和 Zip 文件的任意组合。例如,您可以将文件夹的内容与 Zip 文件的内容进行比较。比较工具对所选项目执行文件列表比较。

创建文件夹比较报告,以便:

  • 确定共同文件。

  • 确定具有相同名称的文件或文件夹是否具有相同的内容。如果存在此类文件或文件夹,您可以直接从报告打开项目的详细比较报告。

在执行文件列表比较时,将打开一个新窗口,并排显示指定列表的内容。例如,假设您有两个文件夹 curvefittingcurvefitting2,二者之间有几处差异。在您比较这两个文件夹时,比较工具会显示结果报告。

Folder comparison results for the curvefitting and curvefitting2 folders

比较工具使用下表中列出的颜色突出显示不匹配的文件和子文件夹。

高亮颜色描述
紫色文件或文件夹的内容有差异。点击比较链接以调查详情。
蓝色 文件或文件夹仅在右侧列表中存在。
黄色文件或文件夹仅在左侧列表中存在。
文件或文件夹相同。

您可以使用多种方法深入浏览结果:

  • 要按名称、类型、大小或最后修改时间戳对结果排序,请点击相应的列标题。例如,点击类型列标题可按文件夹和文件类型排序。

  • 要打开详细比较报告以查看具有不同内容的项目,请点击项目旁边的比较链接。

  • 要在编辑器中打开文件,请点击文件名旁边的打开链接。如果两个文件夹中均存在该文件,可以点击链接以打开文件的左侧右侧版本。

  • 如果子文件夹非常大且包含许多文件,则会在后台继续进行分析。该工具将会在报告的顶部显示仍要比较的项数。您可以点击跳过当前项跳过当前项,或点击全部取消停止进一步分析。

    Section of the comparison report showing the number of items that still need to be compared, a Skip Current hyperlink, and a Cancel All hyperlink

  • 为节省查看差异所需的时间,尤其是在比较多个子文件夹时,您可以对报告进行过滤。要应用过滤器,请在视图选项卡上,选择过滤器 > filterName

    要创建新过滤器,请在视图选项卡上,选择过滤器 > 添加/删除过滤器。您可以指定过滤器以忽略某些文件和文件夹,例如备份文件以及由修订版本控制系统创建的文件。例如,要忽略名为 CVS 的文件夹中的所有文件和文件夹,请键入 CVS/。要忽略名为 CVS 的文件夹中的所有文件,而不忽略子文件夹,请键入 CVS/*

    要编辑现有过滤器,请双击该过滤器。

有关如何进一步配置比较报告的信息,请参阅其他比较工具

MATLAB Online 中比较 MATLAB 工程

MATLAB Online™ 中,您可以比较工程定义文件。当您比较文件夹时,MATLAB 会检测它们是否为工程根文件夹。MATLAB 查找并比较存储在 resources.SimulinkProject 文件夹中的工程定义文件。工程定义文件包含有关工程路径、工程设置、快捷方式、标签和引用工程的信息。

要比较工程定义文件,请选择 PRJ 文件或工程根文件夹,右键点击您的所选内容,然后选择比较选定的文件/文件夹。当您在结果报告中选择节点时,比较工具会在底部窗格中显示更多详细信息。

Project definition file comparison

此示例比较表明:

  • 修改了 AnalogControl.slx(紫色)。

  • f14_airframe.slx(黄色)在工程中替换为 f14_airframe.mdl(蓝色)。

  • 修改了 LinearActuator.slx(紫色),该模型有与之相关联的新标签(蓝色)。

  • 添加了名为 Release Branch 的新标签分类类别。

  • 删除了对 Signal Multiplier 工程的引用。

  • 删除了 F14 模型快捷方式。

  • 修改了工程设置,如工程详细信息、路径和依存关系设置。例如,在工程设置详细信息部分,修改了工程描述。

    Project description comparison

您只能在 MATLAB Online 中比较工程定义文件。

比较文本文件

您可以使用比较工具来比较并合并两个文本文件中的行。在执行文本比较时,将打开一个新窗口,并排显示两个文件。

比较文件

用户对 lengthofline.m 进行了一些更改,并将结果文件保存为 lengthofline2.m

使用 visdiff 来比较 lengthofline.mlengthofline2.m 文件。

visdiff("lengthofline.m","lengthofline2.m")

比较工具随即显示结果报告。

Comparison results for the files lengthofline.m and lengthofline2.m

了解比较结果

比较工具在比较报告的右下角显示差异总数,并使用下表中列出的颜色突出显示更改的行。

如果文件完全相同或只有换行符不同,您会看到一条消息,说明没有差异。

高亮颜色描述
紫色该行包含差异。
深紫色突出显示的字符存在差异。
蓝色该行仅在右侧文件中存在。当该行插入到右侧文件中或从左侧文件中删除时,就会发生这种情况。左侧文件中相应的行使用灰色条纹图案突出显示。
黄色该行仅在左侧文件中存在。当该行插入到左侧文件中或从右侧文件中删除时,就会发生这种情况。右侧文件中相应的行使用灰色条纹图案突出显示。

比较工具会尝试对各行进行匹配并检测已添加、删除或更改的文本。例如,在对 lengthofline.mlengthofline2.m 进行文本比较时,该工具确定 lengthofline2.m 有一行代码在 lengthofline.m 中不存在,并将其以蓝色突出显示(第 22 行)。另外,该工具将其他行考虑在内并确定在每个文件中包含 end 语句的行匹配,即使 end 语句不在两个文件中的同一行编号上出现也是如此。

您可以使用多种方法进一步浏览和配置结果:

  • 忽略空白差异 - 为了帮助区分功能更改和缩进更改,您可以隐藏空白差异。要隐藏仅涉及空白字符的差异,请点击过滤器按钮,然后选择忽略空白

  • 显示比较的文件详细信息 - 要显示文件详细信息,请点击文件名旁边的展开箭头

  • 保存比较报告 - 要保存比较报告的副本,请选择发布 > 发布为 HTML发布为 Word发布为 PDF

有关如何进一步配置比较报告的信息,请参阅其他比较工具

要以步进方式逐个查看差异,请使用 下一个 上一个按钮。

默认情况下,XML 文件使用文本比较方式进行比较。要使用层次化比较对 XML 文件进行比较,请参阅比较 XML 文件

合并文本文件

比较文本文件时,您可以将来自一个文件的更改内容合并到另一个文件。在解决不同版本文件之间的冲突时,合并更改内容很有用处。在合并更改时,只能从左向右合并。如果要合并到左侧文件中,请在开始合并之前点击 交换位置按钮。点击 交换位置按钮将还原已合并的任何内容,并为原文件创建一份新的比较报告。

要开始合并,请在比较选项卡上点击 合并模式按钮。然后,要用左窗格中的内容替换右窗格中的内容,请点击要合并的行旁边的 Replace Content 按钮。您也可以选择差异,然后在比较选项卡上点击 替换内容按钮。

右窗格包含合并的结果。右窗格中合并文件名旁边的星号 (lengthofline2.m *) 表示该文件包含未保存的更改。

要撤消替换,请点击修改的行之间或比较选项卡上的 撤消按钮。要还原所有合并并重新开始,请点击 刷新按钮。在更改和保存文件后,您还可以点击 刷新按钮来更新比较报告。刷新将放弃所有未保存的合并更改。

要保存更改并返回到比较报告,请点击 保存结果按钮。要返回到比较报告而不保存更改,请点击 返回到比较按钮。

Comparison Tool in merge mode for the files lengthofline.m and lengthofline2.m

比较二进制文件

可以使用比较工具比较两个二进制文件,例如 DLL 文件或 MEX 文件。您也可以对任意两个选定的文件执行二进制比较,而不是默认比较。

要使用二进制比较对任意两个文件进行比较,请在比较类型菜单中,选择二进制比较。当执行二进制比较时,将打开一个新窗口,指示两个文件相同还是不同。如果这两个文件不同,可点击显示详细信息链接以查看二进制文件和第一个差异的字节偏移量。

比较其他文件类型

您可以使用比较工具来比较其他文件类型:

  • 实时代码 - 比较和合并两个实时代码文件中的代码和文本。有关详细信息,请参阅比较和合并实时脚本和函数

  • App - 比较和合并两个 App 中的代码。有关详细信息,请参阅比较和合并 App

  • MAT 文件 - 比较和合并两个 MAT 文件中的变量。有关详细信息,请参阅比较和合并 MAT 文件

  • XML 文件 - 使用文本比较或层次化的 XML 比较对两个 XML 文件进行比较。有关详细信息,请参阅比较 XML 文件

  • Simulink® 模型 - 如果您有 Simulink,您可以比较和合并 Simulink 模型。有关信息,请参阅 模型比较 (Simulink)

  • MLDATX 测试文件 - 比较和合并 MLDATX 测试文件中的 Simulink Test™ 测试用例。有关信息,请参阅 Compare and Merge Test Files (Simulink Test)

其他比较工具

您可以使用以下可用工具进一步浏览和配置比较报告:

  • 交换位置按钮 - 将左侧的文件或文件夹与右侧的文件或文件夹进行交换。

  • 刷新按钮 - 在编辑器中对文件进行更改并保存后,在比较工具中更新结果。

  • 查找按钮 - 在当前显示中查找短语。有关详细信息,请参阅查找命令行窗口或历史记录中的文本

比较预设

您可以使用“比较”预设项来自定义比较工具。要更改“比较”预设项,请在主页选项卡的环境部分中,点击 预设。然后,选择 MATLAB > 比较

颜色预设项

您可以更改比较工具用于突出显示已更改行的颜色。颜色预设项随即应用于所有比较类型。

要更改颜色预设项,请在“比较”预设项的颜色部分中,更改用于显示差异、修改的行、修改的内容和合并的行的颜色。示例区域显示所选颜色的预览。在更改比较颜色后,您必须刷新打开的比较报告才能看到更新后的颜色。

要保存修改的颜色预设项以便用于未来的 MATLAB 会话,请点击另存为,并为您的颜色设置配置文件输入名称。保存颜色配置文件后,您可以在当前设置列表中选择该配置文件。要还原默认颜色配置文件,请点击重置

外部源代码管理集成预设项

您可以使用比较工具来比较和合并外部源代码管理工具中的文件和文件夹。要使外部源代码管理工具能够重用打开的 MATLAB 会话,请在“比较”预设项的外部源代码管理集成部分中,选择允许外部源代码管理工具使用打开的 MATLAB 会话执行差异分析和合并选项。当您将源代码管理工具配置为使用 MATLAB 比较工具时,比较工具会提示您选择此选项。

有关详细信息,请参阅Customize External Source Control to Use MATLAB for Diff and Merge (Simulink)

另请参阅

相关主题

外部网站