clone git avec différentes autorisations de fichiers
-
29-09-2019 - |
Question
Sur notre serveur sont trois (en réalité: des milliers de) fichiers texte stockés dans un dépôt git nu. A.txt, B.txt sont capturés, C.txt
- L'utilisateur "admin" devrait afficher / modifier tous.
- L'utilisateur « Foo » devrait afficher / modifier « A.txt » et « B.txt sont capturés », mais il ne peut pas voir le contenu de « C.txt ».
- L'utilisateur "guest" ne doit être autorisé à voir / modifier "A.txt".
Les trois utilisateurs devraient être en mesure de cloner le dépôt git avec les fichiers qu'ils sont autorisés à modifier.
Est-il possible de faire cela avec git (... ou Mercurial)?
Idée: Puis-je faire deux clones du dépôt git nu avec la caisse clairsemée caractéristique de git pour l'utilisateur « Foo » et « invité » Wich inclure uniquement les fichiers qu'ils sont autorisés à voir?
Toute autre idée (plus rapide)?
La solution
Vous devez:
- ont trois branches
- invité (avec uniquement les fichiers de
A.txt
) - utilisateurs (avec A et fichiers B.txt)
- admin (avec tous les fichiers)
- invité (avec uniquement les fichiers de
Cela signifie que pour mettre à jour fréquente se confond les différentes branches et propager les différentes modifications.
De plus, avec gitolite , vous pouvez contrôler qui peut tirer / pousser ce (au niveau de la branche), ce qui signifie:
- un invité ne sera en mesure de tirer la branche
guest
. - un utilisateur foo ne sera en mesure de tirer la branche
guest
et la brancheusers
, tout en étant capable de pousser la brancheusers
(ou les deux branches si vous voulez un utilisateur de mettre à jour le contenu de la brancheguest
). - un administrateur peut tirer / tirer toutes les branches.