Al momento disponiamo di un sistema di build complesso e inefficiente costituito da molti repository SVN e Git (circa il 50% ciascuno), incluso uno che è un repo dei sottomoduli git.
Abbiamo anche script fatti in casa che gestiscono più o meno bene l'intera cosa.
Un punto importante del nostro codebase (a codice chiuso) è che è strettamente accoppiato, e ogni progetto viene rilasciato contemporaneamente con la stessa versione.
Vogliamo migrare questo ad un sistema più semplice e ad un singolo VCS, e stiamo prendendo in considerazione diverse opzioni, tra cui: git submodules, google Repo e monorepos. Il VCS finale non è ancora definito (tranne per le opzioni che lo impongono), e potrebbe essere svn, git o anche qualcos'altro se questo si adatta meglio alla nostra situazione.
Stiamo cercando di elencare il più e il meno di ogni soluzione e uno dei maggiori problemi che abbiamo attualmente con monorepos è che non sembra facile, o addirittura possibile condividere solo alcuni moduli con un'entità esterna. Vogliamo che queste persone siano in grado di effettuare il checkout e lavorare normalmente su quei moduli, ma non di poter accedere al codice o alla cronologia del resto del repository. Non è qualcosa che facciamo spesso o estensivamente al momento, ma potremmo farlo in futuro, e non vogliamo che questo diventi un incubo perché abbiamo preso una decisione sbagliata qui.
Esiste un tale sistema di gestione dei privilegi in un sistema VCS?
O esiste un modo per mitigare questo problema?