2012-09-21 7 views
2

Oui, je sais que je connais hehe. Un système de contrôle de version distribuée n'a pas de référentiel central, tout le monde peut obtenir les versions de tout référentiel, car il ne s'agit pas d'un VCS centralisé. Cependant dans la vie réelle dans un bureau, souvent les patrons veulent être les maîtres de tout, donc je suis venu ici pour voir si quelqu'un a une bonne approche dans mon cas.Hiérarchie utilisateur/référentiel dans GIT

À mon bureau, nous avons commencé à utiliser GIT, et nous avons quelque chose comme ceci:

<SERVER> 
---->../apache/htdcos/All_Proyects [Bare repository] 
-------->/Proyect_A [Repository]~~~ Developer 1 [Git Repo], Developer 2 [Git Repo] 
-------->/Proyect_B [Repository]~~~ Developer 3 [Git Repo], Developer 4 [Git Repo] 
-------->/Proyect_123 [Repository]~~~ Developer 5 [Git Repo], Developer 6 [Git Repo] 

L'idée qu'il est que chaque projet a son propre dépôt GIT et dans le All_Projects dossier, il pourrait avoir un dépôt nu alors "principal" pour que tous les projets y poussent, ce référentiel nu serait quelque chose comme le maître du référentiel des maîtres (Est-ce vraiment une bonne approche en premier lieu ???)

Avec cette approche j'ai quelques doutes ...

Comment puis-je avoir une hiérarchie d'utilisateurs/de dépôts? Ainsi, par exemple, Developer 5 ne peut pas pousser/tirer/commettre de/vers Proyect_A mais il peut le faire à son propre Proyect_123 ?? Puis-je avoir un système de hiérarchie comme celui-ci?: Développeur poussant vers le référentiel Boss, Boss poussant vers le référentiel de projet et Serveur automatiquement (cron peut-être) tire de chaque référentiel de projet vers le maître nu du référentiel maître. (Où le développeur ne peut pas pousser directement vers le référentiel nu).

Comment puis-je faire quelque chose comme ça? MERCI!

Répondre

1

Les repos référencés par un parent repo sont exactement pourquoi submodules sont pour.

et protection par les utilisateurs et par le projet est possible, à condition que vous avez ajouté à votre principal repo Git serveur Gitolite (voir installation page).
Il s'agit d'une petite collection de scripts Perl qui intercepteront toute commande Git et valideront cette commande par rapport à un fichier de configuration qui spécifie quel utilisateur peut faire quoi sur quel repo.

+0

Assez très utile, mon patron vient de me mettre une étoile dans mon front haha ​​Merci, je vais essayer quelques tutoriels, semble très utile. – Metafaniel