Plusieurs cas s’exposent à nous:
- Le controle Read/Write
- Le controle Read
- Le controle Write
Workflow Forking (W)
En appliquant ce workflow tu peux facilement contrôler l’écriture des développeurs. Pour faire simple, il existe qu’un repo officiel et chaque développeurs fork ce repo. Lorsqu’ils ont fini leurs features ils peuvent pusher sur leur fork mais doivent faire une demande de pull-request
pour que les modifications soient prises en compte et bien évidement seul le project maintainer peut accepter le pull-request
.
Plus d’information sur https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow
Séparer le code source en plusieurs repos (R/W)
En séparant ton code en plusieurs repo, tu peux contrôler tous les aspect des droits : read & write. Cependant il faut réfléchir ensuite au bonne solution pour faire interagir tes repos ensemble.
La première idée est souvent d’utiliser la feature built-in de git-submodule néanmoins j’ai eu des retours d’expérience assez compliquées lorsque commence a avoir des merges entre les modules. Un article intéressant sur les alternatives que je te conseille http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/.
Deux solutions sortent du lots : git-subtree et git-repo
J’attends de voir si d’autre personne a des solutions car je pense qu’il doit en exister d’autre.