gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию
gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию.
Происходит из-за того что файл VERSION инкрементируется перед началом синхронизации, предлагаю инкрементацию перенести в конец скрипта, чтобы в случае какого-то падения началась синхронизация версии которую не удалось синхронизировать в прошлый раз.
В МенеджерСинхронизации.os сейчас есть обработка исключения, которая запишет текущую версию, до инкрементации, в случае вылета исключения во время выгрузки. Но этого не произойдет если прервется поток самого МенеджерСинхронизации.os
@dammanapov я не понял сценарий:
В МенеджерСинхронизации.os сейчас есть обработка исключения, которая запишет текущую версию, до инкрементации, в случае вылета исключения во время выгрузки. Но этого не произойдет если прервется поток самого МенеджерСинхронизации.os
Поясни, что не так в
Если выключится компьютер некому будет вернуть прежнюю версию синхронизации, обработка исключения не сработает. Предлагаю инкрементированную версию записывать после успешного выполнения синхронизации
@dammanapov нельзя записывать инкремент после, ибо как раз это изменение и коммитится в git. Т.е. мы изменяем ДО как раз для того, чтобы это изменение попало в коммит. После коммита изменять нет смысла.
Есть вариант проверять перед синхронизацией через git status что в измененных файлах отсутствует файл version. Предлагаю сделать вам, для тренировки и помощи проекту. :smile:
Уменьшить вероятность данной ситуации можно перенеся инкрементацию в конец ф-ии, перед коммитом в гит.
Может на каждом шаге копировать файл с текущей версией в "VersionInProgress" (в гитигноре) и удалять его после успешного коммита. Соответственно, любая команда на сигхронизацию при наличии "VersionInProgress" копирует его в VERSION и только потом стартует? (то есть по хорошему, "VersionInProgress" будет существовать только во время экспорта, и оставаться только при сбое) Но можно и статус...