Справка по MetaEditor

Слияние изменений

Слияние изменений

Одним из основных преимуществ хранилища MQL5 Storage является возможность совместной работы над файлами.

В данный момент возможность предоставления другим пользователям прав на редактирование папок в личном хранилище не реализована. Однако в данный момент вы можете работать с хранилищем с нескольких компьютеров, используя одну и ту же учетную запись MQL5.community.

Слияние (merging) подразумевает собой соединение изменений, сделанных в локальной копии данных, с данными, которые изменены параллельно и зафиксированы в MQL5 Storage.

  • Слияние работает только для текстовых файлов с исходным кодом (mq4, mq5, mqh, cpp, h) в формате ANSI. Файлы bmp и wav всегда полностью заменяются версией из старшей ревизии.
  • Файлы исходного кода сравниваются построчно. При возникновении конфликтов (например, в локальном файле и в соответствующем файле в хранилище изменена одна и та же строка) алгоритм слияния стремится к максимальному сохранению локальных изменений.

Пример слияния

Рассмотрим один из типичных случаев слияния двух файлов. Как уже указывалось выше, при слиянии файлы исходного кода сравниваются построчно. Если файл в хранилище содержит строки, которые не присутствуют в локальном файле, то данные строки добавляются. Например, файл в хранилище содержит следующий код:

Файл в хранилище

Этот же локальный файл содержит следующий код:

Локальный файл

После выполнения команды "Получить обновления из хранилища Получить обновления из хранилища" локальный файл останется без изменений, поскольку приоритет имеют локальные изменения. Однако если бы файл в хранилище содержал следующий код:

Файл в хранилище

То в локальный файл была бы добавлена строчка "x=0;", а строка "return(true);" осталась бы без изменений:

Обновленный локальный файл

  • Самый главный принцип слияния файлов — приоритет локальных данных. Алгоритм стремится к максимальному сохранению локальных изменений.
  • Существует множество видов конфликтов слияния данных. В данном разделе была рассмотрена лишь одна из наиболее простых ситуаций. Алгоритм слияния является сложным и осуществляет комплексный подход при анализе файлов. Более подробная информация о слиянии может быть найдена в книге, посвященной Subversion.