MetaEditor 帮助项目和 MQL5 存储合并修改

合并修改

当团队协同工作于一个 共享项目 时,也许会发生同一文件被多个用户同时编辑的情况。 为了避免这些修改被彼此覆盖,MetaEditor 具有合并数据的功能。

如果您尝试将某个已被某人修改的文件保存到存储中,MetaEditor 会提示您首先获取最新的更改。 当收到更改时,会尝试合并数据: 将存储的更改应用到本地数据副本,并尝试保存当前的本地更改。

  • 合并仅适用于采用 ANSI 格式的源代码(mq4,mq5,mqh,cpp 和 h)的文本文件。 Bmp 和 wav 文件总是被较新的版本完全替换。
  • 源代码文件逐行比较。出现冲突时(例如,本地文件和存储库中相应文件中的相同行被更改),合并算法目标是最大限度地保留本地更改。

合并示例

我们来参照一个合并两个文件的典型案例。 如上所述,在合并期间,逐行比较源代码文件。 如果存储中的文件包含本地文件中不存在的行,那么这些行会被添加。参照以下合并两个文件的示例:

合并两个文件的示例

在您点击后从存储更新从存储更新,本地文件保持不变,因为本地更改具有更高的优先级。 如果存储文件包含新行 "x=0;",它会被添加,而 "return(true);" 这行将保持不变:

合并两个文件的示例

  • 合并的主要原则是本地数据拥有更高优先级。 该算法旨在最大限度地保护本地更改。
  • 在合并过程中有许多类型的冲突。在本节中,只考虑了一种最常见的情况。 合并算法很复杂,并且在分析文件中提供了一​​个全面的方法。关于合并的更多信息,可以参阅有关集成的书籍 中的测试程序。