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

 

Я "коммитю" в репозитории, и он выдал эту общую ошибку -1. Не знаете, что это значит?

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

2025.06.10 08:37:18.622    Git    changes for [Repository]:
2025.06.10 08:37:18.625    Git     - xxx.mqh modified
2025.06.10 08:37:18.626    Git     - yyy.mqh modified
2025.06.10 08:37:18.626    Git     - zzz.mqh modified
2025.06.10 08:37:18.626    Git     - www.mqh modified
2025.06.10 08:37:18.626    Git     - vvv.mqh modified
2025.06.10 08:37:18.647    Git    commit https://forge.mql5.io/[User]/[Repository].git to main
2025.06.10 08:37:32.722    Git    [Repository]: push failed with -1 error, generic error
2025.06.10 08:44:32.042    Git    11 / 11 objects, 7666 bytes sent
2025.06.10 08:44:32.044    Git    [Repository]: pushed

 
Alain Verleyen:
Я "коммитю" в репозитории, и он выдал эту общую ошибку -1. Не знаете, что это значит?

Я получу ошибку -1 если нажму "Git Commit" при отсутствии соединения с интернетом (я только что воспроизвел это). Но в этом случае зафейлен только push, а сам комит успешно сохранен в local repo.

Alain Verleyen:
Так что чуть позже сделайте «толчок», и тогда все будет нормально.

Да, я подключил интернет, нажал "Git Push" и комит из local repo успешно запушен в remote repo.

[edit]

То есть, при отсутствии интернета комиты будут сохраняться в local repo, а как только соединение с интернетом будет восстановлено, достаточно просто нажать "Git Push" чтобы отправить накопленные локально комиты в remote repo.

[edit2]

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

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

MetaQuotes, 2025.05.30 08:56

  • Работа в оффлайн-режиме — теперь вам не нужно постоянное подключение к серверу: вы можете коммитить изменения локально, а затем отправлять их в онлайн-репозиторий, когда будет удобно.
 
Vladislav Boyko # :

Я получу ошибку -1 если нажму "Git Commit" при отсутствии соединения с интернетом (я только что воспроизвел это). Но в этом случае зафейлен только push, а сам комит успешно сохранен в local repo.

Да, я подключил интернет, нажал "Git Push" и комит из local repo успешно запушен в remote repo.

[edit]

То есть, при отсутствии интернета комиты будут сохраняться в local repo, а как только соединение с интернетом будет восстановлено, достаточно просто нажать "Git Push" чтобы отправить накопленные локально комиты в remote repo.

[edit2]

Спасибо. Я проверю, повторится ли это снова, так как не думаю, что у меня были проблемы с подключением к Интернету, когда это произошло.

Было бы неплохо иметь более полезный номер ошибки и ее описание.

 

Сообщение об ошибке немного загадочное, когда я попытался «выполнить коммит».

2025.06.11 11:33:57.541    Git    changes for [Repository]:
2025.06.11 11:33:57.544    Git     - abc.mqh modified
2025.06.11 11:33:57.544    Git     - xyz.mqh modified
2025.06.11 11:33:57.556    Git    commit https://forge.mql5.io/[User]/[Repository].git to main
2025.06.11 11:33:58.452    Git    [Repository]: push failed with -11 error, reference was not fast-forwardable

На самом деле, я знаю, что проблема была в том, что у коллеги было обязательство на его стороне, поэтому «вытягивание» решило проблему.

Чтобы упростить задачу, не следует ли отмечать изменения файлов в репозитории Forge соответствующим образом в MetaEditor?

 
Alain Verleyen # :

Сообщение об ошибке немного загадочное, когда я попытался «выполнить коммит».

2025.06.11 11:33:57.541    Git    changes for [Repository]:
2025.06.11 11:33:57.544    Git     - abc.mqh modified
2025.06.11 11:33:57.544    Git     - xyz.mqh modified
2025.06.11 11:33:57.556    Git    commit https://forge.mql5.io/ [User]/[Repository].git to main
2025.06.11 11:33:58.452    Git    [Repository]: push failed with -11 error, reference was not fast-forwardable

