metaclass: (Default)
Уткнулся в проблему с контролем версий и разбиением репозитория по проектам.
Текущие проекты все состоят примерно из трех частей: изредка дорабатываемый кодогенератор, изредка дорабатываемые базовые библиотеки, общие для всех проектов и кодогенератора, собственно сами активно разрабатываемые проекты и небольшое количество мелких вспомогательно-экспериментальных проектов-утилит-прототипов. Фактически "больших" проектов 4 штуки - кодогенератор, общий клиент для БД и два разрабатываемых проекта.
Проекты собираются и тестируются автоматически CI сервисом по обнаружению изменений в репозитории. При этом получается, что изменив один проект, мы вызываем билд всех проектов.
Теоретически, это лечится раскладыванием проектов и базовых библитек по отдельным репозиториям. Но в таком случае получается потенциальная возможность сделать коммит-пуш в один репозиторий и не сделать в другой, связанный с ним, в результате чего билд может накрыться.
Причем это меркуриал, с его заебами на тему мержа, из-за которых изредка такие проблемы возникают даже в рамках одного репозитория, если же там будет 4 репы - я более чем уверен, что проблемы будут возникать постоянно.

В связи с этим вопрос: что можно сделать, чтобы репозитории были раздельными, но коммит-пуш в зависимые репозитории нельзя было сделать без коммита в базовые?
Сделать билд с тестами не-автоматическим (т.е. требующим, например явного указания тэга или пуша в отдельный репозиторий, откуда сервис будет билдить) наверно нехорошо, т.к. сломанный блид не будет обнаружен до явного действия по принуждению к билду.

В меркуриале есть функционал суб-репозиториев. Но в нем нету такого, чтобы репозитории А и B зависели одновременно от репозиториев C и D, т.к. там просто дерево, а тут как раз именно такие зависимости.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 05:42 pm
Powered by Dreamwidth Studios