В настоящее время у нас есть сложная и неэффективная система сборки, состоящая из множества репозиториев SVN и Git (около 50% каждый), в том числе репозитория подмодулей git. У нас также есть домашние сценарии, которые более или менее хорошо управляют всем этим.
Основной момент нашей (с закрытым исходным кодом) кодовой базы заключается в том, что она тесно связана, и каждый проект выпускается одновременно в рамках одной и той же версии.
Мы хотим перенести это на более простую систему и одну VCS, и рассматриваем несколько вариантов, в том числе: подмодули git, Google Repo и monorepos. Окончательный VCS еще не определен (за исключением вариантов, которые его обязывают), и он может быть svn, git или даже чем-то еще, если это лучше соответствует нашей ситуации.
Мы пытаемся перечислить плюсы и минусы каждого решения, и одна из основных проблем, с которыми мы сталкиваемся в настоящее время с monorepos, заключается в том, что не представляется простым или даже невозможным поделиться только некоторыми модулями с внешней сущностью. Мы хотим, чтобы эти люди могли проверять и нормально работать с этими модулями, но не иметь доступа к коду или истории остальной части репозитория. Это не то, что мы делаем часто или активно в данный момент, но мы можем сделать это в будущем, и мы не хотим, чтобы это стало кошмаром, потому что мы приняли здесь плохое решение.
Существует ли такая система управления привилегиями в системе VCS?
Или есть ли способ смягчить эту проблему?