Al momento disponiamo di un sistema di compilazione complesso e inefficiente costituito da numerosi repository SVN e Git (circa il 50% ciascuno), incluso uno che è un repository di sottomoduli git. Abbiamo anche script fatti in casa che gestiscono più o meno bene il tutto.
Un punto importante della nostra base di codice (chiusa) è che è strettamente accoppiata e ogni progetto viene rilasciato contemporaneamente con la stessa versione.
Vogliamo migrare questo su un sistema più semplice e un singolo VCS e stiamo prendendo in considerazione diverse opzioni, tra cui: sottomoduli git, google Repo e monorepos. Il VCS finale non è ancora definito (tranne per le opzioni che lo obbligano), e potrebbe essere svn, git o anche qualcos'altro se ciò si adatta meglio alla nostra situazione.
Stiamo cercando di elencare i vantaggi e gli svantaggi di ciascuna soluzione e uno dei maggiori problemi che attualmente abbiamo con i monorepos è che non sembra facile o addirittura possibile condividere solo alcuni moduli con un'entità esterna. Vogliamo che queste persone possano effettuare il checkout e lavorare normalmente su quei moduli, ma non essere in grado di accedere al codice o alla cronologia del resto del repository. Non è qualcosa che facciamo spesso o ampiamente al momento, ma potremmo 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 c'è un modo per mitigare questo problema?