Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

从比较报告合并 Simulink 模型

Merge 工具使您能够:

  • 使用三向合并解决源代码管理下模型文件中的冲突。通过选择查看冲突打开。

  • 使用双向合并来合并任意两个模型文件。通过选择比较上下文菜单项打开。

  • 使用文本比较报告合并 MATLAB® Function 模块代码。

使用三向模型合并解决冲突

如果您的工程或当前文件夹浏览器中有模型文件在源代码管理下存在冲突,请右键点击并选择查看冲突。您可以在三向模型合并工具中解决冲突。检查您的本地文件并与冲突的修订版和基本前代文件进行比较,确定要保留的更改。您可以解决冲突并提交更改。

  1. 要尝试一个三向合并示例,请参阅使用 Simulink 三向合并解决冲突

  2. 在工程中找到冲突的模型文件,右键点击并选择查看冲突。如果源代码管理将文件标记为冲突,则只能在上下文菜单中看到查看冲突

该合并工具会自动解决它能解决的所有差异,并在目标窗格中显示结果。查看自动合并选项,根据需要进行编辑,并确定如何解决任何其余冲突。

  1. 检查合并报告列。

    • 在顶部,Theirs基准Mine 列显示冲突的修订版、您的修订版和这两个文件的基本前代的差异。

    • 在下面,目标显示您要将更改合并到的本地文件。合并工具已自动合并它可以合并的差异。

  2. 通过点击下一个或通过点击 Theirs基准 Mine 列中的一个行,检查差异。

    合并工具显示两个模型(如果选择了一项配置设置,会看到两个模型“配置参数”对话框)。默认情况下,您会看到 Theirs目标模型。

  3. 使用合并选项卡上的工具条按钮选择要显示的模型:顶层模型底端模型。查看模型以帮助您确定要合并的内容。

    注意

    如果使用查看冲突打开合并工具,则模型 Theirs基准Mine 是显示冲突修订版的临时文件。检查它们以决定如何合并。目标模型是 Mine 的副本,其中包含报告中合并的结果。

  4. 通过点击目标窗格中的按钮,选择要为每个更改保留的版本。您可以合并已修改、添加或删除的节点,也可以合并各个参数。合并工具会自动为它可以解决的每个差异选择一个处理方法。您可查看这些选择并根据需要更改它们。

    在“冲突”列中寻找警告。对于每个冲突的项目,选择相应的按钮以使用 Theirs基准Mine

    提示

    先合并模块,再合并线;先合并状态和结点,再合并转移。然后,合并工具会尝试自动将所有线连接到模块。请参阅合并提示

  5. 某些差异必须由您手动合并。在目标窗格中,在“冲突”列中找到手动合并图标,该图标表明必须由您采取措施。

    在编辑器中进行手动更改。比较报告不会更新以显示您在编辑器中所做的任何更改,因此在处理完报告中所有较简单的合并后,请尝试进行手动更改。

    使用编辑器解决冲突后,在目标窗格中,选择检查选项以将节点标记为完成。

  6. 检查摘要表以查看自动合并的数量和需要解决的其余冲突。

    通过查看摘要表选项卡标题,检查从当前视图中过滤掉的更改。“过滤视图”和“所有更改”选项卡标题显示更改的数量。默认情况下,报告会隐藏所有非功能性更改。关闭活动过滤器以查看所有标识的更改。

  7. 如果对目标文件中的合并选择和任何手动合并感到满意,请点击接受并关闭。此操作将使用所有合并保存目标文件,并在源代码管理工具中将冲突文件标记为已解决。

    要保存但不标记为冲突已解决,请选择接受并关闭 > 保存并关闭

要了解有关解决工程中已修改文件的更改列表中冲突的更多信息,请参阅Resolve Conflicts

结合外部源代码管理工具进行三向合并

如果您是在 MATLAB 外部进行源代码管理,则可以自定义外部源代码管理工具以打开三向合并(或打开双向合并以显示差异)。

有关说明,请参阅Customize External Source Control to Use MATLAB for Diff and Merge

在未使用源代码管理的情况下打开三向合并

如果您没有使用源代码管理,或者要选择三个文件以进行合并,则可以使用 slxmlcomp.slMerge 函数打开三向合并。指定要合并的文件,例如:

slxmlcomp.slMerge(baseFile, mineFile, theirsFile, targetFile);
三向合并将打开,您可以将在 baseFilemineFiletheirsFile 中的更改合并到 targetFile 中。

双向模型合并

您可以从比较报告中合并两个 Simulink® 模型。工程或当前文件夹浏览器中的比较上下文菜单项可打开双向模型合并。如果您正在使用源代码管理并希望使用三向模型合并来解决冲突,请参阅使用三向模型合并解决冲突

合并功能使您能够合并在 Simulink 中建模的设计的两个版本。您可以合并单个参数、模块或整个子系统。如果子系统是整个插入或删除的,则整个子系统只能作为整体进行合并。

  1. 比较选项卡上,点击合并模式。“目标”窗格显示在报告的底部。

  2. 使用与三向合并相同的工作流。使用按钮可选择要保留在目标文件中的差异。

    提示

    先合并模块,再合并线;先合并状态和结点,再合并转移。请参阅合并提示

  3. 在报告和模型中查看结果。点击保存文件保存文件会复制临时目标文件并用它覆盖比较视图中右侧的文件,然后重新进行比较。

  4. (可选)要还原所有合并操作,请点击关闭合并而不保存文件。

  5. 在 Simulink 编辑器中检查合并更改。如有必要,请连接软件未自动连接的所有线。比较报告不会更新以显示您在编辑器中所做的任何更改。

合并提示

  • 在报告的 Simulink 部分,按以下顺序合并模型。在目标文件中:

    1. 删除不想保留的行。

    2. 删除不想保留的模块。

    3. 添加要保留的模块。

    4. 添加要保留的行。

    5. 选择要保留的参数。

    必须先合并状态和结点,再合并转移,否则报告不能建立连接。

    有关如何合并涉及多个节点的更改的示例,请参阅Compare and Merge Simulink Models Containing Stateflow

  • 并非所有参数都可以合并。在本例中,目标窗格中只显示一个单选按钮,指示目标模型中的版本。

  • 有关在具有相同名称的模型之间进行合并的信息,请参阅Compare Models with Identical Names

合并 MATLAB Function 模块代码

  1. 要合并 MATLAB Function 模块代码中的差异,请为父模型创建比较报告。

  2. 点击合并模式按钮。

    这将创建并打开名为 targetFile 的第三个文件。它可以包含来自左侧模型或右侧模型的更改。

  3. 使用报告右侧的按钮选择目标文件中所需的更改。

  4. 使用保存文件工具条按钮在右侧模型上保存这些更改。

相关主题