На самом деле, я знаю, что проблема была в том, что у коллеги было обязательство на его стороне, поэтому «вытягивание» решило проблему.

Чтобы упростить задачу, не следует ли отмечать изменения файлов в репозитории Forge соответствующим образом в MetaEditor?

На самом деле, после «Извлечения» измененные файлы помечаются как «ok», зеленым значком.

Но они НЕ были зафиксированы, поэтому мне пришлось внести небольшое редактирование (добавить/удалить пробел), чтобы иметь возможность их зафиксировать.

 
Alain Verleyen #:

Сообщение об ошибке немного загадочное, когда я попытался «выполнить коммит».

2025.06.11 11:33:57.541    Git    changes for [Repository]:
2025.06.11 11:33:57.544    Git     - abc.mqh modified
2025.06.11 11:33:57.544    Git     - xyz.mqh modified
2025.06.11 11:33:57.556    Git    commit https://forge.mql5.io/[User]/[Repository].git to main
2025.06.11 11:33:58.452    Git    [Repository]: push failed with -11 error, reference was not fast-forwardable

На самом деле, я знаю, что проблема была в том, что у коллеги было обязательство на его стороне, поэтому «вытягивание» решило проблему.

Чтобы упростить задачу, не следует ли отмечать изменения файлов в репозитории Forge соответствующим образом в MetaEditor?

Если я правильно понимаю, что коллега тоже пушит в remote repo, то я думаю, что имеет смысл использовать для этого отдельный branch (вместо того, чтобы пушить вдвоем в main), после чего во время pull request разрешать возможные merge конфликты вручную.

[edit]

Могу предположить, что когда коллега пушил, то его parent commit не совпадал с последним на тот момент коммитом в main. Гипотетически, другой branch + pull request + merge commit должны избавить это этой проблемы. Потому, что у merge комита 2 родителя, а не 1. Но это пальцем в небо, я не экспериментировал с этим. Высокая вероятность, что я ошибаюсь.

 
Vladislav Boyko # :

Если я правильно понимаю, что коллега тоже пушит в remote repo, то я думаю, что имеет смысл использовать для этого отдельный branch (вместо того, чтобы пушить вдвоем в main), после чего во время pull request разрешать возможные merge конфликты вручную.

[edit]

Могу предположить, что когда коллега пушил, то его parent commit не совпадал с последним на тот момент коммитом в main. Гипотетически, другой branch + pull request + merge commit должны избавить это этой проблемы. Потому, что у merge комита 2 родителя, а не 1. Но это пальцем в небо, я не экспериментировал с этим. Высокая вероятность, что я ошибаюсь.

Работа с филиалом не является проблемой.

 

Незначительная ошибка.

Файл был обновлен ВНЕ МЕНЯ, поэтому, как и ожидалось, статус Git не обновлен. Чтобы принудительно это сделать, я сделал Refresh (F5).

Все хорошо, статус обновляется в навигаторе, но НЕ для открытого окна.


 

Каково назначение ветки «refs/remotes/origin/main»?

Я попросил включить его, но при проверке он все еще находится в положении «главный».

 

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


 

ОШИБКА сборки 5109:

1. Из второго терминала (MT5-1) я внес изменение в GitTest.mq5 в том же месте, что и ранее в MT5-2, и зафиксировал его.

2. На MT5-2 я попытался зафиксировать изменение. Я получил ошибку (что ожидаемо, хотя сообщение об ошибке могло бы быть более понятным), поэтому я попробовал «Pull». Он говорит, что мне нужно исправить конфликт вручную, что также ожидаемо, но затем:

* GitTest.mq5 «удален» из репозитория.

* Файл, открытый в окне, не сохранен, и я не вижу «конфликта», который нужно разрешить.

Поэтому мне нужно закрыть его БЕЗ сохранения. И открыть его снова, чтобы увидеть разрешение конфликта...


И затем мне нужно снова добавить GitTest.mq5, но он показывает один и тот же файл 3 раза: