Ошибки, баги и вопросы Algo Forge и Git. - страница 2

 
Alain Verleyen #:

BUG build 5109: Код, измененный в тестовой ветке, сохраняется после переключения обратно в «основную» ветку.

На сколько я понимаю, изменения коснулись только working directory, TestBranch1 ничего не знает о них потому, что вы не сделали коммит. Если сделать коммит в TestBranch1 перед переключением на main, то MetaEditor восстановит snapshot из последнего комита в main (то есть, заменит файлы в working directory).

Я не знаю, должны ли быть заменены файлы в working directory при переключении test -> main если последние коммиты в обеих бранчах совпадают.

 
Vladislav Boyko # :

На сколько я понимаю, изменения коснулись только working directory, TestBranch1 ничего не знает о них потому, что вы не сделали коммит. Если сделать коммит в TestBranch1 перед переключением на main, то MetaEditor восстановит snapshot из последнего комита в main (то есть, заменит файлы в working directory).

Я не знаю, должны ли быть заменены файлы в  working directory при переключении test -> main если последние коммиты в обеих бранчах совпадают.

Да, с Git он восстановит main без "commit/push". Но вы можете быть правы, в зависимости от намерений разработчиков MQ.

 
Vladislav Boyko # :

На сколько я понимаю, изменения коснулись только working directory, TestBranch1 ничего не знает о них потому, что вы не сделали коммит. Если сделать коммит в TestBranch1 перед переключением на main, то MetaEditor восстановит snapshot из последнего комита в main (то есть, заменит файлы в working directory).

Я не знаю, должны ли быть заменены файлы в  working directory при переключении test -> main если последние коммиты в обеих бранчах совпадают

Вы, вероятно, правы насчет фиксации (которая на самом деле является push).

Но все же переключение с тестовой ветки на основную ветку без коммита не должно приводить к «автоматическому слиянию» с основной веткой без уведомления.

 
Alain Verleyen #:
Но вы можете быть правы, в зависимости от намерений разработчиков MQ.

Я вовсе не говорил, что оно работает правильно. Я лишь написал свои наблюдения. Я не знаю, какого поведения следует ожидать. Все, что я пишу, основано только на наблюдениях за фактическим поведением MetaEditor, но я не знаю, является ли это поведение корректным.

 

Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий

Ошибки, баги и вопросы Algo Forge и Git.

Ален Верлейен , 2025.06.19 14:05

Будьте осторожны, используя Git, я только что потерял 1 день работы.

Конечно, мне следовало бы чаще делать коммиты, но все равно я бы, вероятно, потерял часть работы из-за этой проблемы. Я не делал коммиты чаще, так как не хочу отправлять незавершенную работу на сервер, а реализация MetaQuotes в Git не позволяет делать коммиты локально, только на сервер.

Итак, что произошло, мы работаем в команде. У нас есть основная кодовая база с коммитом, сделанным 2 дня назад. Пока я работал над большим обновлением, мой партнер внес небольшие изменения в 2 файла. Чтобы получить эти 2 изменения в моей текущей работе, я сделал "Pull"...

2025.06.19 08:41:45.409    Git    13 / 13 objects received, 5 local, 13 indexed, 3319 bytes
2025.06.19 08:41:45.430    Git    fetch refs/remotes/origin/main
2025.06.19 08:41:45.798    Git    [file1].mqh modified
2025.06.19 08:41:45.798    Git    [file2].mqh modified
2025.06.19 08:41:46.989    Git    fast-forward: merge successfull

Хотя он и изменил, молча другие файлы, которые я изменил локально. К счастью, у меня все еще было открыто 6 файлов в MetaEditor, поэтому для этих файлов я получил сообщение с вопросом, хочу ли я принять «внешнюю» модификацию и потерять свои изменения, конечно, я сказал нет. Для других файлов у меня не было изменений, чтобы что-либо сделать... 1 день работы потерян. В журнале Git указано «13 объектов», так что, возможно, я потерял изменения в 7 файлах, не уверен в этом, я не считал файлы, которые я изменил заранее.

Понятия не имею, как файлы, которые уже отслеживаются Git, могут быть просто локально перезаписаны, но именно это и произошло.

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


 
Alain Verleyen #:
Итак, что произошло, мы работаем в команде. У нас есть основная кодовая база с коммитом, сделанным 2 дня назад. Пока я работал над большим обновлением, мой партнер внес небольшие изменения в 2 файла. Чтобы получить эти 2 изменения в моей текущей работе, я сделал "Pull"...

Это жесткий косяк от MetaEditor (видеопруф). Я выполнил "$ git pull" из bash, и git любезно предотвратил потерю файла, который находится в состоянии modified:

error: Your local changes to the following files would be overwritten by merge:

        README.md

Please commit your changes or stash them before you merge.

Aborting

 
Vladislav Boyko # :

Это жесткий косяк от MetaEditor ( видеопруф ). Я выполнил "$ git pull" из bash, и git любезно предотвратил потерю файла, который находится в состоянии modified:

error: Your local changes to the following files would be overwritten by merge:

        README.md

Please commit your changes or stash them before you merge.

Aborting

Да, для файла, который был изменен на «другой стороне».

В моем случае это другие файлы, которые были перезаписаны, все файлы, которые я изменил на своей стороне, были заменены СТАРОЙ версией. Не уверен, что я ясно выразился.

Ну ладно, с этой ерундой покончено.

 
Alain Verleyen #:

Не уверен, что я ясно выразился.

Я думаю, что вы ясно выразились (как минимум, я вас понимаю).

Тот мой пост ориентирован в первую очередь на MQ, я просто предоставил дополнительные доказательства некорректной работы MetaEditor.

 
Всё-таки, как лечить ошибку 'Git    MQL5: push failed with -1 error, generic error' ?
Fetch то же самое выдает '2025.10.02 12:01:50.221    Git    fetch failed with -1 error, generic error'

Больше ничего сделать нельзя. Запушить ничего невозможно.
 

Столкнулся с таким сообщением для отдельной ветки репозитория:

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