J'ai un script qui est dans le niveau supérieur de ma copie de travail et que j'aimerais utiliser comme un crochet Mercurial. Si j'utilise un chemin d'accès absolu au hook alors tout va bien, mais je veux un chemin relatif pour que l'ensemble puisse être facilement déplacé, utilisé dans d'autres copies de travail et que d'autres développeurs puissent copier le hgrc tel quel.Comment utiliser un chemin d'accès relatif à un crochet Mercurial
/space/project/.hg/hgrc contient
[hooks]
update = genid
Le script est genid à/espace/projet/genid
Le crochet est invoqué très bien si je suis dans/espace/projet mais si mon répertoire actuel est/space/project/src/tools alors 'hg update' donnera une erreur car le hook ne peut pas être trouvé.
Que se passerait-il si quelqu'un faisait un 'hg update null', effaçant ainsi le répertoire de travail? Lorsque vous avez ensuite essayé d'exécuter une commande 'hg', elle essayait de charger l'extension maintenant inexistante. Bien sûr, cela peut toujours être un problème avec les chemins absolus, mais c'est beaucoup plus probable si le script d'extension est dans le repo sur lequel vous travaillez activement. –
Eh bien, ne faites pas ça alors! Les crochets sont vides par défaut et doivent être ajoutés de manière proactive, donc s'il n'y a pas de copie de travail, n'ajoutez pas le crochet. Ce ne sera pas un problème pour les autres développeurs travaillant sur le projet. –
@TimDelaney qui n'aura pas d'effets catastrophiques - l'exécution du hook échouera simplement mais la validation se produit toujours –