Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса - страница 40

 
Renat Fatkhullin #:

Исправим.

До сих пор не исправили, увы.

 
Что вы творите с интерфейсом программы? Это просто треш. С каждой новой версией все хуже и хуже.
 
NastyaMaley #:
Что вы творите с интерфейсом программы? Это просто треш. С каждой новой версией все хуже и хуже.
Что случилось? 
 
NastyaMaley #:
Что вы творите с интерфейсом программы? Это просто треш. С каждой новой версией все хуже и хуже.

Я ничего не заметил, кроме этого, но это действительно нехорошо получилось с новым билдом


 
Vitaly Muzichenko #:

это действительно нехорошо получилось с новым билдом

Я понимаю, что разработчики очень серьёзно относятся к языку, и постоянно ужесточают и т.д. Мы готовы с этим смириться, но объясните хотя бы при этом, какую опасность может вызывать копирование структуры оператором присвоения? При отказе снижается эффективность исполнения, и усложняется код.

 
Edgar Akhmadeev #:

Я понимаю, что разработчики очень серьёзно относятся к языку, и постоянно ужесточают и т.д. Мы готовы с этим смириться, но объясните хотя бы при этом, какую опасность может вызывать копирование структуры оператором присвоения? При отказе снижается эффективность исполнения, и усложняется код.

Очевидно что

ClassName object = initializer_list; 

потенциально опасная вещь. Возможны разночтения и конфликты:
1) создать пустой объект и вызвать оператор = ; Если слоедовать строго по написанному пользователем, то так и должно быть. Но это 2 операции и чертовски долго
2) вызвать конструктор с параметрами initializer_list ; но у него семантика может отличаться от оператора =, и что там в контексте имелось в виду неясно
3) вызвать конструктор с единственным параметром &init_list
4) заполнить поля по init_list и вызвать конструктор
и так далее и тому подобное, с вариациями const 

PS/ но на мой вкус - лучше бы исключения сделали ;-)

 
как так быстро работает 
 
2025.12.03 04:50:01.123    Git    MQL5: create commit failed with -10 error, merge in progress prevented operation

Всем привет!

У меня возникает эта ошибка при выполнении "Git Commit", и мне кажется, что изменения (возможно, весь файл) не сохраняются в Algo Forge.

Есть ли решение?

 
Shukurjon Beknazarov #:
2025.12.03 04:50:01.123    Git    MQL5: create commit failed with -10 error, merge in progress prevented operation

У меня возникает эта ошибка при выполнении "Git Commit", и мне кажется, что изменения (возможно, весь файл) не сохраняются в Algo Forge.

К сожалению, сейчас используя только MetaEditor, устранит эту ошибку "правильным" образом нельзя. Но "неправильным" - можно.

Такое сообщение говорит о том, что перед коммитом в результате получения изменений из репозитория хранилища возникли конфликты слияния. Это значит, что в каком-то файле (или файлах) были внесены изменения и отправлены в репозиторий хранилища с одного локального репозитория, а затем в другом локальном репозитории были внесены изменения в эти же строки этих же файлов, но эти изменения - немного другие. Поэтому теперь в том другом локальном репозитории, где вы пытаетесь сделать коммит, git не смог решить, какие правки должны быть признаны правильными и оставлены в файлах, а какие - проигнорированы. Git в этом случае вводит локальный репозиторий в состояние слияния (merge in progress), из которого вы должны его сначала вывести, а только потом можно будет совершать новые коммиты.  

Но в MetaEditor нет (пока?) инструментов, позволяющих выполнить эту операцию. Надо либо привлекать сторонние средства или использовать консольные команды git. Но даже с их помощью разруливание конфликтов слияния - малоприятная вещь.

Поэтому можно посоветовать сделать следующее:

  • закройте терминал и редактор.
  • создайте резервную копию папки данных MQL5 того терминала, где вы пытаетесь делать коммит. Это позволит вам не потерять совсем последние правки, которые вы пытались зафиксировать коммитом.
  • удалите папку данных MQL5 из каталога терминала (или того места, где терминал её расположил, если не используется portable-режим)
  • запустите сначала терминал (он воссоздаст папку MQL5), а затем редактор и подключите снова хранилище (если оно не подключится само)
  • выполните Git pull, чтобы восстановить состояние файлов в локальном репозитории до последней сохранённой в репозитории хранилища версии.
После этого у вас должен получиться локальный репозиторий в нормальном состоянии, позволяющий делать коммиты. Затем вы можете перенести из резервной копии файлы с последними правками в папку данных. Если они будут иметь отличия, то их уже должно получиться зафиксировать командой Git commit. Но нельзя копировать назад всю резервную копию папки MQL5, потому что в ней есть каталоги с именами ".git", в которых хранится вся информация локального репозитория. Если они перезапишут новые созданные папки ".git", то вы просто вернётесь к тому, с чего начали.

По идее всё должно сработать, но мне именно с такой ситуацией столкнуться не довелось.