Синхронізація з Gerrit

registry-regulation-management-git-communication

Опис термінів

  • vc1 - version-candidate 1

  • MR - Merge Request

  • FS - Filesystem

Основні принципи

  • Локальний репозиторій per version candidate (спільний репозиторій для всіх користувачів, що працюють над однією версією-кандидатом)

  • Доступ до файлів та їх зміна відбувається через java service, що використовує програмний Lock для синхронізації доступу до конфігурації регламенту реєстру (операції по зміні файлів на файловій системі та git commands)

  • Rebase (актуалізація змін) відносно master branch відбувається в gerrit для кожного MR, що відповідаю версії-кандидату регламенту реєстру. Процес актуалізації запускається періодично (періодичність конфігурується в property file).

  • Актуалізація змін в репозиторії на файловій системі відбувається періодично (періодичність конфігурується в property file). Актуалізація відбувається тільки якщо присутні нові зміни в remote ref.

  • Для уникнення затирання змін між користувачами використовується optimistic locking на рівні RestAPI.