2010-11-03 11 views
3

J'utilise mercurial dans le cadre de mon processus de workflow et cela fonctionne bien. J'ai un problème minable cependant. Lorsque je passe de mon dépôt central à mon serveur Web Linux pour effectuer une mise à jour, je le fais avec l'utilisateur "root". Cela semble affecter le propriétaire et le groupe à "root" pour tous les fichiers qui sont nouveaux ou modifiés. Malheureusement, je rencontre d'autres difficultés avec cela, donc je dois toujours passer par tous les fichiers et les réinitialiser au bon groupe et propriétaire (un utilisateur non-root sur le serveur web).Paramétrer la propriété du fichier avec mercurial

Existe-t-il un moyen de faire cela automatiquement ou est-ce que quelqu'un a une façon rapide de le faire? J'utilise le shell et j'ai à taper

chown -R username /home/username 

J'essaie de faire quelque chose de similaire avec chgrp. Le tout semble désordonné, et je soupçonne qu'il existe une façon plus simple d'accomplir ce dont j'ai besoin. Existe-t-il un moyen de définir le propriétaire et le groupe lors de l'extraction à partir d'un référentiel?

+0

Vous ne devriez pas besoin d'être les utilisateurs root pour tirer votre pension. – mikerobi

Répondre

8

Vous devriez tirer comme vous n'êtes pas en tant que root et vous n'auriez pas ce problème. Toutefois, si cela est impossible pour une raison quelconque, vous pouvez toujours utiliser un hook de mise à jour pour corriger les autorisations de fichiers. Dans le fichier .hg/hgrc de votre dépôt vous mettriez:

[hooks] 
update = chown -R username:usergroup /home/username 

Et cette commande sera exécutée automatiquement après chaque hg update (ou hg pull -u).

+0

C'est génial. Le compte "utilisateur" n'a pas d'accès shell, et j'aimerais bien le garder ainsi, c'est pourquoi j'essayais de le faire avec la racine. Merci encore! :) – neomech

+1

sur UNIX seule racine peut changer les propriétaires et le groupe ... – gavenkoa

+0

comment ajouter 2 crochets? J'ai besoin de chown thw répertoire entier et en chowning un autre pour l'exclure – Kreker

1

Vous pouvez ajouter plusieurs crochets en définissant chacun séparément

[hooks] 
    update.command1 = chown -R username:usergroup /home/username 
    update.command2 = chown username2:usergroup2 /home/username/excludeme 
Questions connexes