Comment configurer un référentiel git où différents utilisateurs ne peuvent voir que certaines parties?
Comment avez-vous mis en place un dépôt git où certains utilisateurs peuvent voir certaines parties du code source et d'autres utilisateurs peuvent voir tous? J'ai vu beaucoup de guides pour seulement donner à certains utilisateurs un accès de commit, mais ces suppose que tout le monde doit avoir accès en lecture. J'ai aussi entendu parler de gitosis, mais je ne suis pas sûr qu'il prend en charge et il n'a pas eu tout s'engage depuis plus d'un an donc je pense que c'est mort.
source d'informationauteur Joseph Garvin | 2009-07-28
Vous devez vous connecter pour publier un commentaire.
En bref: vous ne pouvez pas. Git est un instantané de base (au niveau conceptuel au moins) système de contrôle de version, pas de modifications. Il traite de projet (référentiel) ensemble. L'histoire est une histoire d'un projet, pas une union de fichier unique des histoires (c'est plus que de joindre de fichier par fichier de l'histoire).
À l'aide de crochets comme
update-paranoid
crochet dans contrib, ou VREFs mécanisme degitolite
vous pouvez autoriser ou interdire l'accès au dépôt, vous pouvez autoriser ou interdire l'accès à certaines branches. Vous pouvez même interdire toute s'engage à ce que changer les choses dans le sous-répertoire spécifié. Mais le projet est toujours traité comme un tout.Bien, il y a une chose que vous pouvez faire: créez un répertoire que vous souhaitez restreindre l'accès en sous-moduleet de restreindre l'accès à ce sous-module référentiel.
Git ne prend pas en charge le contrôle d'accès sur le référentiel. Vous peut cependant, de mettre en œuvre le contrôle d'accès sur le référentiel vousen utilisant crochetsplus précisément le
update
crochet.Jörg a déjà signalé que vous pouvez utiliser des crochets pour ce faire. Exactement le crochet(s) vous avez besoin dépend de votre configuration. Si vous voulez que les autorisations sur un repo qui est poussé à l', vous aurez besoin de la
update
crochet comme il dit. Cependant, si c'est sur un repo que vous êtes en train de travailler dans (s'engager et de fusion), vous aurez également besoin depre-commit
etpost-merge
crochets. Le githooks page de manuel (Jörg lié à cette trop) note qu'il y a en fait un script dans la section contrib démontrant une façon de le faire. Vous pouvez l'obtenir en saisissant un git archive, ou de le tirer hors de git est gitweb repo: setgitperms.perl. Même si vous êtes seulement en utilisant la mise à jour de crochet, qui pourrait être un modèle utile.Le natif du protocole git ne prend pas en charge ce; git suppose dans de nombreux endroits que tout le monde a un complète copie de tous de l'histoire.
Cela dit, une solution peut être d'utiliser git-sous-arborescence à la scission de la partie du référentiel dans son propre sous-ensemble de référentiel, et, périodiquement, de fusion et de retour.