2011-03-28 4 views
2

J'utilise Gitolite pour gérer mes dépôts git. Et j'utilise également une application Web tierce pour afficher les dépôts.Problèmes d'autorisation avec Git sharedRepository

Cependant, chaque fois que je fais un git push --all [email protected]:myproject l'application Web tierce ne peut pas avoir accès aux fichiers du référentiel. Donc, j'ai besoin de courir à chaque fois chmod go+rx -R /path/to/the/repository/folder pour voir le dépôt.

J'ai défini git config core.sharedRepository all mais je ne me souviens toujours pas des permissions après git push.

Comment puis-je résoudre ce problème?

Répondre

2

Vous pouvez définir un hook to your gitolite environment afin de mettre à jour un pos non nu (avec la bonne ACL) de votre repo nu géré par gitolite.

Tant que vous n'utilisez pas the update hook (en gitolite V3), vous pouvez définir un crochet post-receive dans lequel vous feriez ces tâches.

Cela dit, vérifiez également si le variable REPO_UMASKUMASK dans votre gitolite.rc a une incidence sur cette question:

$UMASK, octal, par défaut 0077

La valeur par défaut UMASK que gitolite utilisations fait toute la repos et leurs contenus ont rwx------ autorisations.
Les gens qui veulent exécuter gitweb se rendent compte que cela ne fonctionnera pas. La façon correcte de gérer cela est de changer cette variable en 0027 (qui vous donne rwxr-x---), puis d'ajouter l'utilisateur apache ou httpd qui exécute le serveur web en tant que membre du groupe 'gitolite'.

Veuillez noter la syntaxe; le 0 principal est requis. Si vous le modifiez une fois l'installation terminée, vous devrez également faire quelques chmod pour ajuster les autorisations des fichiers et des répertoires qui ont déjà été créés.

(Note: REPO_MASK a UMASK avec GitoliteV3 or 'g3')