Как синхронизировать папки с MQL-кодом для МТ5 и МТ4 ?

 

Всех приветствую.

Изначально стояла задача написания переносимого кода - MQL файлы должны компилироваться и выполняться одинаково без всяких изменений и на МТ5 и на МТ4.

Всвязи с появлением новых билдов МТ4 - задача переносимости была решена. Правда, Стандартная Библиотека на МТ4 - значительно проще, чем на МТ5, но, тем не менее, после перенесения и адаптации кода СБ5 на СБ4 - основная цель (переносимость кода) - была достигнута. Огромная благодарность разработчикам.


Теперь стоит задача синхронизации изменений. Два терминала работают со своими папками MQL. Получается необходимо иметь две копии кода. Когда файл один-два - проблем нет, отладил в МТ5, перенес в МТ4, поправил, что надо, вернул в МТ5 - в итоге имеем две копии кода в разных терминалах. Но что если файлов не два, а двадцать ? И среди них есть как MQH, так и MQ5 ? Отслеживание, какие файлы изменились, а какие нет - становится проблематичным, а переносить сразу все файлы - чревато тем, что будет затерт отлаженный участок кода.

Какие возможны решения для синхронизации файлов двух в терминалах ? Что предложите, коллеги ?

 
Используйте Link Shell Extension, а также обратитесь к разработчикам через Сервис Деск (на фруме mql5.com) и попросите добавить в терминал возможность использования общих папок.
 
Laryx:

Какие возможны решения для синхронизации файлов двух в терминалах ? Что предложите, коллеги ?

глянь тут: https://www.mql5.com/ru/forum/147679/page82#874179
 



О ! Точно, MetaDriver, зришь в корень ! Я как раз, как и ты "копал" в сторону ремпапа (Только у меня папка MyLib, и в ней куча подпапок). И у меня именно те же проблемы, что и у тебя.

Почитаю, почитаю, что народ придумал...


 
chief2000:
Используйте Link Shell Extension, а также обратитесь к разработчикам через Сервис Деск (на фруме mql5.com) и попросите добавить в терминал возможность использования общих папок.


Да, на этом варианте и остановился. Создал внутри папки Include МТ5 свою папку MyLib с подпапками, а потом сделал ссылку на нее в папке Include МТ4 - и все нормально заработало. Конечно, все не так красиво, как хотел MetaDriver - я сам слежу, чтобы терминалы не открывались одновременно во избежание конфликтов, но в остальном - все очень даже хорошо.
 
Laryx:

Да, на этом варианте и остановился. Создал внутри папки Include МТ5 свою папку MyLib с подпапками, а потом сделал ссылку на нее в папке Include МТ4 - и все нормально заработало. Конечно, все не так красиво, как хотел MetaDriver - я сам слежу, чтобы терминалы не открывались одновременно во избежание конфликтов, но в остальном - все очень даже хорошо.

Похоже вы не те папки залинковали. В нормальном варианте можно запускать сколько душе угодно МТ4.
В новой версии МТ4 я пока ничего не линковал, не до этого было, но проблем быть не должно, а в старой "experts", "templates" и т.д. Посмотрите сюда:

https://forum.mql4.com/ru/60693/page43#910024
 
chief2000:

Похоже вы не те папки залинковали. В нормальном варианте можно запускать сколько душе угодно МТ4.

Нет, мне не нужно "запускать сколько угодно МТ4". Мне нужно, чтобы один и тот же файл, из одной и той же папке компилировался как МТ4, так и МТ5. И при изменениях файла через МТ4 - чтобы они (после закрытия МТ4, и открытия МТ5) - появлялись бы в МТ5.

Мое же замечание по поводу нежелательности одновременного запуска терминалов - это относится к проблеме, на которую указал MetaDriver - если один файл открыть в двух терминалах, а потом в одном его изменить - второй этого не заметит. Потом можно открыть его в другом, изменить в другом месте - и попробовать сохранить в обоих... Тут явно недалеко до конфликта - поэтому я просто четко слежу за тем, чтобы одновременно был открыт только один терминал.

 
Laryx:

Нет, мне не нужно "запускать сколько угодно МТ4". Мне нужно, чтобы один и тот же файл, из одной и той же папке компилировался как МТ4, так и МТ5. И при изменениях файла через МТ4 - чтобы они (после закрытия МТ4, и открытия МТ5) - появлялись бы в МТ5.

Мое же замечание по поводу нежелательности одновременного запуска терминалов - это относится к проблеме, на которую указал MetaDriver - если один файл открыть в двух терминалах, а потом в одном его изменить - второй этого не заметит. Потом можно открыть его в другом, изменить в другом месте - и попробовать сохранить в обоих... Тут явно недалеко до конфликта - поэтому я просто четко слежу за тем, чтобы одновременно был открыт только один терминал.

А что мешает (во избежание конфликта 2-ух редакторов) сделать так:

Структура файловой системы для правки кода и работы параллельно нескольких терминалов.

Слева песочница для работы с кодом (папка MQL4). Содержимое песочницы в виде исполняемых файлов .ex4, если надо и .ex5 (каждый файл) я линкую в другую такую же (по структуре папок) общую папку, а вот содержимое второй песочницы раздаю по папкам во все свои терминалы (на картинке справа). Все терминалы получают одни и те же файлы, и при этом не имеют возможности их редактировать.
 

Можно и так.

А как у вас с пошаговой отладкой ?

 
Laryx:

Можно и так.

А как у вас с пошаговой отладкой ?

Никак. Было не до того.
Причина обращения: