Hi Modesto,
We're about to turn the paradigm on its head. In the past, we've created groups based upon the roles/agency etc. Data Architect, Solution Architect, Business Analyst etc.
In our repository, we have Enterprise level branches and Project-based branches. We're going to try to assign groups to the various branches. So we'll have things like
Enterprise Present, Enterprise Roadmap, Enterprise History, Project 1, Project 2 etc.
Each user will then be assigned to the groups (branches they can modify). So, for example, I. as Modelling "God", can change every branch. This Solution Architect can work on Project 1 and Project 3, their assigned projects. That Enterprise Architect can modify Enterprise Present, Enterprise Roadmap, Project 3 and Project 5 - the projects they have oversight for. Only "God" can modify Enterprise History - since it is a set of immutable snapshots taken at points in time.
We haven't implemented it yet, but that's our plan. It may be a viable solution for your Use Case.
Feedback welcome, especially before we implement.
Paolo