2010-03-25 18 views
10

Je souhaite déployer un répertoire pour plusieurs développeurs ayant des autorisations différentes. Donc, c'est une chose que Git ne peut pas faire. Qu'en est-il de créer deux référentiels dans un répertoire et de leur attribuer des listes de fichiers différentes en excluant les fichiers gérés par l'autre référentiel avec le fichier .gitignore.Plusieurs référentiels Git dans un répertoire

Exemple: /www/project/.git pour tous les fichiers, sauf dans /www/project/css /www/project/css/.git -> uniquement les fichiers dans ce répertoire

Quelqu'un at-il essayé cette solution? Ou existe-t-il de meilleurs moyens de gérer ce problème?

+1

Copie possible de [Deux référentiels git dans un répertoire?] (Http://stackoverflow.com/questions/436125/two-git-repositories-in-one-directory) –

Répondre

0

Je suppose que vous feriez mieux d'autoriser vos développeurs à créer des comimits dans l'un/l'autre des deux référentiels. Voir aussi cette server fault question.

+0

Je ne veux pas autoriser l'accès . Les concepteurs et les textos de personnes ne devraient pas pouvoir télécharger le code entier. Le deuxième problème est que je voudrais utiliser GitHub et non un propre serveur pour gérer les dépôts, car GitHub est beaucoup plus simple. – Jakob

4

Une approche moins ennuyeux que git-sous-modules (qui sont une douleur à utiliser) est gitslave Gitslave crée un groupe de référentiels un connexes référentiel SuperProject et un certain nombre de repositories- esclave tous sont développés simultanément et sur lesquels toutes les opérations de git devraient normalement fonctionner; Ainsi, lorsque vous branchez, chaque référentiel du projet est ramifié à son tour. De même quand vous commettez, poussez, tirez, fusionnez, marquez, extrayez, statut, notez, etc; chaque commande git sera exécutée sur le superprojet et tous les dépôts esclaves à leur tour. Ce type d'activité peut être très familier à CVS et (dans une moindre mesure) aux utilisateurs de Subversion. La conception de Gitslave est pour la simplicité pour les opérations git normales.

Je vais également vous diriger vers etckeeper qui fait le suivi des permissions. Il a ses propres particularités qui peuvent ou non le rendre utilisable pour vous. Enfin, je noterai que vous pouvez avoir un script custome post-checkout qui définit les permissions appropriées sur les fichiers/répertoires appropriés.