Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.

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

Open
dammanapov opened this issue Jul 5, 2016 · 7 comments

Comments

@dammanapov
Copy link

dammanapov commented Jul 5, 2016

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

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

@dammanapov dammanapov changed the title gitsync в случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию^ Jul 5, 2016
@dammanapov dammanapov changed the title gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию^ gitsync: В случае непредвиденного прерывания выгрузки версии конфигурации при следующем запуске начинает выгружать следующую версию Jul 5, 2016
@dammanapov
Copy link
Author

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

@artbear
Copy link
Collaborator

artbear commented Jul 6, 2016

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

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

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

@artbear artbear added the gitsync label Jul 6, 2016
@dammanapov
Copy link
Author

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

@EvilBeaver
Copy link
Owner

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

@EvilBeaver
Copy link
Owner

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

@bia-tech
Copy link
Contributor

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

@Ndochp
Copy link

Ndochp commented Nov 7, 2017

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants