oscript-library / gitsync

Синхронизация хранилища 1С с репозиторием git
Mozilla Public License 2.0
267 stars 91 forks source link

Некорректные коммиты выгружаются в gitlab #296

Closed DmitryGal closed 1 year ago

DmitryGal commented 2 years ago

Описание ошибки Есть локальный gitlab на сервере, куда происходит выгрузка средствами gitsync. Gitsync запускается средствами планировщика Windows по расписанию раз в 20 минут. Были включены вот эти плагины, версия gitsync 3.4.0: image Команда запуска следующая: gitsync -v -t D:\repos\temp -U User -C /Sserver:2541\baza sync -G -P -n 1 -u user_git -p "pass" -l 1 tcp://server:2542/hran_dev D:\repos\hran\src\cf http://user_gitlab:pass_gitlab@servergitlab:9090/repo/repo.git При выгрузке по 1 коммиту и отправке в репозиторий происходит так, что изменения по версии хранилища 814 легли в версию 813. Таким образом в коммите 814 остаются только следующие изменения: image В истории хранилища естественно есть изменения, которые в 814 коммите отсутствуют.

Так происходит периодически не со всеми коммитами, но очень часто, из-за этого не выходит нормально работать с SonarQube, так как неверно распределяется по авторам.

Ранее выгрузка производилась по 5 коммитов за раз, git pull и git push осуществлялся скриптом. Попробовали переделать на плагин sync-remote - не помогло. Пробовали обновить gitsync до последней актуальной версии - не помогло. Отключение инкрементальной выгрузки - не помогло. Пока вообще не нашел как данную ситуацию побороть.

Ожидаемое поведение если бы ошибки не было Выгрузка соответствующих истории хранилища коммитов.

Окружение:

DmitryGal commented 1 year ago

Добрался до отладки выгрузки, проверил механизмы, выгрузка производилась как и требуется за исключением того, что база обновлялась до последней версии хранилища. Отсюда сделал выводы, что необходимо искать корни в документации 1c, и не удивительно, но нашлось решение. Решение на скриншоте. И получается. что наша промежуточная серверная БД была подключена к хранилищу и номер версии игнорировался, происходило обновление до последней версии. Решение оказалось простым - отключили промежуточную базу от хранилища, проверили на новом репозитории, куда теперь выгружается корректная история. Единственный минус, что выгрузка одной версии занимает большое количество времени, и за 20 часов выгружается 50-60 версий хранилища (инкремент включен). image

EvilBeaver commented 1 year ago

Могу посоветовать для ускорения выгрузки SSD-диски или RAM-диски, инкремент (у вас включен, но работает ли?) и в целом железку пошустрее.

DmitryGal commented 1 year ago

Могу посоветовать для получения выгрузки SSD-диски или RAM-диски, инкремент (у вас включен, но работает ли?) и в целом железку пошустрее.

Выгрузка пишет в лог, судя по нему инкремент работает: ОТЛАДКА - [o.l.g.p.increment] - Строка проверки на возможность выгрузки конфигурации: = ОТЛАДКА - [o.l.g.p.increment] - Инкрементальная выгрузка конфигурации - ВОЗМОЖНА