Wir haben derzeit ein komplexes und ineffizientes Build-System, das aus vielen SVN- und Git-Repos (jeweils ca. 50%) besteht, darunter eines, das ein Git-Submodul-Repo ist. Wir haben auch selbstgemachte Skripte, die das Ganze mehr oder weniger gut verwalten.
Ein wesentlicher Punkt unserer (Closed-Source-) Codebasis ist, dass sie eng gekoppelt ist und jedes Projekt zur gleichen Zeit unter derselben Version veröffentlicht wird.
Wir möchten dies auf ein einfacheres System und ein einzelnes VCS migrieren und erwägen verschiedene Optionen, einschließlich: Git-Submodule, Google Repo und Monorepos. Das endgültige VCS ist noch nicht definiert (mit Ausnahme der Optionen, die es erfordern) und könnte svn, git oder sogar etwas anderes sein, wenn dies besser zu unserer Situation passt.
Wir versuchen, das Plus und Minus jeder Lösung aufzulisten, und eines der Hauptprobleme bei Monorepos ist, dass es nicht einfach erscheint oder sogar möglich ist, nur einige Module für eine externe Entität freizugeben. Wir möchten, dass diese Leute in der Lage sind, diese Module zu überprüfen und normal zu bearbeiten, aber nicht auf den Code oder den Verlauf des restlichen Repos zugreifen können. Es ist nicht etwas, was wir im Moment oft oder ausgiebig tun, aber wir könnten es in Zukunft tun, und wir wollen nicht, dass dies ein Albtraum wird, weil wir hier eine schlechte Entscheidung getroffen haben.
Existiert ein solches Berechtigungsverwaltungssystem in einem VCS-System?
Oder gibt es eine Möglichkeit, dieses Problem zu beheben?