oscript-library icon indicating copy to clipboard operation
oscript-library copied to clipboard

gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию

Open dammanapov opened this issue 9 years ago • 7 comments

gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию.

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

dammanapov avatar Jul 05 '16 14:07 dammanapov

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

dammanapov avatar Jul 05 '16 18:07 dammanapov

@dammanapov я не понял сценарий:

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

Поясни, что не так в

artbear avatar Jul 06 '16 09:07 artbear

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

dammanapov avatar Jul 06 '16 13:07 dammanapov

@dammanapov нельзя записывать инкремент после, ибо как раз это изменение и коммитится в git. Т.е. мы изменяем ДО как раз для того, чтобы это изменение попало в коммит. После коммита изменять нет смысла.

EvilBeaver avatar Jul 06 '16 13:07 EvilBeaver

Есть вариант проверять перед синхронизацией через git status что в измененных файлах отсутствует файл version. Предлагаю сделать вам, для тренировки и помощи проекту. :smile:

EvilBeaver avatar Jul 06 '16 13:07 EvilBeaver

Уменьшить вероятность данной ситуации можно перенеся инкрементацию в конец ф-ии, перед коммитом в гит.

bia-tech avatar Oct 20 '16 15:10 bia-tech

Может на каждом шаге копировать файл с текущей версией в "VersionInProgress" (в гитигноре) и удалять его после успешного коммита. Соответственно, любая команда на сигхронизацию при наличии "VersionInProgress" копирует его в VERSION и только потом стартует? (то есть по хорошему, "VersionInProgress" будет существовать только во время экспорта, и оставаться только при сбое) Но можно и статус...

Ndochp avatar Nov 07 '17 13:11 Ndochp