We currently have a complex and inefficient build system consisting of many SVN and Git repos (about 50% each), including one which is a git submodules repo.
We also have homemade scripts that manage more or less well the whole thing.
A major point of our (closed-source) codebase is that it is tightly coupled, and every project is released at the same time under the same version.
We want to migrate this to a simpler system and a single VCS, and are considering several options, including: git submodules, google Repo and monorepos. The final VCS is not yet defined (except for options that mandate it), and could be svn, git or even something else if that would fit our situation better.
We're trying to list the plus and minus of each solution and one of the major issue we currently have with monorepos is that it does not seem easy, or even possible to share just some modules to an external entity. We want those people to be able to checkout and work normally on those modules, but not to be able to access the code or history of the rest of the repo. It's not something we do often or extensively at the moment, but we might in the future, and we do not want this to become a nightmare because we made a bad decision here.
Does such a privilege management system exists in a VCS system?
Or is there any way to mitigate this issue?