Puisque vous avez tout dans 1 référentiel, aucune
tl; dr. Un dépôt est toujours complet, et si vous pouvez cloner, vous peut tout voir, il n'y a aucun moyen de restreindre l'accès au contenu dans un clone local, pour un clone hébergé par le serveur central.
un serveur Mercurial peut traiter avec autorisation en deux façons:
- Il peut restreindre l'accès au référentiel
- Il peut utiliser des crochets pour éviter des poussées avec le contenu que l'utilisateur ne peut pas modifier
Le premier type rendrait toute la lecture de dépôt -seulement, ou indisponible. Cependant, si un utilisateur a un accès en lecture, il sera capable de cloner, et de voir, tout le dépôt, l'historique et les fichiers. Mais, vous pouvez empêcher ce même utilisateur de modifier la copie centrale en lui interdisant les poussées. Cela signifierait que cet utilisateur pourrait faire tout ce qu'il voulait avec son propre clone privé, mais il ne serait pas capable de ramener ces changements au clone central.
L'autre type vous permettrait de contrôler où les changements ont été autorisés à se produire un peu plus précis. Cependant, notez que, encore une fois, un utilisateur sera en mesure de cloner, et de voir, l'ensemble du dépôt.
En outre, l'utilisateur sera également capable de faire ce qu'il veut avec son propre clone personnel. Cependant, alors que les poussées vers le référentiel central ne sont pas totalement interdites avec ce type d'autorisation, un crochet regarderait les changesets poussés, et si, par exemple, vous décidez que cet utilisateur n'est pas autorisé à pousser les modifications au contenu "client2", n'importe quel changesets qu'il essaye de pousser sera avorté. En d'autres termes, l'utilisateur peut modifier son clone privé, y compris modifier des choses dans "client2", mais s'il commet un changeset avec des changements "client2", il ne pourra pas retourner dans le dépôt central. . Il devrait ensuite se déshabiller, ou se débarrasser autrement de ces changesets, avant que ses poussées ne passent.
Donc, pour résumer:
- Vous pouvez interdire à l'utilisateur du clonage tout à fait, cela rendrait le dépôt ensemble indisponible pour lui
- Vous pouvez interdire pousse, mais autoriser le clonage
- Vous pouvez utiliser des crochets Néanmoins, si l'utilisateur est capable de créer un clone, ce clone est toujours complet et non restreint sur l'ordinateur de l'utilisateur. Vous ne pouvez pas restreindre l'accès dans ce clone, tout ce que vous pouvez faire est le point 1, interdire à l'utilisateur de cloner pour commencer.
Y a-t-il des dépendances entre les dossiers? Par exemple, est-ce que les fichiers dans "client1" savent qu'il y a un dossier "client2" à côté de lui, et référence ces fichiers directement? Quel genre de telles dépendances existe du tout, entre les répertoires? –