2011-02-08 2 views
9

nous travaillons avec mercurial et maintenant nous aimerions introduire des crochets précommit pour garder le code propre. Nous aimerions que tout le monde obtienne les accrocs, mais nous aimerions aussi être en mesure de mettre cela à jour de façon centralisée. Mercurial ne gère pas les crochets de contrôle de version, alors quelle serait notre option alternative? L'un de vous a-t-il trouvé une solution à ce problème? Merci d'avance!Comment puis-je partager un commit-hook dans mercurial avec tous les autres développeurs?

Nemmi

+0

en double de http://stackoverflow.com/questions/7462154/how-do-i-set-up-a-hook-in-hg-mercurial-that-gets-dictated-by- le-dépôt. –

Répondre

10

crochets ne sont pas clonés (comme indiqué dans "Version-controlled extension configuration in Mercurial"), mais vous pouvez avoir un fichier hgrc commun (voir hgrc Syntax):

Une ligne du formulaire %include file comprendra fichier dans le fichier de configuration actuel

Dans ce fichier de configuration centrale, vous pouvez ensuite modifier la section [hooks].

+0

Uhm mais comment l'instruction de fichier% include est-elle partagée? En quoi les réglages dans un fichier séparé seraient-ils différents de copier/coller son contenu dans le hgrc? – BradLaney

+0

@BradLaney 6 ans plus tard, je suis un peu flou sur les détails, mais l'avantage clair d'avoir un fichier inclus par opposition à un contenu copié est que le fichier inclus (pointant vers un fichier commun partagé) change, vous bénéficiez immédiatement à partir de ces changements. – VonC

2

Si vous avez le contrôle sur leurs ordinateurs de bureau (il est une norme d'entreprise d'installation), vous pouvez mettre le crochet dans les entrées du système à l'échelle /etc/mercurial/hgrc ou /etc/mercurial/hgrc.d/ourcommithook

Si vous administrez à distance les machines que vous pouvez automatiser cela en utilisant quelque chose comme l'excellent puppet ou en construisant votre propre installateur .rpm, .deb ou .msi qui a installé Mercurial et place les hooks de tout le monde dans la config globale de la machine.

0

Jetez un oeil à la projrc extension. Il vous suffit ensuite de demander aux concepteurs de mettre un petit nombre de lignes communes dans leurs fichiers ~/.hgrc et ils seront automatiquement poussés tout ce que vous mettez dans le fichier repo/.hg/projrc de votre repo centralisé.

Vous aurez toujours besoin d'un emplacement commun pour placer ces crochets, mais vous avez probablement déjà une sorte de lecteur monté en partage que tous les utilisateurs montent, non? Ou vous pourriez avoir un référentiel "outils" que tout le monde doit avoir vérifié dans un emplacement standard.

Steve

Questions connexes