Atualmente, temos um sistema de compilação complexo e ineficiente que consiste em muitos repositórios SVN e Git (cerca de 50% cada), incluindo um que é um repositório de sub-módulos git. Também temos scripts caseiros que gerenciam mais ou menos bem a coisa toda.
Um ponto importante da nossa base de código (de código fechado) é que ela é fortemente acoplada e que todo projeto é lançado ao mesmo tempo na mesma versão.
Queremos migrar isso para um sistema mais simples e um único VCS, e estamos considerando várias opções, incluindo: submódulos git, google Repo e monorepos. O VCS final ainda não está definido (exceto para as opções que o determinam) e pode ser svn, git ou até outra coisa, se isso se encaixar melhor em nossa situação.
Estamos tentando listar os pontos positivos e negativos de cada solução e um dos principais problemas que temos atualmente com os monorepos é que não parece fácil ou até possível compartilhar apenas alguns módulos com uma entidade externa. Queremos que essas pessoas possam fazer check-out e trabalhar normalmente nesses módulos, mas não possam acessar o código ou o histórico do restante do repo. Não é algo que fazemos com frequência ou extensivamente no momento, mas podemos no futuro, e não queremos que isso se torne um pesadelo, porque tomamos uma decisão ruim aqui.
Existe um sistema de gerenciamento de privilégios em um sistema VCS?
Ou existe alguma maneira de mitigar esse problema?