Kommt die Anwendung ohne die Plugins klar?
Wenn ja, dann alles in ein eigenes Repository.
Die Plugin
API (zum Beispiel ein Header file,
COM-Lib, Delphi interfaces etc) sollte vllt auch ein eigenes Repo sein, selbst wenn es momentan nur eine Datei sein sollte.
In allen Repos, die Zugriff auf die Plugin
API brauchen kannst du die dann als sub module hinzufügen.
Für den fertigen Build kannst du dir ein Container Repo machen, welches alle Repos als submodules hat, welche für den jeweiligen Build interessant sind.
Alle Projekte sollten mit relativen Pfaden zueinander klar kommen, sonst brauchst du das gar nicht erst versuchen.
Bei Submodules merkt sich Git auf welches Changeset du zeigst (kommt mit ins Commit). Dadurch kriegst du immer den passenden Stand in den submodules wenn du eine ältere Version haben willst.
Das ist jetzt nix neues, das ging schon vor Git.
Das ist auch nicht super toll. Es ist aber halt besser als alle & ihren Opa zusammenzuwerfen.
Es kann sich als sinnvoll erweisen, einige der Plugins zusammen mit dem Hauptprogramm zu versionieren, da es ohne sie nicht auskommt und vllt auch von den gleichen Leuten gepflegt wird.
Aber das könnt nur ihr selbst entscheiden.
Zu den Berechtigungen:
Passt auf, dass ihr keine Rechte-Nazis werdet.
Sorgt dafür, dass alle im Team wenigstens den Code sehen und einen Fork/Pullrequest anlegen können. Sie sollten auch überall Changesets bewerten/kommentieren können.
Denn wenn Heinz einen Fehler sieht, sollte er ihn auch ohne Krämpfe anzeigen können. Oder vllt. sogar schnell einen Pullrequest von einem Fork mit dem Fix anlegen können.
Das heißt, Heinz kann ein Problem lösen, ohne direkt auf das Development Repo schreiben zu können.